Skip to content

revert: drop commit-confirmed apply from 2.3.0 (defer to 2.4.0)#17

Merged
raspbeguy merged 1 commit into
mainfrom
fix/drop-commit-confirm-from-2.3.0
Jun 24, 2026
Merged

revert: drop commit-confirmed apply from 2.3.0 (defer to 2.4.0)#17
raspbeguy merged 1 commit into
mainfrom
fix/drop-commit-confirm-from-2.3.0

Conversation

@raspbeguy

Copy link
Copy Markdown
Member

Removes the commit-confirm wire surface (added in a85a5cd / PR #11) from 2.3.0: per-write ?confirm, the /confirm endpoints, the uapi:confirm scope, the apply-confirm integration lib, the OpenAPI confirm surface, and the confirm tests. Keeps the three clean, consumed wins for 2.3.0: scope-tree (#5), per-token rate/burst, and the platform-fidelity fixes.

Why

The mechanism works (built, shipped in 2.3.0-rc1, soaked end-to-end on live hardware). It is deferred, not abandoned, for contract-commitment reasons:

  • No first-party consumer. The Terraform provider ships 2.3.0 as Option A (does not consume confirm), so the surface would enter a permanent v2 contract with nothing exercising it.
  • Authz model unsettled (the deciding factor). Per-write arming rides the write's own resource :rw with no uapi:confirm requirement; ack/rollback are window-agnostic; and the package-granularity escalation analysis (a per-write arm snapshots and reverts the whole uci package, not just the resource written) suggests these may need to change. Freezing them into v2 now forecloses fixing them without a 3.0.0.

The dependency is not the blocker: apply-confirm 0.1.0 is released and on the apk feed. The hold is the wire-contract commitment. Deferring lets the whole feature ship once, coherently, in a 2.4.0 (per-write + the standalone POST /confirm arm, with one reviewed authz model), gated on a settled authz model and a concrete consumer.

Decision documented

  • docs/commit-confirm.md rewritten as the deferral decision record + 2.4.0 design reference.
  • docs/roadmap.md "commit-confirmed timed rollback" section updated to "built, deferred from 2.3.0" with the rationale and the bring-back plan.
  • CHANGELOG.md notes the deferral under the 2.3.0 entry.
  • Full implementation recoverable from a85a5cd.

Gates

lint, 756 unit tests, openapi-check all green locally. Zero confirm references remain in src/, tests/, or build/.

🤖 Generated with Claude Code

Removes the commit-confirm wire surface added in a85a5cd (per-write
?confirm, /confirm endpoints, uapi:confirm scope, apply-confirm
integration, OpenAPI confirm surface, tests). Keeps the scope-tree,
per-token rate/burst, and platform-fidelity work.

The mechanism works (built, shipped in 2.3.0-rc1, soaked on live
hardware), but shipping it stable would freeze an unsettled confirm authz
model into the permanent v2 contract: per-write arming rides the write's
own resource :rw with no uapi:confirm requirement, ack/rollback are
window-agnostic, and the package-granularity escalation analysis suggests
these may need to change. With no first-party consumer (the Terraform
provider ships 2.3.0 as Option A), deferring lets the whole feature ship
once in 2.4.0 with one reviewed authz model rather than locking in a
contract changeable only with a major bump. (apply-confirm 0.1.0 is
released on the feed, so the dependency is not the blocker; the wire
contract is.)

Design and decision preserved in docs/commit-confirm.md and
docs/roadmap.md; full implementation recoverable from a85a5cd.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@raspbeguy raspbeguy merged commit 4e81838 into main Jun 24, 2026
5 checks passed
@raspbeguy raspbeguy deleted the fix/drop-commit-confirm-from-2.3.0 branch June 24, 2026 11:26
@raspbeguy raspbeguy mentioned this pull request Jun 24, 2026
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