This repository was archived by the owner on Aug 5, 2026. It is now read-only.
v0.0.29 — constraint reframe + tooling envelope
Fixed
- Proposals-with-trade-offs S5 follow-up (#1418):
/design --options [N]now warns when the model records
fewer proposal files than requested, no longer claims trade-offs were validated in the confirmation text,
and has negative coverage for fail-closed argument, active-unit, and missing-agent paths. - Tooling envelope FA follow-up (#1420): DEV-1 now authorizes every configured CLI provider/code-agent
launch tuple plus the default non-stream autopilot tuple, runtime gates share the same inherited-default
canonical launch tuple as registry filtering, and Ink treats an absent server-shipped policy as
default-off to match Python handover parity. - Constraint reframe follow-up (#1413): fixed the M5
/forkproposal list call after the product
constraint-fork retirement, removed stale ink/approve constraint,/dismiss constraint, and
/fork decidehelp/autocomplete surface, and hardened the ink parity guard against stale server verbs
and retired usage tokens.
Changed
- Constraint reframe S1 (#1414/#1413): retired the product operator constraint gate, typed HARD-floor
readers, product constraint-fork ledger,/approve constraint,/dismiss constraint, and the
constraint-envelope ACE leg.record_constraintsnow writes optional non-gating framing notes under
notes/framing.md; it no longer writesdecisions/constraints.mdor revokes/blocks approved designs. - Design lifecycle S3 (#1416/#1413):
record_designnow retains non-destructive
proposals/design-<n>.mdvariants,/approve design [<id>]promotes one approved decision, later
re-records no longer auto-revoke the approved decision, and## Build policyis carried on promote and
injected with the approved design standard. - Build enforcement now rests on the approved design standard:
_design_build_checkremains, reads
_design_typed, and usesack.ace.constraint_conflict.hardcheck;normalize_languageis retained for
design metadata. The shared_ACE_FORK_WORKERand M5 architecture-fork/forkproposal surface remain. - DEV-1 config now leaves
constraint_gate.enabledandsafety.constraint_conflict_detectoff by default
for the retired product paths while keepingdesign_gate.enabledand the M5-only
ace.fork_mpr.enabledon.
Added
- Proposals-with-trade-offs S5 (#1418/#1413):
/design --options [N]is a deterministic
operator-triggered design fan-out behinddesign_gate.enabled. It accepts N in the enforced 2..8 range
and defaults to 2, then asks the model to record Nproposals/design-<n>.mdvariants through the existing
record_designpath, each with a## Trade-offspros/cons section; the operator promotes the chosen
proposal with/approve design <id>. With the gate off, the command refuses before a model turn or file
write. - #1420 completes the ADR-0007 tooling-envelope FA: a default-off
security.tooling_envelope.enabledpolicy with{bin, cmd_template}allow-list loading, the pure
ack.tooling_envelope.assert_authorizedhelper, strict fail-closed malformed-input handling, exact
realpath identity for pinned executables, basename-only matching for bare commands, portable*/?
globbing, ASCII-whitespace command-template normalization, and shared Python/Ink parity vectors for
$VAR/${VAR}plus bare-~expansion while leaving undefined env references,%VAR%,~user, and
bracket classes literal. Enforcement is wired at every coder-spawn lane: provider CLI fan-out/web-search
runner, Python handover using the server-shipped policy, autopilotlaunch_coder, reconciler launch
queue,review,/coders use, provider/code-agent registry filtering, and the TypeScript handover
client./pendingcarries only the non-secret effective allow-list for local client spawn checks,
envelope-on CLI refusal is terminal instead of spilling to in-engine fan-out, and FA-S3 adds the
per-lane test matrix plus docs for BYO code-agent operators. Public installs remain byte-identical while
the policy is off;GX10_TOOLING_ENVELOPE_ENABLEDmirrors the nested config toggle.