Skip to content

fix: restore the feature stack lost in the stacked-PR merge - #294

Merged
imran-siddique merged 3 commits into
mainfrom
fix/restore-feature-stack
Jun 12, 2026
Merged

fix: restore the feature stack lost in the stacked-PR merge#294
imran-siddique merged 3 commits into
mainfrom
fix/restore-feature-stack

Conversation

@imran-siddique

Copy link
Copy Markdown
Member

What happened

PRs #278 -> #279 -> #280 -> #282 -> #285 -> #286 -> #287 -> #290 were stacked on #276. When #276 squash-merged and its branch was deleted, the rest merged into each other's now-deleted branches: all show MERGED, but none of their content reached main. The same thing happened in the examples repo (fixed there in examples#19).

Main is currently missing, among other things: the bearer-token wiring (AUTH-001 -- every endpoint unauthenticated in production), upstream MCP forwarding (every tool call denied), Cedar @annotation advice, POST /sessions/{id}/close + TRACE claim issuance, the egress workflow context fix, the silent-mode contract and tests, cmcp verify, and the fail-closed hardware verifiers.

What this restores

The verified stack tip: 45 files across src/cmcp_runtime, src/cmcp_verify, tests/, docs/configuration.md, and the example configs. Em dashes scrubbed per repo style. pyproject (keeps #291's cedarpy fix) and .github workflows untouched.

Test plan

  • Full suite on the restored tree: 679 passed, 1 skipped

Process note

Stacked PRs on GitHub: merge the TOP of the stack into its base branch first and walk down, or retarget each PR to main after the one below merges. Merging the bottom first deletes the base branch and strands the rest.

Generated with Claude Code

imran-siddique and others added 3 commits June 12, 2026 08:33
PRs #278 through #290 were stacked on #276. When #276 squash-merged and
its branch was deleted, the rest of the stack merged into each other's
now-deleted feature branches instead of main: they show MERGED but none
of their content reached main. Main was missing the bearer-token wiring
(every endpoint unauthenticated), upstream MCP forwarding (every tool
call denied via a nonexistent AGT method), Cedar advice, session close +
TRACE claim issuance, the egress workflow context, the silent-mode
contract, cmcp verify, and the fail-closed hardware verifiers.

This restores the verified stack tip (45 files across src/, tests/,
docs/configuration.md, and example configs), with em dashes scrubbed per
repo style. pyproject (cedarpy fix from #291) and .github workflows are
untouched. Full suite: 679 passed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The stacked branches never ran CI (no checks trigger on non-main-target
PRs), so these two mypy findings surface only now: narrow deny_reason
before removeprefix, and annotate the deliberate benchmark seam mock.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@imran-siddique
imran-siddique merged commit 3a7f49f into main Jun 12, 2026
12 of 16 checks passed
imran-siddique added a commit that referenced this pull request Jun 12, 2026
Adds a dedicated paragraph explicitly stating the silent-mode
behavioral contract: PolicyEvaluator suppresses application-level
log lines but still returns would_have_denied=True, and the proxy
writes advisory_deny entries into the hash-chained audit log.
Auditable evidence is preserved in silent mode; only operational
logs are quiet.

The contract is already enforced and tested in
tests/unit/test_silent_mode_contract.py (landed in #294).

Closes #284
@imran-siddique
imran-siddique deleted the fix/restore-feature-stack branch July 29, 2026 23:19
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