Skip to content

feat(authority): require signed store owner credential for local MCP - #393

Merged
debuggingfuture merged 1 commit into
mainfrom
surface/console-owner-387
Oct 8, 2026
Merged

debuggingfuture merged 1 commit into
mainfrom
surface/console-owner-387

Conversation

@debuggingfuture

@debuggingfuture debuggingfuture commented Oct 6, 2026 •

Copy link
Copy Markdown
Member

token mint --owner signs a profile 2 owner claim bound to the selected store's persistent UUID. mcp --owner verifies that claim before protocol output and rejects ordinary, restricted, delegated, recreated-store and different-store credentials. Owner reads retain row, zone and mask policy enforcement.

Store initialization persists the UUID, and owner mint supplies it for an existing store. Scoped pull carries both the store identity and the reachable signed control head; a conflicting local identity refuses before replacement. The branch pins surface.package.owner-flag and the owner profile test.

Validation at 1a28b957: all 9 MCP integration tests pass and corpus lint reports 0 findings. The full workspace suite, including documentation tests, and test-first gate pass at 57c275af. The merge from main changes only CI files. The isolated audit lookup over 8640 reads at 57c275af takes 207 milliseconds against its 1-second bound.

Closes #387.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview URL: https://surface-console-owner-387.spec.contextful.work (commit 2349865)

This URL reflects your latest Preview deployment

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://a1e69de7.spec.contextful.work 2349865 2026-10-08T17:10:41.955Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://cf6e7900.spec.contextful.work 57c275a 2026-10-06T16:11:22.895Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://0bdb74a2.spec.contextful.work 565133a 2026-10-06T09:59:39.665Z Visit the dashboard ↗
  • Build: Success ✅
  • Deployment: Success ✅

View logs ↗
https://299dd0d1.spec.contextful.work 2dc5267 2026-10-06T07:35:15.777Z Visit the dashboard ↗

@debuggingfuture
debuggingfuture marked this pull request as ready for review October 6, 2026 17:06
@debuggingfuture
debuggingfuture marked this pull request as draft October 6, 2026 17:07

@flaredispatch-fractalboxdev flaredispatch-fractalboxdev Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI code review — 🛑 Request changes

Risk tier: full · 1 critical · 0 warnings · 0 suggestions

Reviewers: security 1 · performance 0 · code-quality 1 · documentation ⚠️ · release-management ⚠️ · compliance ⚠️ · agents-md ⚠️

1. 🛑 Critical — Pull adopts a remote identity into a non-empty local store

📍 crates/contextful-sync/src/sync.rs:987-1004

The identity-conflict check rejects only a differing local 'store-id'; when the local file is missing, the pull proceeds regardless of whether the store root already contains data. The subsequent pull can import the bucket's UUID into an existing legacy/populated root, making owner credentials for the remote store valid against unrelated local rows. A missing identity should be accepted only for a demonstrably empty store (or the operation should fail and require explicit initialization).

📋 View full logs & reviewed diff ↗

token mint --owner signs a profile 2 owner claim bound to the selected
store's persistent UUID. mcp --owner verifies that claim before protocol
output and refuses ordinary, restricted, delegated, recreated-store and
different-store credentials. Scoped pull carries the store identity and
refuses a conflicting local UUID before replacement.

Closes #387.
@debuggingfuture
debuggingfuture force-pushed the surface/console-owner-387 branch from 1a28b95 to 2349865 Compare October 8, 2026 17:10
@debuggingfuture
debuggingfuture marked this pull request as ready for review October 8, 2026 17:10
@debuggingfuture
debuggingfuture merged commit ddd6f64 into main Oct 8, 2026

@flaredispatch-fractalboxdev flaredispatch-fractalboxdev Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AI code review — ✅ Approve

Risk tier: full · 0 critical · 0 warnings · 0 suggestions

Reviewers: security 0 · performance 0 · code-quality ⚠️ · documentation ⚠️ · release-management ⚠️ · compliance ⚠️ · agents-md 0

No findings.

📋 View full logs & reviewed diff ↗

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.

console: bind the stdio owner flag to a verified store owner credential

1 participant