Skip to content

Absolute-path permission rules never match (tool patterns are worktree-relative) #48193

Description

@czk

Permission rules written as absolute paths never take effect. Tools produce patterns via path.relative(worktree, filePath), so a path like /czk/mem/facts/me.md in a project at /czk/mem arrives as:

  • inside the worktree: facts/me.md (relative)
  • outside the worktree: ../../czk/... (traversal)
  • no git context: czk/... (de-rooted)

So a rule like {"edit": {"/czk/**": "allow"}} can never match, and users get repeated permission prompts despite having allowed the path.

Expected: absolute rules match the actual file path. Actual: only the relative form is evaluated (packages/opencode/src/permission/index.ts, evaluate()).

Seen on v1.18.30 (dev @ f69bece).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions