Conversation
Covers exclusion support across file/bash/web/MCP permissions, including the "existing vs newly created files" snapshot case. Schema changes route through SpiceDB permission subtraction (granted - excluded); translator gains a materialize step for snapshot expansion. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Nineteen tasks covering schema extensions, translator types/prompt/relationships, materialize step for snapshot exclusions, hook-server routing, TUI nesting, grant-flow integration, and README updates. Each task is TDD with exact code and verification commands. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
*_excludedrelations that subtract from granted in SpiceDB).basename_prefix) and asnapshot_existingdirective that walks the filesystem at apply time to distinguish existing vs newly-created files.file_read/file_write/bash/web_fetch/mcpcategories now flow through the resource check (exclusions were previously bypassed by the blanket shortcut).Notable changes
file_path_and_basename_prefix_matchandfile_path_equalscaveats; bare-sessiongrants allowed on every rule type;read_excluded/write_excluded/execute_excluded/fetch_excluded/invoke_excludedrelations subtract from bothcheckand*_needs_approval.FileExclusion/BashExclusion/WebExclusion/MCPExclusiontypes;Materializestep expandssnapshot_existing: trueinto a paths-kind exclusion; relationship emission handles bare-session grants and every exclusion shape.categoryHasResourcegate on blanket shortcut; grant flow calls Materialize at confirm time so "existing files" means "when the grant was applied".↳ except …), and README updated.Test Plan
go test ./...— all packages pass (schema, translator, hookserver, tui included)go build ./cmd/spicebox— binary buildsFilterPermissions↳ exceptindented exclusions with collapsed path countsspicebox claudeon a prompt like "read and write Go files under $(pwd) except .env* files"🤖 Generated with Claude Code