Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.10.0"
".": "0.10.1"
}
113 changes: 87 additions & 26 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,37 +2,98 @@

All notable changes to this project will be documented here by Release Please.

## [0.10.0](https://github.com/iHildy/opencode-synced/compare/v0.9.0...v0.10.0) (2026-08-31)

## [0.10.1](https://github.com/iHildy/opencode-synced/compare/v0.10.0...v0.10.1) (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

* 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))

### Bug Fixes
## [0.10.0](https://github.com/iHildy/opencode-synced/compare/v0.9.0...v0.10.0) (2026-08-31)

* 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)

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
Loading