You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-up to the Unknown-class fixes — the lower-severity review items:
5. shell tool description (cmd/odek/shell.go): add the `unknown` class and
state the fail-closed default, so the model driving the tool can reason
about why an unrecognised command was denied.
6. sensitivePathFragments (classifier.go): document why it is deliberately
separate from ClassifyPath's home-sensitive-dir list (token-substring,
credential reads vs absolute-path write-risk) so the overlap doesn't get
"deduped" into a behavior change, and so a maintainer updating one
considers the other.
7. safeCommands (classifier.go): extend the read-only allowlist with common
modern CLIs (fd, eza/exa/lsd, htop/btop/glances, pstree/procs, duf, dust,
delta, hexyl, glow) so fail-closed doesn't deny routine inspection.
8. classifyStage (classifier.go): pass a pipedInto flag instead of having
classifyPipeline re-run unwrapWrappers on each non-head stage purely to
read the head command — one unwrap per stage now.
9. hasSystemRedirectTarget → touchesSystemPath (classifier.go): the function
flags ANY system-path token, not just redirect targets, and is NOT
redundant with isSystemWrite (verified: it catches `cat /etc/foo` and
unknown tools pointed at /usr, and runs after isLocalWrite). Renamed for
accuracy with a comment on why both checks exist.
Behavior change is limited to #7 (more tools classify Safe). Regression test
for the new safe tools added. Full suite green; go vet clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments