Skip to content

docs: consumer-facing pin mentions follow the 2.0.32 pin, and a repository guard keeps them on spec/SNAPSHOT.md's version - #476

Merged
Blind-Striker merged 1 commit into
masterfrom
docs/devex-consumer-pin
Oct 18, 2026
Merged

Blind-Striker merged 1 commit into
masterfrom
docs/devex-consumer-pin

Conversation

@Blind-Striker

@Blind-Striker Blind-Striker commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

Consumer-facing pin mentions now name 2.0.32, the version #465 pinned. A repository guard reads spec/SNAPSHOT.md at test time, so the next refresh cannot leave them stale. A stale network-timeout sentence goes too. The 2.0.32 DevEx run found both: four builders hit the 2.0.29 install line independently.

What changes

  • The install line: README.md:108 becomes npm install -g @opencode/cli@2.0.32. The packed package readmes are built from README.md, so they follow.
  • The bug-report template: its server-version placeholder becomes 2.0.32.
  • docs/guide/requests.md:257: "upstream's implementation at the pin (v2.0.32)". Before the tag changed, every implementation-derived rule in that section was checked against upstream's source at v2.0.32, with file and line, and all still hold. A fresh review re-checked them independently.
  • docs/guide/connection-modes.md: the bounded info-call paragraph no longer says the SDK has "no network-timeout knob yet". It now says NetworkTimeout "bounds a call that stops making progress (no response headers, or no new body bytes), not the whole call, so a CancellationTokenSource is the honest deadline". The runtime lane reviewed and approved this wording.
  • .github/workflows/consumer-leg.yml: the comment quoting SNAPSHOT's old prose keeps the quote verbatim and adds "as it read at the v2.0.3 pin", so it no longer reads as today's pin.
  • ConsumerPinGuard (RepositoryGates):
    • It reads the one "Upstream release tag" row from spec/SNAPSHOT.md. If that row is missing or appears twice, it fails with a message naming the file, the expected row and the match count.
    • It checks README.md, docs/guide/** and .github/ISSUE_TEMPLATE/**, listing each stale mention by path and line. Its patterns are:
      • npm install -g @opencode/cli@<version>, unquoted or quoted;
      • "at the pin (v<version>)";
      • the bug template's server-version placeholder, with the id and the value quoted or not.
    • Not pin mentions: dated evidence notes ("Observed on @opencode/cli@2.0.15") and version-scoped behaviour ("a 2.0.32 service re-applies…") keep their versions on purpose, and the guard's patterns never match them.

Tests

  • Red first: on the base, the guard named exactly the three stale sites; it passes after the fix.

  • Fixture rows:

    • every stale form in path-then-line order, including nested folders;
    • both quote styles;
    • a placeholder outside the server-version field, which is ignored;
    • the four evidence-note shapes, which stay green;
    • a missing SNAPSHOT row and a duplicated one, each with the full message.
  • Mutation: eight compiling mutants, all killed:

    Mutant Killed by
    docs/guide skipped the ordered-sites row
    a fixed version instead of the SNAPSHOT tag the ordered-sites row
    only the first mention per file the ordered-sites row
    the install form widened to every @opencode/cli@ the evidence-note rows
    the quoted install form unrecognised the quoted-sites row
    the quoted placeholder unrecognised the quoted-sites row
    a quoted id not opening the field the quoted-sites row
    the SNAPSHOT refusal replaced by Single() the invalid-SNAPSHOT rows

Local check and review

  • Local check on dev-01, under the shared gate lock, after a root Release build: slopwatch 0 issues; 0 warnings; both format passes; verify-clones passing; generate --verify current; Tools.Tests 2101/0, Packaging included. CI is the full gate.

  • Review:

    • The coordinator's Claude review found two nits: the guard lacked its summary, and a malformed SNAPSHOT row failed opaquely.
    • A fresh cross-family review found the quoted-form gap, re-verified the upstream rules, and inventoried every opencode version literal in consumer text.
    • The runtime lane approved the timeout sentence.

    All findings are fixed here.

  • Left as they are: the CHANGELOG's published sections, the ADRs, and the test fixtures carry historical versions on purpose.

Provenance: Generator lane / opencode dispatch harness (openai/gpt-6.1-sol-fast-1m), coordinated, reviewed and finished in Claude Code.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

…itory guard keeps them on spec/SNAPSHOT.md's version
@Blind-Striker
Blind-Striker added this pull request to the merge queue Oct 18, 2026
Merged via the queue into master with commit e5e0465 Oct 18, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant