Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
d1bc84c
chore: Phase 0 — repo init (local deps, AGENTS.md with full plan)
Day-Anger May 22, 2026
fbcb046
fix: rename .mise/tasks/lint:fix to lint-fix for Windows compatibility
Day-Anger May 22, 2026
b154765
feat: Phase 1 — XDG paths on all platforms, remove win32 APPDATA branch
Day-Anger May 22, 2026
c8ab495
feat: Phase 2 — notifications for sync lifecycle events
Day-Anger May 22, 2026
d49f324
feat: Phase 3 — session union-merge per record
Day-Anger May 22, 2026
cd2a97f
feat: Phase 4 — includeProjects sync for opencode.global.dat
Day-Anger May 22, 2026
2d7c51f
fix: add createNodeShell() fallback for Desktop where ctx.$ is undefined
Day-Anger May 22, 2026
cca5513
fix: wrap all SQLite insert params with asSQLValue() to handle undefi…
Day-Anger May 22, 2026
e53b751
feat: merge-логика для opencode.global.dat
Day-Anger May 22, 2026
4e9e161
fix: skip writeSessionsToDB when remote is empty
Day-Anger May 22, 2026
8836dbc
fix: use INSERT OR REPLACE instead of DELETE+INSERT in writeSessionsToDB
Day-Anger May 22, 2026
df2be57
fix: handle old-format session JSON files in readSessionsFromDir
Day-Anger May 22, 2026
b1d1310
fix: remove full DB copy and storage dirs from sync plan
Day-Anger May 22, 2026
707b8d8
chore: lint fixes, error handling polish, production readiness
Day-Anger May 23, 2026
cd690ec
docs: bilingual EN/RU command descriptions
Day-Anger May 23, 2026
1c883a5
docs: remove new source files from bilingual PR
Day-Anger May 23, 2026
3d0e802
docs: clean PR3 to only command .md files
Day-Anger May 23, 2026
7d11c2b
docs: remove .mise and lockfile from bilingual PR
Day-Anger May 23, 2026
2be653c
chore: ignore package-lock.json
Day-Anger May 23, 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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ coverage/
__pycache__/
opencode-plugin-template/
opencode-docs-*/
package-lock.json
6 changes: 0 additions & 6 deletions .mise/tasks/build

This file was deleted.

3 changes: 0 additions & 3 deletions .mise/tasks/format

This file was deleted.

3 changes: 0 additions & 3 deletions .mise/tasks/lint

This file was deleted.

3 changes: 0 additions & 3 deletions .mise/tasks/lint:fix

This file was deleted.

33 changes: 0 additions & 33 deletions .mise/tasks/local-pack-test

This file was deleted.

12 changes: 0 additions & 12 deletions .mise/tasks/pkgjsonlint

This file was deleted.

3 changes: 0 additions & 3 deletions .mise/tasks/prepare

This file was deleted.

30 changes: 0 additions & 30 deletions .mise/tasks/publish

This file was deleted.

12 changes: 0 additions & 12 deletions .mise/tasks/setup

This file was deleted.

3 changes: 0 additions & 3 deletions .mise/tasks/test

This file was deleted.

38 changes: 0 additions & 38 deletions .mise/tasks/version

This file was deleted.

15 changes: 11 additions & 4 deletions src/command/sync-enable-secrets.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
---
description: Enable secrets sync (private repo required)
description: Enable secrets sync / Включить синхронизацию секретов (требуется приватный репозиторий)
---

Use the opencode_sync tool with command "enable-secrets".
If the user supplies extra secret paths, pass them via extraSecretPaths.
If they want MCP secrets committed in a private repo, pass includeMcpSecrets: true.
You MUST call the `opencode_sync` tool with `command="enable-secrets"`.
Do not answer with plain text only.

Argument handling:
- If the user supplies extra secret paths, pass them via `extraSecretPaths`.
- If they want MCP secrets committed in a private repo, pass `includeMcpSecrets: true`.

Reminder:
- Enabling secrets requires the sync repo to be private — the tool will enforce this.
- Secrets are synced via a configured backend (e.g., 1Password), not stored in git directly.
2 changes: 1 addition & 1 deletion src/command/sync-init.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
description: Initialize opencode-synced configuration
description: Initialize opencode-synced configuration / Инициализировать конфигурацию синхронизации
---

You MUST call the `opencode_sync` tool with `command="init"`.
Expand Down
2 changes: 1 addition & 1 deletion src/command/sync-link.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
description: Link this computer to an existing sync repo
description: Link to an existing sync repo / Привязать компьютер к существующему репозиторию синхронизации
---

You MUST call the `opencode_sync` tool with `command="link"`.
Expand Down
10 changes: 7 additions & 3 deletions src/command/sync-pull.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
---
description: Pull and apply synced opencode config
description: Pull and apply synced config / Загрузить и применить синхронизированную конфигурацию
---

Use the opencode_sync tool with command "pull".
If updates are applied, remind the user to restart opencode.
You MUST call the `opencode_sync` tool with `command="pull"`.
Do not answer with plain text only.

Reminder:
- Pull applies remote config to local — after a successful pull, tell the user to restart opencode.
- If the local repo has uncommitted changes, pull will fail — suggest /sync-resolve first.
11 changes: 8 additions & 3 deletions src/command/sync-push.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
---
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

This file starts with a Byte Order Mark (BOM) (\ufeff). This will cause the frontmatter parser in src/index.ts to fail because the regex ^--- (line 26) expects the dashes to be at the absolute start of the string. Please remove the BOM to ensure the command description is parsed correctly.

Suggested change
---
---

description: Push local config / Отправить локальную конфигурацию
---
description: Push local opencode config to the sync repo
---

Use the opencode_sync tool with command "push".
You MUST call the `opencode_sync` tool with `command="push"`.
Do not answer with plain text only.

Reminder:
- The tool will auto-commit and push local changes to the sync repo.
- If there are uncommitted changes in the local repo, the push may fail — suggest /sync-resolve.
10 changes: 8 additions & 2 deletions src/command/sync-resolve.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
---
description: Resolve uncommitted changes in sync repo
description: Resolve uncommitted changes / Разрешить незакоммиченные изменения в репозитории
---

Use the opencode_sync tool with command "resolve" to automatically resolve uncommitted changes in the local sync repository using AI.
You MUST call the `opencode_sync` tool with `command="resolve"`.
Do not answer with plain text only.

Behavior:
- The tool analyzes uncommitted changes using AI and decides whether to commit or discard them.
- After resolution, the user can retry the failed command.
- If AI analysis is not available, the tool falls back to manual resolution instructions.
9 changes: 7 additions & 2 deletions src/command/sync-secrets-pull.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
---
description: Pull secrets from the configured backend
description: Pull secrets from backend / Загрузить секреты из настроенного бэкенда
---

Use the opencode_sync tool with command "secrets-pull".
You MUST call the `opencode_sync` tool with `command="secrets-pull"`.
Do not answer with plain text only.

Behavior:
- Pulls secrets from the configured backend (e.g., 1Password) and applies them locally.
- Requires a secrets backend to be configured.
9 changes: 7 additions & 2 deletions src/command/sync-secrets-push.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
---
description: Push secrets to the configured backend
description: Push secrets to backend / Отправить секреты в настроенный бэкенд
---

Use the opencode_sync tool with command "secrets-push".
You MUST call the `opencode_sync` tool with `command="secrets-push"`.
Do not answer with plain text only.

Behavior:
- Pushes secrets to the configured backend (e.g., 1Password).
- Requires a secrets backend to be configured.
9 changes: 7 additions & 2 deletions src/command/sync-secrets-status.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
---
description: Show secrets backend status
description: Show secrets backend status / Показать статус бэкенда секретов
---

Use the opencode_sync tool with command "secrets-status".
You MUST call the `opencode_sync` tool with `command="secrets-status"`.
Do not answer with plain text only.

Behavior:
- Shows the current status of the secrets backend (e.g., last sync, backend type).
- Requires a secrets backend to be configured.
3 changes: 2 additions & 1 deletion src/command/sync-sessions-backend.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
---
description: Switch session sync backend between git and turso
description: Switch session sync backend (git/turso) / Переключить бэкенд синхронизации сессий
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

There is a discrepancy between the PR description (which specifies a | separator) and the implementation (which uses /). In this specific command, the English description already contains a slash (git/turso), which makes the / separator ambiguous for any potential parsing logic. It is recommended to use the | separator as mentioned in the PR summary across all command files to ensure robustness and consistency.

Suggested change
description: Switch session sync backend (git/turso) / Переключить бэкенд синхронизации сессий
description: Switch session sync backend (git/turso) | Переключить бэкенд синхронизации сессий

---

You MUST call the `opencode_sync` tool with `command="sessions-backend"`.
Do not answer with plain text only.

Argument handling:
- `$ARGUMENTS` must be either `git` or `turso`.
Expand Down
7 changes: 5 additions & 2 deletions src/command/sync-sessions-cleanup-git.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
---
description: Remove deprecated git session artifacts after Turso migration
description: Remove deprecated git session artifacts / Удалить устаревшие git-артефакты сессий
---

You MUST call the `opencode_sync` tool with `command="sessions-cleanup-git"`.
Do not answer with plain text only.

Use this only after sessions are running on Turso and the user confirms fallback artifacts are no longer needed.
Reminder:
- Use this only after sessions are running on Turso and the user confirms fallback artifacts are no longer needed.
- This removes data/sessions/*.json and data/opencode.db from the sync repo.
3 changes: 2 additions & 1 deletion src/command/sync-sessions-migrate-turso.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
---
description: Migrate session sync from git artifacts to Turso backend
description: Migrate session sync to Turso / Перенести синхронизацию сессий из git в Turso
---

You MUST call the `opencode_sync` tool with `command="sessions-migrate-turso"`.
Do not answer with plain text only.

Behavior:
- Ensure Turso setup is complete.
Expand Down
3 changes: 2 additions & 1 deletion src/command/sync-sessions-setup-turso.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
---
description: Install/auth/provision Turso for session sync on this machine
description: Setup Turso for session sync / Настроить Turso для синхронизации сессий
---

You MUST call the `opencode_sync` tool with `command="sessions-setup-turso"`.
Do not answer with plain text only.

Behavior:
- Run Turso CLI install if missing.
Expand Down
9 changes: 7 additions & 2 deletions src/command/sync-status.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
---
description: Show opencode-synced status
description: Show sync status / Показать статус синхронизации
---

Use the opencode_sync tool with command "status" and report the results.
You MUST call the `opencode_sync` tool with `command="status"`.
Do not answer with plain text only.

Reminder:
- Report the results to the user in a readable format (repo, branch, last push/pull, working tree state).
- If sessions sync is enabled, mention the session backend (git or turso) and last sync times.
Loading