Skip to content

fix(operations): require honest post-disablement audit receipts - #398

Merged
seonghobae merged 32 commits into
mainfrom
cursor/bc-c0739eb2-170e-4554-8574-3f273e1ac604-0729
Aug 16, 2026
Merged

fix(operations): require honest post-disablement audit receipts#398
seonghobae merged 32 commits into
mainfrom
cursor/bc-c0739eb2-170e-4554-8574-3f273e1ac604-0729

Conversation

@cursor

@cursor cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Purpose

Continue #392 / #226 on protected main a634066 by making the live orphan-disablement receipt an honest operator contract. This PR keeps the single-candidate, non-batch, no-self-repair boundary and adds the missing post-audit envelope plus the invocation docs an operator needs before touching the live registry.

What changed

  • A receipt is retained only when the second full audit is schema-v1 PASS/FAIL, this workflow ID has left the active_orphan_workflow set, and a single-candidate plan finishes PASS.
  • Residual remaining_failure_codes and remaining_active_orphan_ids are printed so the next action is another exact-id invocation, not a guessed batch.
  • npm run operations:workflow-registry-disable -- <id> is the named entrypoint. CHANGELOG.md and docs/doctoring/workflow-registry-disablement.md now state token-file order, receipt fields, and the meaning of exit 0 plus post_audit_status: FAIL.
  • Mutation transport sends the same User-Agent as the audit reader.
  • Local npm run typecheck and npm test (100% coverage thresholds) passed on this head.

Boundaries

Do not merge #392 at 8956df0. This branch already contains that lineage plus the receipt/docs repair. No workflow is disabled by opening this PR. Actual disablement still requires a fresh audit and a delegated Actions-write token file at operator runtime. No ambient GitHub/model secret is accepted, and no governance/security/coverage threshold is weakened.

Related: #226, #392.

Open in Web View Automation 

cursoragent and others added 2 commits August 16, 2026 15:18
Refuse a live-disable receipt unless the second full audit is a schema-v1
PASS/FAIL envelope, this workflow leaves the active-orphan set, and a
single-candidate plan finishes clean. Surface residual failure codes and
orphan IDs so the operator can invoke the next exact disablement.

Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Cover advertised GitHub Content-Length refusal, default CLI exit-code
assignment, omitted repository defaults, and residual orphan-id sorting so
the honest post-audit envelope stays at 100% statements, branches, functions,
and lines.

Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
@seonghobae
seonghobae marked this pull request as ready for review August 16, 2026 17:02
@cursor

cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor Author

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@seonghobae
seonghobae merged commit eaeff88 into main Aug 16, 2026
16 checks passed
@seonghobae
seonghobae deleted the cursor/bc-c0739eb2-170e-4554-8574-3f273e1ac604-0729 branch August 16, 2026 17:02
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.

2 participants