Skip to content

test: a new grant leaves existing capabilities valid (spec review r98) - #14

Merged
antoinetoussaint-byte merged 2 commits into
mainfrom
test/solution-principal-grant-keeps-capabilities
Oct 26, 2026
Merged

antoinetoussaint-byte merged 2 commits into
mainfrom
test/solution-principal-grant-keeps-capabilities

Conversation

@antoinetoussaint-byte

Copy link
Copy Markdown
Collaborator

What

These are the two minors from spec review r98 on the solution-principal target (#11, merged as d2e5e3e).

  • f1, decision (b): the model says a new grant leaves every existing capability valid, but no case proved it. The revoke case now:

    1. issues the Viewer's and the Editor's capabilities;
    2. grants the Viewer a new role (author) and an unrelated person a role;
    3. requires both capabilities to still pass Check;
    4. then revokes both new grants.

    An implementation that bumps a revision on every GrantRole now fails the target.

  • f2: gofmt -w on libraries/authority-client/go/workcontext/owner_target_test.go, removing its trailing blank line.

Tests

  • go vet is clean in libraries/conformance/go and libraries/authority-client/go.
  • go test ./... passes in libraries/authority-client/go.
  • go test ./plugins/registry_test passes in the local service, with the target skipped.
  • gofmt -l is clean outside generated code.
  • The target is still opt-in (AUTHORITY_TARGET=solution-principal), and implementation (step 2) follows.

🤖 Generated with Claude Code

antoinetoussaint-byte and others added 2 commits October 25, 2026 21:56
f1: the revoke case issues two capabilities, grants the holder a new role and
an unrelated person a role, and requires both capabilities to still check.
f2: gofmt the Go owner target.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…view r108)

The Viewer's author revoke ran before the viewer revoke, so the 'revoked'
check passed even when the last-grant revoke invalidated nothing. Reissue the
capability after the two new revokes, so the last-grant revoke must invalidate
a live one. Every other revoke check already holds a capability issued just
before its own revoke.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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