Repository navigation
v7.0.0
[7.0.0] - 2026-07-27
A broad validation claim now has to be one, and the two review-finding fields
6.9.0 introduced are reachable for the first time:
- Breaking. A command recorded at
broadscope is refused when it selects
which tests it runs, either by naming a test file or by filtering with-t,
--test-name-pattern,--testNamePattern,-k,-run,--grepor
--filter. 6.9.0 accepted all of these. A repository whose canonical gate is a
filtered command must record that command asfocusedand arm the whole suite
for the broad observation a final review requires. - Breaking. A failing broad observation now blocks its own feature's review
until that exact command passes again for the current workspace content.
Previously a red repository gate was discharged by arming something smaller
under the same label: every field of the resulting record true, and the gate
itself never passing. reviewFindingin the host tool schema was.strict()withoutscopeBlocker
orfindingId, so every submission the review skill instructs was rejected at
the boundary even though the durable schema accepts both andnextAction
already readsscopeBlocker. Both fields now pass, with a parity test holding
the host schema to the durable one.- An explicit grant of authority over already-planned work reads as continuation
rather than a goal change. A session planned with "do not implement anything
yet" and then told "you have my approval to implement it end to end" no longer
refuses the authorization it was just given. New or different outcomes are
still refused. - Three architecture gates make the layering enforceable rather than described:
everysrcexport must be imported outside its declaring file, every
@opencode-ai/*import must route throughsrc/platform/opencode/sdk.ts, and
the source and documentation budgets report their remaining headroom instead of
speaking up only once they are exceeded.
The durable-invariant checker moved out of transitions.ts into
src/domain/session-invariants.ts, with its rule families explained and eleven
tests covering them; it previously had no direct coverage at all. The README is
half its former size. ADR 0009 now records what the model-driven harness measured
rather than what its guards were expected to do, including one escape left
deliberately open: a broad command that cannot fail, such as git diff --check,
is still accepted, because refusing it means deciding which commands count as
tests.
The Session v5 schema is unchanged, and no durable document written by a 6.x
build is rejected on load. Both refusals above apply when new evidence is
recorded, so a session carrying a filtered broad observation from 6.9.0 keeps it
and needs a whole-suite pass before its final review.
Install or update:
opencode plugin opencode-plugin-flow@7.0.0 --global --force