Make per-file IO error test deterministic #44
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!44
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "codex/unblock-ci-per-file-error-test"
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
The alpha release train is blocked because every open fork PR fails the same CI test. The failing test depends on chmod-based unreadability, which is not deterministic in Forgejo's Docker runner.
What changed
AnalyzeOptions.readSourceFileseam used only when indexing discovered source files.EACCESfor one discovered file instead of relying onchmod 000.AnalyzeOptionstype with the public analyze API.Why it changed
The previous test passed locally but failed in CI because the runner could still read a
chmod 000file. This made PRs #40, #41, #42, and #43 fail for an environmental reason unrelated to their changes.Files touched
src/analyze.tssrc/index.tstests/analyze.test.mjsRelevant context
This is an unblocker PR for the parallel alpha release train. It should merge before #40-#43, then those PRs can be rebased or updated onto the fixed test.
Runtime evidence
npm run buildnode --test tests/analyze.test.mjsnpm test— 32/32 passingnpm run release:smokenode dist/cli.js analyze --root . --format json --output /tmp/fallow-ts-report.jsonnode dist/cli.js analyze --root examples/demo-project --format textgit diff --checkKnown constraints
The new option is intentionally narrow: it only overrides source-file reads during indexing. Package metadata and workspace metadata still use the normal filesystem path.
Coordination notes
After this merges, update/rebase #40 first, then #43, #41, #42 in that order.
Explicit out-of-scope
No version changes, no package distribution changes, no CI matrix changes, no docs wave changes, no analyzer categories.
Requested decision
Approve merge if the test seam is acceptable as the smallest stable way to keep the per-file error behavior covered in CI.
Merge blockers
Public API concern around
AnalyzeOptions, failing CI, or a simpler deterministic test mechanism that does not depend on runner permissions.