Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
a97c071
fix(integrations): write DSH routes to the Desktop profile patch it r…
lcxhh521 Oct 3, 2026
414cb66
test(gui): pin the DSH ownership copy to the Desktop profile path
lcxhh521 Oct 3, 2026
bbe0836
Merge remote-tracking branch 'origin/dev' into l5/pr6522-refresh
lidge-jun Oct 4, 2026
3ffaca0
fix(integrations): keep DSH profile refresh order and lock late profiles
lidge-jun Oct 4, 2026
819e157
fix(integrations): refuse restoring into a missing DSH profile directory
lidge-jun Oct 4, 2026
4f3430c
Merge dev into the DSH desktop profile branch
lcxhh521 Oct 4, 2026
af9cfc0
Merge commit 'refs/l5/pr6522b' into l5/pr6522-refresh
lidge-jun Oct 4, 2026
a9aa4da
Merge remote-tracking branch 'origin/dev' into l5/pr6522-refresh
lidge-jun Oct 4, 2026
e5249f4
docs(structure): fit the DSH store paragraph inside the integrations …
lidge-jun Oct 4, 2026
8c811ee
fix(integrations): report a booted DSH profile without a patch instea…
lcxhh521 Oct 4, 2026
d28f6ad
docs(integrations): state why a DSH profile without a patch is refused
lidge-jun Oct 4, 2026
d30a3c2
Merge remote-tracking branch 'origin/dev' into l5/pr6522-refresh
lidge-jun Oct 4, 2026
0d98132
feat(integrations): show the missing-store remedy in the dashboard
lcxhh521 Oct 4, 2026
3278668
Merge dev into feat/dsh-missing-store-gui
lcxhh521 Oct 4, 2026
8e1741e
Merge dev into feat/dsh-missing-store-gui
lcxhh521 Oct 4, 2026
536d032
fix(integrations): name the missing store in the dialog and decode it…
lcxhh521 Oct 4, 2026
a17eef1
Merge remote-tracking branch 'origin/dev' into HEAD
lidge-jun Oct 5, 2026
f730b4d
fix(gui): wrap long missing-store paths in the DSH notice and plan di…
lidge-jun Oct 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions gui/src/i18n/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1632,6 +1632,7 @@ export const de: Record<TKey, string> = {
"integrations.status.notInstalled": "Nicht installiert",
"integrations.status.appliedAt": "Angewendet",
"integrations.status.supersededStore": "Dieser Client liest seine Provider jetzt aus {path}, und opencodex schreibt diese Datei nicht. Ein Aktivieren hier ändert nichts an dem, was der Client lädt.",
"integrations.status.missingStore": "Dieser Client speichert seine Provider in {path}, und diese Datei fehlt. opencodex schreibt nicht stattdessen in die alte Einstellungsdatei des Clients, weil der Client sie beim nächsten Start verschiebt und importiert. Lege {path} mit dem Inhalt {document} an und klicke dann erneut auf „Anwenden“.",
"integrations.status.candidateConflict": "Eine weitere Kilo-Konfigurationsdatei, {path}, definiert ebenfalls provider.opencodex. Entfernen Sie provider.opencodex aus dieser Datei, bevor Sie die Integration anwenden.",
"integrations.status.backup": "Sicherung",
"integrations.status.lastRestore": "Letzte Wiederherstellung",
Expand Down Expand Up @@ -1694,6 +1695,7 @@ export const de: Record<TKey, string> = {
"integrations.plan.refusal.unsafe": "Die Client-Konfiguration kann nicht sicher geändert werden. Repariere oder ersetze die Datei und versuche es erneut.",
"integrations.plan.refusal.nonLoopback": "Dieser Client benötigt eine Loopback-Proxyadresse. Verwende localhost, einen Tunnel oder eine lokale Weiterleitung.",
"integrations.plan.refusal.supersededStore": "Dieser Client liest seine Provider aus einer Datei, die opencodex nicht schreibt. Dieser Vorgang würde nichts an dem ändern, was der Client lädt.",
"integrations.plan.refusal.missingStore": "Die Datei, in der dieser Client seine Provider speichert, fehlt. opencodex schreibt nicht stattdessen in die alte Einstellungsdatei des Clients, weil der Client sie beim nächsten Start verschiebt. Lege die Datei mit dem Inhalt {document} an und klicke dann erneut auf „Anwenden“.",
"integrations.plan.refusal.driftRequiresConfirm": "Die Datei wurde nach diesem Rollback-Punkt geändert. Prüfe vor der Wiederherstellung den Drift-Plan.",
"integrations.plan.refusal.snapshotExpired": "Die Sicherung für diesen Rollback-Punkt ist abgelaufen und kann nicht mehr wiederhergestellt werden.",
"integrations.plan.refusal.writeFailed": "Der Server konnte keinen sicheren Schreibvorgang vorbereiten. Aktualisiere den Integrationsstatus und versuche es erneut.",
Expand Down
2 changes: 2 additions & 0 deletions gui/src/i18n/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2243,6 +2243,7 @@ export const en = {
"integrations.status.notInstalled": "Not installed",
"integrations.status.appliedAt": "Applied",
"integrations.status.supersededStore": "This client now reads its providers from {path}, which opencodex does not write, so enabling it here would change nothing it loads.",
"integrations.status.missingStore": "This client keeps its providers in {path}, which is missing. opencodex will not write the client's old settings file instead, because the client moves that file aside and imports it on its next start. Create {path} containing {document}, then press Apply again.",
"integrations.status.candidateConflict": "Another Kilo config file, {path}, also defines provider.opencodex. Remove provider.opencodex from that file before applying.",
"integrations.status.backup": "Backup",
"integrations.status.lastRestore": "Last restore",
Expand Down Expand Up @@ -2305,6 +2306,7 @@ export const en = {
"integrations.plan.refusal.unsafe": "The client configuration cannot be changed safely. Repair or replace the file before trying again.",
"integrations.plan.refusal.nonLoopback": "This client requires a loopback proxy address. Use localhost access, a tunnel, or a local forwarder before trying again.",
"integrations.plan.refusal.supersededStore": "This client now reads its providers from a file opencodex does not write, so this operation would change nothing it loads.",
"integrations.plan.refusal.missingStore": "The file this client keeps its providers in is missing, and opencodex will not write the client's old settings file instead, because the client moves that file aside on its next start. Create the file containing {document}, then press Apply again.",
"integrations.plan.refusal.driftRequiresConfirm": "The file changed after this rollback point. Review the drift-aware plan before restoring.",
"integrations.plan.refusal.snapshotExpired": "The backup for this rollback point has expired, so it can no longer be restored.",
"integrations.plan.refusal.writeFailed": "The server could not prepare a safe write. Refresh the integration state before trying again.",
Expand Down
2 changes: 2 additions & 0 deletions gui/src/i18n/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2170,6 +2170,7 @@ export const fr: Record<TKey, string> = {
"integrations.status.notInstalled": "Non installé",
"integrations.status.appliedAt": "Appliqué",
"integrations.status.supersededStore": "Ce client lit désormais ses fournisseurs depuis {path}, un fichier qu'opencodex n'écrit pas : l'activer ici ne changerait rien à ce qu'il charge.",
"integrations.status.missingStore": "Ce client conserve ses fournisseurs dans {path}, et ce fichier est absent. opencodex n'écrit pas à la place dans l'ancien fichier de réglages du client, car le client le déplace et l'importe à son prochain démarrage. Créez {path} avec le contenu {document}, puis cliquez de nouveau sur « Appliquer ».",
"integrations.status.candidateConflict": "Un autre fichier de configuration Kilo, {path}, définit aussi provider.opencodex. Supprimez provider.opencodex de ce fichier avant d'appliquer.",
"integrations.status.backup": "Sauvegarde",
"integrations.status.lastRestore": "Dernière restauration",
Expand Down Expand Up @@ -2232,6 +2233,7 @@ export const fr: Record<TKey, string> = {
"integrations.plan.refusal.unsafe": "La configuration du client ne peut pas être modifiée en toute sécurité. Réparez ou remplacez le fichier avant de réessayer.",
"integrations.plan.refusal.nonLoopback": "Ce client exige une adresse proxy en boucle locale. Utilisez localhost, un tunnel ou un transfert local avant de réessayer.",
"integrations.plan.refusal.supersededStore": "Ce client lit ses fournisseurs depuis un fichier qu'opencodex n'écrit pas : cette opération ne changerait rien à ce qu'il charge.",
"integrations.plan.refusal.missingStore": "Le fichier où ce client conserve ses fournisseurs est absent, et opencodex n'écrit pas à la place dans l'ancien fichier de réglages du client, car le client le déplace à son prochain démarrage. Créez ce fichier avec le contenu {document}, puis cliquez de nouveau sur « Appliquer ».",
"integrations.plan.refusal.driftRequiresConfirm": "Le fichier a changé après ce point de restauration. Vérifiez le plan tenant compte des changements avant de restaurer.",
"integrations.plan.refusal.snapshotExpired": "La sauvegarde de ce point de restauration a expiré et ne peut plus être restaurée.",
"integrations.plan.refusal.writeFailed": "Le serveur n’a pas pu préparer une écriture sûre. Actualisez l’état de l’intégration avant de réessayer.",
Expand Down
2 changes: 2 additions & 0 deletions gui/src/i18n/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2065,6 +2065,7 @@ export const ja: Record<TKey, string> = {
"integrations.status.notInstalled": "未インストール",
"integrations.status.appliedAt": "適用",
"integrations.status.supersededStore": "このクライアントは現在 {path} からプロバイダーを読み込みます。opencodex はこのファイルを書き込まないため、ここで有効にしても読み込む内容は変わりません。",
"integrations.status.missingStore": "このクライアントはプロバイダーを {path} に保存していますが、このファイルがありません。クライアントは次回起動時に古い設定ファイルを移動して取り込むため、opencodex は代わりにその設定ファイルへ書き込むことはしません。{path} を内容 {document} で作成してから、もう一度「適用」を押してください。",
"integrations.status.candidateConflict": "別の Kilo 設定ファイル {path} にも provider.opencodex が定義されています。適用する前に、そのファイルから provider.opencodex を削除してください。",
"integrations.status.backup": "バックアップ",
"integrations.status.lastRestore": "最終復元",
Expand Down Expand Up @@ -2127,6 +2128,7 @@ export const ja: Record<TKey, string> = {
"integrations.plan.refusal.unsafe": "クライアント設定を安全に変更できません。ファイルを修復または置き換えてから再試行してください。",
"integrations.plan.refusal.nonLoopback": "このクライアントにはループバックのプロキシアドレスが必要です。localhost、トンネル、またはローカル転送を使用してください。",
"integrations.plan.refusal.supersededStore": "このクライアントは opencodex が書き込まないファイルからプロバイダーを読み込むため、この操作では読み込む内容は変わりません。",
"integrations.plan.refusal.missingStore": "このクライアントがプロバイダーを保存するファイルがありません。クライアントは次回起動時に古い設定ファイルを移動するため、opencodex は代わりにその設定ファイルへ書き込むことはしません。このファイルを内容 {document} で作成してから、もう一度「適用」を押してください。",
"integrations.plan.refusal.driftRequiresConfirm": "このロールバック地点以降にファイルが変更されました。変更を考慮したプランを確認してから復元してください。",
"integrations.plan.refusal.snapshotExpired": "このロールバック地点のバックアップは期限切れのため、復元できません。",
"integrations.plan.refusal.writeFailed": "サーバーは安全な書き込みを準備できませんでした。統合状態を更新してから再試行してください。",
Expand Down
2 changes: 2 additions & 0 deletions gui/src/i18n/ko.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1676,6 +1676,7 @@ export const ko: Record<TKey, string> = {
"integrations.status.notInstalled": "설치되지 않음",
"integrations.status.appliedAt": "적용",
"integrations.status.supersededStore": "이 클라이언트는 이제 {path}에서 프로바이더를 읽습니다. opencodex는 이 파일을 쓰지 않으므로 여기서 켜도 클라이언트가 불러오는 내용은 달라지지 않습니다.",
"integrations.status.missingStore": "이 클라이언트는 프로바이더를 {path}에 보관하지만 이 파일이 없습니다. 클라이언트가 다음 시작 때 이전 설정 파일을 옮겨서 가져오므로, opencodex는 대신 그 설정 파일에 쓰지 않습니다. {path} 파일을 {document} 내용으로 만든 뒤 '적용'을 다시 누르세요.",
"integrations.status.candidateConflict": "다른 Kilo 설정 파일 {path}에도 provider.opencodex가 정의되어 있습니다. 적용하려면 그 파일에서 provider.opencodex를 제거하세요.",
"integrations.status.backup": "백업",
"integrations.status.lastRestore": "마지막 복원",
Expand Down Expand Up @@ -1738,6 +1739,7 @@ export const ko: Record<TKey, string> = {
"integrations.plan.refusal.unsafe": "클라이언트 구성을 안전하게 변경할 수 없습니다. 파일을 복구하거나 교체한 뒤 다시 시도하세요.",
"integrations.plan.refusal.nonLoopback": "이 클라이언트에는 루프백 프록시 주소가 필요합니다. localhost, 터널 또는 로컬 포워더를 사용한 뒤 다시 시도하세요.",
"integrations.plan.refusal.supersededStore": "이 클라이언트는 opencodex가 쓰지 않는 파일에서 프로바이더를 읽으므로, 이 작업으로는 클라이언트가 불러오는 내용이 달라지지 않습니다.",
"integrations.plan.refusal.missingStore": "이 클라이언트가 프로바이더를 보관하는 파일이 없습니다. 클라이언트가 다음 시작 때 이전 설정 파일을 옮기므로, opencodex는 대신 그 설정 파일에 쓰지 않습니다. 이 파일을 {document} 내용으로 만든 뒤 '적용'을 다시 누르세요.",
"integrations.plan.refusal.driftRequiresConfirm": "이 롤백 시점 이후 파일이 변경되었습니다. 변경 상태를 반영한 계획을 검토한 뒤 복원하세요.",
"integrations.plan.refusal.snapshotExpired": "이 롤백 시점의 백업이 만료되어 더 이상 복원할 수 없습니다.",
"integrations.plan.refusal.writeFailed": "서버가 안전한 쓰기 작업을 준비하지 못했습니다. 통합 상태를 새로 고친 뒤 다시 시도하세요.",
Expand Down
2 changes: 2 additions & 0 deletions gui/src/i18n/pt.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2217,6 +2217,7 @@ export const pt: Record<TKey, string> = {
"integrations.status.notInstalled": "Não instalado",
"integrations.status.appliedAt": "Aplicado",
"integrations.status.supersededStore": "Este cliente agora lê seus provedores de {path}, que o opencodex não grava, então ativá-lo aqui não mudaria nada do que ele carrega.",
"integrations.status.missingStore": "Este cliente guarda seus provedores em {path}, e esse arquivo não existe. O opencodex não grava no antigo arquivo de configurações do cliente no lugar dele, porque o cliente move esse arquivo e o importa na próxima inicialização. Crie {path} com o conteúdo {document} e clique em \"Aplicar\" de novo.",
"integrations.status.candidateConflict": "Outro arquivo de configuração do Kilo, {path}, também define provider.opencodex. Remova provider.opencodex desse arquivo antes de aplicar.",
"integrations.status.backup": "Backup",
"integrations.status.lastRestore": "Última restauração",
Expand Down Expand Up @@ -2279,6 +2280,7 @@ export const pt: Record<TKey, string> = {
"integrations.plan.refusal.unsafe": "A configuração do cliente não pode ser alterada com segurança. Repare ou substitua o arquivo antes de tentar de novo.",
"integrations.plan.refusal.nonLoopback": "Este cliente exige um endereço de proxy loopback. Use acesso por localhost, um túnel ou um encaminhador local antes de tentar de novo.",
"integrations.plan.refusal.supersededStore": "Este cliente agora lê seus provedores de um arquivo que o opencodex não grava, então esta operação não mudaria nada do que ele carrega.",
"integrations.plan.refusal.missingStore": "O arquivo em que este cliente guarda seus provedores não existe, e o opencodex não grava no antigo arquivo de configurações do cliente no lugar dele, porque o cliente move esse arquivo na próxima inicialização. Crie o arquivo com o conteúdo {document} e clique em \"Aplicar\" de novo.",
"integrations.plan.refusal.driftRequiresConfirm": "O arquivo mudou depois deste ponto de rollback. Revise o plano com as diferenças antes de restaurar.",
"integrations.plan.refusal.snapshotExpired": "O backup deste ponto de rollback expirou, então ele não pode mais ser restaurado.",
"integrations.plan.refusal.writeFailed": "O servidor não conseguiu preparar uma gravação segura. Atualize o estado da integração antes de tentar de novo.",
Expand Down
2 changes: 2 additions & 0 deletions gui/src/i18n/ru.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2156,6 +2156,7 @@ export const ru: Record<TKey, string> = {
"integrations.status.notInstalled": "Не установлен",
"integrations.status.appliedAt": "Применено",
"integrations.status.supersededStore": "Этот клиент теперь читает провайдеров из {path}, а opencodex этот файл не пишет, поэтому включение здесь ничего не изменит в том, что клиент загружает.",
"integrations.status.missingStore": "Этот клиент хранит провайдеров в {path}, а этого файла нет. opencodex не будет писать вместо него в старый файл настроек клиента: при следующем запуске клиент переносит этот файл и импортирует его. Создайте {path} с содержимым {document}, затем снова нажмите «Применить».",
"integrations.status.candidateConflict": "Другой файл конфигурации Kilo, {path}, тоже определяет provider.opencodex. Перед применением удалите provider.opencodex из этого файла.",
"integrations.status.backup": "Резервная копия",
"integrations.status.lastRestore": "Последнее восстановление",
Expand Down Expand Up @@ -2218,6 +2219,7 @@ export const ru: Record<TKey, string> = {
"integrations.plan.refusal.unsafe": "Конфигурацию клиента нельзя безопасно изменить. Исправьте или замените файл перед повторной попыткой.",
"integrations.plan.refusal.nonLoopback": "Этому клиенту нужен адрес прокси в loopback. Используйте localhost, туннель или локальную переадресацию.",
"integrations.plan.refusal.supersededStore": "Этот клиент читает провайдеров из файла, который opencodex не пишет, поэтому операция ничего не изменит в том, что он загружает.",
"integrations.plan.refusal.missingStore": "Файла, в котором этот клиент хранит провайдеров, нет, и opencodex не будет писать вместо него в старый файл настроек клиента: при следующем запуске клиент переносит этот файл. Создайте файл с содержимым {document}, затем снова нажмите «Применить».",
"integrations.plan.refusal.driftRequiresConfirm": "Файл изменился после этой точки отката. Проверьте план с учётом изменений перед восстановлением.",
"integrations.plan.refusal.snapshotExpired": "Резервная копия для этой точки отката истекла и больше не может быть восстановлена.",
"integrations.plan.refusal.writeFailed": "Сервер не смог подготовить безопасную запись. Обновите состояние интеграции перед повторной попыткой.",
Expand Down
Loading
Loading