mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-03 15:27:56 +01:00
docs(freeze): describe full-path resolution and fail-closed cases (#3623)
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
This commit is contained in:
1 parent
a320501f75
commit
a5ad761f5f
2 files changed
+10
-6
No files matched your search
+5
-3
@@ -76,9 +76,11 @@ operation (nested under `hookSpecificOutput` — Claude Code ignores a top-level
|
||||
Polarity is fail-closed: a tool payload the hook cannot parse is DENIED, not
|
||||
allowed — a boundary that fails open is not a boundary. A payload that parses
|
||||
but has neither path field (a non-file tool) is allowed. A deny names the
|
||||
tool, the path field, the boundary and `/unfreeze`. Symlinks are resolved
|
||||
through their FINAL component, so an in-boundary symlink pointing outside the
|
||||
boundary is checked against its target.
|
||||
tool, the path field, the boundary and `/unfreeze`. The path is resolved before
|
||||
the check: `~`, `..` and relative paths, and symlinks at every depth, even
|
||||
through folders that do not exist yet. A path the hook cannot place (a symlink
|
||||
loop, a line break, a Windows drive-relative path, over 4096 characters) is
|
||||
denied.
|
||||
|
||||
The freeze boundary persists until explicitly removed via the state file. The hook
|
||||
script reads it on every Edit/Write/NotebookEdit invocation. Boundaries containing spaces
|
||||
|
||||
@@ -80,9 +80,11 @@ operation (nested under `hookSpecificOutput` — Claude Code ignores a top-level
|
||||
Polarity is fail-closed: a tool payload the hook cannot parse is DENIED, not
|
||||
allowed — a boundary that fails open is not a boundary. A payload that parses
|
||||
but has neither path field (a non-file tool) is allowed. A deny names the
|
||||
tool, the path field, the boundary and `/unfreeze`. Symlinks are resolved
|
||||
through their FINAL component, so an in-boundary symlink pointing outside the
|
||||
boundary is checked against its target.
|
||||
tool, the path field, the boundary and `/unfreeze`. The path is resolved before
|
||||
the check: `~`, `..` and relative paths, and symlinks at every depth, even
|
||||
through folders that do not exist yet. A path the hook cannot place (a symlink
|
||||
loop, a line break, a Windows drive-relative path, over 4096 characters) is
|
||||
denied.
|
||||
|
||||
The freeze boundary persists until explicitly removed via the state file. The hook
|
||||
script reads it on every Edit/Write/NotebookEdit invocation. Boundaries containing spaces
|
||||
|
||||
Reference in new issue
Block a user