From e218438ef5e336d24770df4c0973c56b20edbcf3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2026 02:21:59 +0000 Subject: [PATCH 1/2] chore(main): release 0.10.1 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ package.json | 10 +++++++--- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 7d9b009..30b6d45 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.10.0" + ".": "0.10.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index c0986bc..13aa890 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ All notable changes to this project will be documented here by Release Please. +## [0.10.1](https://github.com/iHildy/opencode-synced/compare/v0.10.0...v0.10.1) (2026-08-31) + + +### Bug Fixes + +* preserve release version in smoke workflow ([#79](https://github.com/iHildy/opencode-synced/issues/79)) ([22ef5c1](https://github.com/iHildy/opencode-synced/commit/22ef5c17fcbd9a445229ca78b80a80bdb88bdc1d)) +* unblock release publication workflows ([#77](https://github.com/iHildy/opencode-synced/issues/77)) ([7b93df6](https://github.com/iHildy/opencode-synced/commit/7b93df6d9a0d4f715956e01bad453d3a7f44fe37)) + ## [0.10.0](https://github.com/iHildy/opencode-synced/compare/v0.9.0...v0.10.0) (2026-08-31) diff --git a/package.json b/package.json index 844ec4c..24df83b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "opencode-synced", - "version": "0.10.0", + "version": "0.10.1", "description": "Sync global opencode config across machines via GitHub.", "author": { "name": "Ian Hildebrand" @@ -22,7 +22,9 @@ "publishConfig": { "access": "public" }, - "files": ["dist"], + "files": [ + "dist" + ], "dependencies": { "@opencode-ai/plugin": "1.0.85" }, @@ -49,6 +51,8 @@ "prepare": "husky" }, "lint-staged": { - "*.{js,ts,json}": ["biome check --write --no-errors-on-unmatched"] + "*.{js,ts,json}": [ + "biome check --write --no-errors-on-unmatched" + ] } } From ead0ae8f4205f5dca74629b17a58719a0e1f0fb9 Mon Sep 17 00:00:00 2001 From: Test User Date: Sun, 30 Aug 2026 19:40:57 -0700 Subject: [PATCH 2/2] docs: expand v0.10.0 changelog --- CHANGELOG.md | 115 +++++++++++++++++++++++++++++++++++++-------------- package.json | 8 +--- 2 files changed, 86 insertions(+), 37 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 13aa890..f8f8c99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,40 +7,93 @@ All notable changes to this project will be documented here by Release Please. ### Bug Fixes -* preserve release version in smoke workflow ([#79](https://github.com/iHildy/opencode-synced/issues/79)) ([22ef5c1](https://github.com/iHildy/opencode-synced/commit/22ef5c17fcbd9a445229ca78b80a80bdb88bdc1d)) -* unblock release publication workflows ([#77](https://github.com/iHildy/opencode-synced/issues/77)) ([7b93df6](https://github.com/iHildy/opencode-synced/commit/7b93df6d9a0d4f715956e01bad453d3a7f44fe37)) +* preserve release version in smoke workflow ([PR #79](https://github.com/iHildy/opencode-synced/pull/79)) ([22ef5c1](https://github.com/iHildy/opencode-synced/commit/22ef5c17fcbd9a445229ca78b80a80bdb88bdc1d)) +* unblock release publication workflows ([PR #77](https://github.com/iHildy/opencode-synced/pull/77)) ([7b93df6](https://github.com/iHildy/opencode-synced/commit/7b93df6d9a0d4f715956e01bad453d3a7f44fe37)) ## [0.10.0](https://github.com/iHildy/opencode-synced/compare/v0.9.0...v0.10.0) (2026-08-31) - -### Features - -* add isolated GitHub two-instance E2E workflow ([#52](https://github.com/iHildy/opencode-synced/issues/52)) ([e5c338f](https://github.com/iHildy/opencode-synced/commit/e5c338f99630a34bc6741e2524ab7fad1d611fbb)) -* add secrets backend config support ([f6a56e2](https://github.com/iHildy/opencode-synced/commit/f6a56e28b2f34dd6f6ba08d3cebfc3fc30806048)) -* add secrets sync commands ([c29d63a](https://github.com/iHildy/opencode-synced/commit/c29d63a2895eac43c4bb401bfed2597e38fe762d)) -* integrate 1Password secrets backend ([ca6a5bb](https://github.com/iHildy/opencode-synced/commit/ca6a5bb927402d1b302a8691a6add200ea00f3e1)) -* support explicit non-GitHub Git remotes ([#73](https://github.com/iHildy/opencode-synced/issues/73)) ([0b46b29](https://github.com/iHildy/opencode-synced/commit/0b46b29733363acacdde28361f3959ec882f083e)) -* sync skills directory by default ([#56](https://github.com/iHildy/opencode-synced/issues/56)) ([a627673](https://github.com/iHildy/opencode-synced/commit/a627673f7a00f9cdcdefe168ba110803c0678b3a)) -* update release workflow to maintain latest tag ([d5a0c75](https://github.com/iHildy/opencode-synced/commit/d5a0c751b1e817539af0de484eee8866b0e3a6fd)) - - -### Bug Fixes - -* address secrets backend review ([f2eb33b](https://github.com/iHildy/opencode-synced/commit/f2eb33b9ea605a17230b5d43dae9891a59822d0b)) -* expand e2e coverage and docs for session sync compatibility ([#53](https://github.com/iHildy/opencode-synced/issues/53)) ([78a4f88](https://github.com/iHildy/opencode-synced/commit/78a4f88ad12d72f911c0fa0e7704ff0e305e9852)) -* for [#69](https://github.com/iHildy/opencode-synced/issues/69) (nice) `resolveSmallModel` truncated selectors when the model ID itself contained `/`, ([#70](https://github.com/iHildy/opencode-synced/issues/70)) ([9a9ead9](https://github.com/iHildy/opencode-synced/commit/9a9ead9a0a679f0aa6844f89b6d055898aa90183)) -* guard secrets backend validation before actions ([790f850](https://github.com/iHildy/opencode-synced/commit/790f85039b9a2c30ac66979ffdee8d426234e798)) -* harden release publication pipeline ([#75](https://github.com/iHildy/opencode-synced/issues/75)) ([7e37271](https://github.com/iHildy/opencode-synced/commit/7e37271de21a254c1f8c7d5a35e83c13564a9f6c)) -* harden secrets backend integration ([5c37236](https://github.com/iHildy/opencode-synced/commit/5c37236ec76c27125adc9e99156e87622bf9ea8b)) -* portable paths in extra-manifest for cross-platform sync ([#58](https://github.com/iHildy/opencode-synced/issues/58)) ([96836af](https://github.com/iHildy/opencode-synced/commit/96836afd19737caba1bca03716a98cd4540c620f)) -* preserve original 1password errors ([e67d675](https://github.com/iHildy/opencode-synced/commit/e67d6755a0c2024782b4eb2ec6da73f4a2223344)) -* resolve relative extra paths from config root ([#72](https://github.com/iHildy/opencode-synced/issues/72)) ([10a3a83](https://github.com/iHildy/opencode-synced/commit/10a3a83b7798ce625ccb636aeb06ab7710d11a3c)) -* safely resolve MCP environment overrides ([#47](https://github.com/iHildy/opencode-synced/issues/47)) ([2f0ebea](https://github.com/iHildy/opencode-synced/commit/2f0ebea239cfee0923e5e5d6833e1a0882e6c2a5)) -* safely sync large session files ([#76](https://github.com/iHildy/opencode-synced/issues/76)) ([5be4e06](https://github.com/iHildy/opencode-synced/commit/5be4e067d234121917c160ba79204b0e441ebf4a)) -* strip overrides removes keys missing from local config ([#49](https://github.com/iHildy/opencode-synced/issues/49)) ([#50](https://github.com/iHildy/opencode-synced/issues/50)) ([f87ca69](https://github.com/iHildy/opencode-synced/commit/f87ca69810de342f73ad87a4ab30c5fd17260540)) -* sync opencode-synced config ([034bbe8](https://github.com/iHildy/opencode-synced/commit/034bbe8feb72cf4f2306399788dca5d897d50283)) -* sync plural OpenCode config directories ([#71](https://github.com/iHildy/opencode-synced/issues/71)) ([2f4fe70](https://github.com/iHildy/opencode-synced/commit/2f4fe700dd1776a907fdc74f4565cf50c234ebcc)) -* use current OpenCode paths on Windows ([#74](https://github.com/iHildy/opencode-synced/issues/74)) ([4c013dc](https://github.com/iHildy/opencode-synced/commit/4c013dc52ba396fa6dcd2b3f14234dafaae46220)) +This release substantially expands what can be synced and how safely it can move between +machines. It also adds isolated end-to-end coverage for the supported workflows. + +### Secrets and private configuration + +* Add a 1Password-backed secrets store, machine-local backend configuration, and + `sync-secrets-pull`, `sync-secrets-push`, and `sync-secrets-status` commands. Auth files stay + out of Git when the backend is enabled, backend actions validate before running, and original + 1Password errors remain available for diagnosis. See [PR #35](https://github.com/iHildy/opencode-synced/pull/35) + and [issue #34](https://github.com/iHildy/opencode-synced/issues/34). +* Resolve `{env:VAR}` placeholders from local overrides at runtime without writing resolved + credentials to the sync repository or logs. Missing variables, malformed credentials, and + unsafe keys fail closed, while secret-bearing override files use mode `0600`. See + [PR #47](https://github.com/iHildy/opencode-synced/pull/47) and + [issue #44](https://github.com/iHildy/opencode-synced/issues/44). +* Strip local-only override keys even when the base repository config contains the same key, so + pushes no longer restore values that should remain machine-local. See + [PR #50](https://github.com/iHildy/opencode-synced/pull/50) and + [issue #49](https://github.com/iHildy/opencode-synced/issues/49). + +### Sessions and storage + +* Support both OpenCode's SQLite session database and legacy session directories, including + SQLite sidecars, preserve-on-missing behavior, restart guidance after pull, and feature-specific + E2E coverage. See [PR #53](https://github.com/iHildy/opencode-synced/pull/53). +* Add an opt-in Turso session backend for concurrent-safe multi-machine sync, with setup, + migration, backend-selection, and Git-cleanup commands. Git remains the default backend. See + [PR #54](https://github.com/iHildy/opencode-synced/pull/54). +* Make repository selection deterministic during link and Turso E2E flows, while accepting + explicit GitHub HTTPS and SSH references. See [PR #55](https://github.com/iHildy/opencode-synced/pull/55). +* Chunk session files larger than 50 MiB into validated, content-addressed parts. Database bundles + install atomically, corrupt or unsafe pointers fail closed, and oversized blobs in unpushed Git + history produce backup and recovery instructions instead of rewriting history automatically. + See [PR #76](https://github.com/iHildy/opencode-synced/pull/76) and + [issue #45](https://github.com/iHildy/opencode-synced/issues/45). + +### Sync coverage and portability + +* Sync `~/.config/opencode/skills/` by default and deduplicate it from extra paths. See + [PR #56](https://github.com/iHildy/opencode-synced/pull/56) and + [issue #40](https://github.com/iHildy/opencode-synced/issues/40). +* Sync `~/.agents/` by default, with `includeAgentsDir: false` as an opt-out. This directory can + contain private instructions or skills, so users should review it before syncing to a shared + repository. See [PR #57](https://github.com/iHildy/opencode-synced/pull/57). +* Sync canonical plural OpenCode directories such as `agents/`, `commands/`, `modes/`, `plugins/`, + and `tools/`, while keeping legacy singular directories compatible. See + [PR #71](https://github.com/iHildy/opencode-synced/pull/71) and + [issue #67](https://github.com/iHildy/opencode-synced/issues/67). +* Resolve relative extra config and secret paths from the OpenCode config root instead of the + process working directory. Preserve absolute and home-relative behavior, exact allowlists, and + repository containment. See [PR #72](https://github.com/iHildy/opencode-synced/pull/72) and + [issue #43](https://github.com/iHildy/opencode-synced/issues/43). +* Store extra-path manifests in a portable form across different homes and operating systems, + accept legacy Windows separators, and reject repository paths that escape the sync checkout. + See [PR #58](https://github.com/iHildy/opencode-synced/pull/58). +* Use current OpenCode config, data, and state paths on Windows, honor explicit XDG overrides, and + verify path behavior on a real Windows runner. See + [PR #74](https://github.com/iHildy/opencode-synced/pull/74) and + [issue #59](https://github.com/iHildy/opencode-synced/issues/59). +* Support pre-created HTTPS, SSH, SCP-style, `file://`, and absolute local Git remotes. Generic + remotes reject embedded credentials, redact user info, validate branches, and require a + machine-local privacy acknowledgement before syncing sensitive data. See + [PR #73](https://github.com/iHildy/opencode-synced/pull/73) and + [issue #61](https://github.com/iHildy/opencode-synced/issues/61). +* Sync `opencode-synced.jsonc` as a core config item and deduplicate it from extra paths. +* Preserve nested model IDs in `small_model` selectors while retaining invalid-selector handling + and fallback to `model`. See [PR #70](https://github.com/iHildy/opencode-synced/pull/70) and + [issue #69](https://github.com/iHildy/opencode-synced/issues/69). + +### Testing, documentation, and releases + +* Add an isolated two-instance GitHub E2E system with per-run HOME and XDG sandboxes, dynamic + ports, exact plugin packaging, strict cleanup, parallel-run safety, and feature variants for + sessions and secrets. See [PR #52](https://github.com/iHildy/opencode-synced/pull/52). +* Expand the README and dedicated 1Password documentation for secrets, session backends, + migration, restart behavior, default synced directories, privacy controls, and non-GitHub + remotes. +* Harden release publication around canonical commit SHAs, exact packed artifacts, pre-publish and + post-publish smoke tests, OIDC-only npm publication, immutable prerelease versions, pinned + actions, and frozen dependency setup. See [PR #75](https://github.com/iHildy/opencode-synced/pull/75). +* Keep the moving `latest` Git tag on the newest stable release. See + [PR #36](https://github.com/iHildy/opencode-synced/pull/36). ## [0.9.0](https://github.com/iHildy/opencode-synced/compare/v0.8.0...v0.9.0) (2026-01-29) diff --git a/package.json b/package.json index 24df83b..d123216 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,7 @@ "publishConfig": { "access": "public" }, - "files": [ - "dist" - ], + "files": ["dist"], "dependencies": { "@opencode-ai/plugin": "1.0.85" }, @@ -51,8 +49,6 @@ "prepare": "husky" }, "lint-staged": { - "*.{js,ts,json}": [ - "biome check --write --no-errors-on-unmatched" - ] + "*.{js,ts,json}": ["biome check --write --no-errors-on-unmatched"] } }