Repository navigation
v3.27.0
What's new
Features
Systematic now supports OpenCode v2 (2.2.0+) alongside OpenCode v1 (1.18.29+) from the same npm package. A new v2 adapter brings agents, skills, commands, and the session bootstrap to the new host, while golden tests preserve the existing v1 output. On v2, full skill text is restored into later requests after tool-output truncation, keeping long workflows such as ce:review intact. (#1239)
On OpenCode v2, configuration is read once when the plugin loads. Plugin commands that declare agent, model, or subtask are refused with guidance to use OpenCode's own Markdown or JSON commands, which support that routing. systematic setup and OCX installs still write v1 configuration. The git-commit skills also now run their fallback command when pre-filled context is empty, on every host.
Using it on OpenCode v2
- Install: OpenCode v2 reads the
pluginskey, notplugin. Add{ "plugins": ["@fro.bot/systematic@latest"] }to your OpenCode v2 config.systematic setupand OCX installs still write the v1pluginkey. - Update required: earlier Systematic releases do not load on OpenCode v2. 2.1.x ignores them without a message, and 2.2.0 and later log a warning.
- Config changes need a restart: on v2,
systematic.jsonis read once when the plugin loads. An invalidsystematic.jsonstops the plugin from loading on both hosts. - Bootstrap persists: on v2 the bootstrap is stored with each session as an instruction entry, and it stays there after you remove the plugin. Keep sensitive text out of a custom
bootstrap.file. - No shell snippets:
!`…`blocks in command templates never run on v2; the text reaches the model as written.git-commitandgit-commit-push-prwere reworded so they don't depend on them, and that wording also reaches Pi and Claude Code users. - Task tracking: OpenCode 2.2.0 offers
todowriteonly when its experimentaltodooption is on. Without it, the assistant keeps the task list in its replies.
Tests
Five unit-test files now clean up the temporary directories they create, including when assertions fail before local cleanup. This prevents repeated test runs from accumulating leftover directories; verification found no new directories from the affected tests after a full unit-suite run. (#1236)
Continuous Integration
All seven committed generated surfaces now share one registry and one drift check. bun run surfaces:drift checks every surface and reports how to regenerate failures; surfaces:regen rebuilds them in dependency order, and surfaces:affected --run regenerates and checks only those touched by current changes and their downstream dependencies. CI now checks the previously omitted Pi persona fixtures and configuration field reference, while regeneration avoids timestamp-only changes and removes stale persona fixtures. (#1233)
Also in this release
- Removed
omo-providersfrom the Fro Bot workflow. (#1238) - Updated Biome to 2.6.3 and Fro Bot Agent through 0.126.0 to 0.127.0. (#1235, #1234, #1237)
- Release bookkeeping:
chore(release): v3.27.0(0d6302f).