Detect circular dependencies #26
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!26
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "codex/wave2-circular-dependencies"
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 need a compact project-shape signal before editing. Import cycles are one of the first graph-level risks that can be detected deterministically without framework knowledge.
What changed
graph.cyclesas deterministic module-path cycles.circular-dependencyfindings with severity, confidence, location, and evidence path.Why it changed
This implements Wave 2 issue #10 on top of the resolved internal graph.
Files touched
src/analyze.tssrc/types.tssrc/index.tstests/analyze.test.mjstests/golden/basic-report.jsondocs/report-schema-v0.mdREADME.mdRelevant context
Stacked on PR #25 / branch
codex/wave2-unresolved-internal-import.Runtime evidence
npm run buildnpm testnode dist/cli.js analyze --root . --format json --output /tmp/fallow-ts-report.jsonproducedfindings: 0andcycles: []for this repo.git diff --checkKnown constraints
The regex parser does not distinguish type-only imports yet, so type-only edges are included in cycle detection. This is documented as a v0 limitation.
Explicit out-of-scope
No baseline/fail-on behavior, no classification buckets, no unused export analysis, no MCP server.
Requested decision
Review and approve as Wave 2 PR 4.
Merge blockers
Nondeterministic cycle output, duplicate cycle reporting, or docs implying type-only import precision that does not exist yet.
Closes #10.