Harden file discovery and read errors #20
No reviewers
Labels
No labels
domain:agents
domain:ci
domain:docs
domain:forgejo
domain:infra
domain:memory
domain:runtime
domain:signal
domain:ux
mode:operator-only
mode:patchwarden-iskra-approved
mode:safe-auto
priority:p0
priority:p1
priority:p2
priority:p3
review:claude-reviewed
review:codex-reviewed
review:dziadek-reviewed
review:needs-human
safety:external-write
safety:no-prod-mutation
safety:prod-impact
safety:secret-touch
status:blocked
status:codex-ready
status:merged:pending-evidence
status:needs-evidence
status:operator-needed
status:parked
tier:0-platform-substrate
tier:1-iskra-value-layer
tier:2-tools-products-modules
type:bug
type:chore
type:docs
type:feat
type:policy
type:research
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
pdurlej/fallow-ts!20
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "codex/prewave-hostile-input-safety"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Canary Context Pack
Product story
Agents may point fallow-ts at unfamiliar checkouts. A deterministic checkpoint should return partial evidence plus explicit errors instead of crashing on one unreadable file or relying on accidental symlink behavior.
What changed
errorsarray to the report contract.Promise.allSettledand record per-file read failures.Why it changed
Issue #17 flagged hostile-input safety concerns before Wave 1 contract goldens. This gives the current contract a safer failure mode without adding resolver behavior or runtime dependencies.
Files touched
src/analyze.tssrc/types.tssrc/index.tssrc/format.tstests/analyze.test.mjsREADME.mdRelevant context
codex/prewave-parser-bugs-v0)Runtime evidence
npm run buildnpm testnode dist/cli.js analyze --root . --format json --output /tmp/fallow-ts-report.jsongit diff --checkKnown constraints
Node's
Direntalready avoids following symlink directories by default in this code path. This PR makes that explicit and tested, and adds real-path tracking as a guardrail.Explicit out-of-scope
Requested decision
Approve and merge after PR #19.
Merge blockers
Whole-analysis crashes on one unreadable file, symlink recursion risk, or misleading docs about partial analysis.
Pull request closed