Skip to content

chore: release v0.12.0 - #768

Merged
REPPL merged 8 commits into
mainfrom
release/v0.12.0-r2
Oct 1, 2026
Merged

REPPL merged 8 commits into
mainfrom
release/v0.12.0-r2

Conversation

@REPPL

@REPPL REPPL commented Sep 30, 2026

Copy link
Copy Markdown
Collaborator

Release v0.12.0, cut by autonomous run A. When this merges, the tagging workflow reads the dated section and tags v0.12.0.

This is a breaking release. Two things stop working, and docs/how-to/upgrade-to-v0.12.0.md lists every replacement:

  • The build loop says stage, not step, for what a lane goes through. The JSON fields performed, step, refusal.step and lane.step become performed_stage, stage, refusal.stage and lane.stage. The run state file moves to schema version 8: a run begun on v0.11.1 is read as it stands and rewritten at version 8 by its next step, which an older abcd cannot read, so finish a run with the abcd that will keep driving it.
  • The command spellings kept for one release are gone. abcd ahoy dry-run, abcd ahoy identity-check, abcd version, abcd docs lint and abcd site check exit 2 as unknown commands; use abcd ahoy --dry-run, abcd ahoy --identity, abcd --version (and abcd update --check), abcd lint docs and abcd lint site. Bare abcd identity and bare abcd ahoy remote list their sub-verbs and exit 0.

What ships, eleven intents, all additive:

  • A role can run through a command-line harness, with a receipt for every fallback to the host (itd-2609201916056194).
  • An OpenAI-compatible API adapter, allowlist-only, with no network call unless a provider is configured (itd-2609081951381895).
  • One credential store for every external key, abcd ahoy credential (itd-2609221017023290).
  • The status board shows Now, Next and Later (itd-2609212103568351).
  • An intent can name the release it must land by (itd-2609212103572513).
  • A cut release gets a retrospective, abcd reflect (itd-24).
  • A coherence pre-pass before the planning interview, abcd intent prepass (itd-42).
  • The brief must describe what ships: abcd docs fidelity gates the spec close and the cut (itd-60).
  • A dependency bump inside a declared bound can be re-authored without a person (itd-2609221842494980).
  • Session URLs and tool footers are kept out of committed text and the build loop's posts (itd-152).
  • abcd names the product thinker or the technical facilitator, never an unnamed role (itd-2609212137129937).

launch ship derived v0.12.0 (impact breaking) from 281 records that reached a terminal folder since v0.11.1: the eleven intents and 270 resolved or declined issues (171 fixes, nineteen additive, three breaking, 77 internal and outside the changelog). The release guard found the five removed spellings and the records declare them; the findings guard passed with the one major carried past v0.11.1 on its recorded deferral.

The branch is eight commits on main a76d7f5:

  • 4b8ff2a, the user-facing pages brought current for the docs-currency findings and the cross-check's three user-facing findings: the upgrade guide's schema version, the build and ahoy pages, drain's argument, update and version on what reaches the network, prepare-this-repo's decision ids, the README status block, and two CLI help sentences, pinned by tests.
  • e8d5d00, 4d634c4 and c8ddb04, the guard brief chapter brought current after three docs-review holds; the review of c8ddb04 is PROMOTE. One brief sentence was applied from the reviewer's draft and is flagged for the product thinker's review in .abcd/work/brief-review-flags.json.
  • fecdbed, the content commit. The release-changelog composer wrote the prose and the binary checked it cites exactly the cut before writing the dated CHANGELOG section and the RELEASE.md page. The marketplace entry pins the v0.12.0 plugin archive by digest.
  • 828ca62, the semantic-gate receipts for fecdbed, both at tier full over the first roll b89784c4, which differs from the content commit only by the four commits above and the re-cut CHANGELOG:
    • docs-currency-reviewer (Fable 5.1) found 24. The four major ones are fixed, eleven in all; the thirteen minors and nitpicks are captured as one documentation record.
    • The brief-surface cross-check (the manifest's 45 checkers, Opus 5.5) found 129, all real on an independent classification (Fable 5.1). The three user-facing findings and every finding on the guard chapter are fixed; the rest have a disposition each.
  • 175f22f, the records commit.
    • Four minor records to fix in the first lane after the tag: a capture refusal that leaves its lock file behind (iss-2609302305500526), the appendix generator calling /abcd:version host-delegated (iss-2609302306003610), the guard's trailing-dot fold that its comment promises for ../. (iss-2609302306019245), and docs fidelity record and --apply disagreeing on a verdict's chapter shape (iss-2609302306153318). The docs-currency minors are iss-2609302306281487.
    • Bare ahoy remote exiting 0 is the stated breaking change, not a defect; it and the rest of the design-record drift go to the systematic brief pass iss-2609091956001547.
    • The DECISIONS entry carries the run's agenda line, approve the publish step, under ruling A2 of the product thinker's interview and the releases ruling of 2026-09-25T08:04:52Z.
  • ce32617, the guard chapter's JSON sentence reworded so its prose names no verb or flag, which the brief's shape test keeps to the generated appendix; the claims are unchanged.

Local proof: go run ./cmd/record-lint --release-gate fecdbed575f9e8e2cb0b875491d9aa48e8dfa0f9 --require-gate docs-currency-reviewer --require-gate iss35-brief-surface-crosscheck exits 0, launch receipts passes, lint docs --release-gate exits 0, and launch archive --verify --tag v0.12.0 --repository intentdriven/abcd reproduces the committed pin.

Refs: iss-2609302305500526
Refs: iss-2609302306003610
Refs: iss-2609302306019245
Refs: iss-2609302306153318
Refs: iss-2609302306281487
Refs: iss-2609091956001547
Assisted-by: Claude:claude-fable-5-1
Assisted-by: Claude:claude-opus-5-5

The v0.12.0 docs-currency review and the surface cross-check found pages
and help that no longer say what the binary does; each now says what is.

- upgrade guide: a run's state file is rewritten at schema version 8 (the
  version state.go writes), from version 1, the version v0.11.1 wrote.
- build: the `key` check admits an issue id (the issue-keyed lane), and a
  refusal exits 3 on a locked run state as well as on a held intent.
- history separation: its sentence names the store it resolves (a missing
  store created, a legacy corpus moved) and its refusal outside a git
  checkout; a Long help keeps the exit 1 on a finding.
- guard: the default-word delete the guard blocks since 62d1ab5 leaves
  the unseen list, and the argument hint reads `check [--command ...]`,
  since check refuses a positional.
- update and version: the network is reached only by a command whose job
  includes the call; the pages name each such path (launch
  --fetch-baseline, delegating verbs routed to a provider, ahoy connect and
  credential, site setup, the forge calls) in place of an "only" claim.
- ahoy counts five changing sub-verbs, credential --home included;
  prepare-this-repo describes ADRs under timestamp ids; drain gains its
  argument hint and input line; the README sample board shows the Now /
  Next / Later block, taken from the built binary in a throwaway managed
  repository.

The two help sentences are pinned by help_truth_test.go in both
directions (the sentence, and the behaviour it names); the generated
reference and the surface snapshot are regenerated.

Assisted-by: Claude:claude-opus-5-5
The guard blocks `rm -rf ${DIR:-$HOME}` and `${X[0]]-$HOME}` as
rm-rf-root-or-home since 62d1ab5 and 598f477, and the chapter's own
reading of a default already says so. The v0.12.0 docs review held on the
stale clause in the list of what an allow does not see; this removes it,
matching the same fix to commands/guard.md in 4b8ff2a.

Assisted-by: Claude:claude-opus-5-5
The v0.12.0 re-review held on the tail of the same list: an alternative nested
more than three deep and a `$PWD` substring that prints the root both block as
rm-rf-root-or-home since iss-2609290426544292, and the chapter's own reading of
a substring already says so. The release cross-check named three more claims
in the chapter the shipped guard contradicts: only `guard check` speaks JSON,
the hook answering by exit code and stderr alone; the `matches` list names every
entry tripped, the one that fired included; and a hazard the guard reads in
code rather than from the registry is enforced but not taught.

Refs: iss-2609290426544292
Assisted-by: Claude:claude-opus-5-5
The v0.12.0 re-review read the guard chapter whole and held on one more
sentence: `rm -rf ../.` is allowed, and the fold of a trailing `.` after a
`..` warns only past a first segment (`./../.`). This applies the reviewer's
drafted replacement through `docs fidelity --apply`, which flags the sentence
for the product thinker's review in .abcd/work/brief-review-flags.json.

Assisted-by: Claude:claude-opus-5-5
Assisted-by: Claude:claude-opus-5-5
Assisted-by: Claude:claude-opus-5-5
Eleven of the docs-currency gate's 24 findings, the four major ones among
them, are fixed in 4b8ff2a and the re-cut CHANGELOG; the thirteen
remaining minors and nitpicks are captured as one documentation record.
The cross-check's three user-facing findings and every finding on the
guard chapter are fixed before the content commit. Its behaviour findings
are captured with the two defects the docs reviews surfaced, as four
minor records to fix in the first lane after the tag; x-001 is the
stated behaviour of the breaking change, and it and the rest of the
design-record drift are deferred to the systematic brief pass. The
DECISIONS entry carries the run's agenda line, approve the publish step,
under ruling A2 and the releases ruling of 2026-09-25T08:04:52Z.

Refs: iss-2609302305500526
Refs: iss-2609302306003610
Refs: iss-2609302306019245
Refs: iss-2609302306153318
Refs: iss-2609302306281487
Refs: iss-2609091956001547
Assisted-by: Claude:claude-opus-5-5
…prose

The guard chapter's prose above its generated appendix named a verb and a flag,
which the brief's shape rule keeps to the appendix alone. The sentences say the
same thing without the spelling: the check answers in JSON when asked, and the
hook writes nothing on stdout in either output form.

Assisted-by: Claude:claude-opus-5-5
@REPPL
REPPL enabled auto-merge September 30, 2026 23:33
@REPPL
REPPL added this pull request to the merge queue Oct 1, 2026
Merged via the queue into main with commit 9b9540e Oct 1, 2026
14 checks passed
@REPPL
REPPL deleted the release/v0.12.0-r2 branch October 1, 2026 00:34
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