Skip to content

Don't crash when a tracked file is missing (#88)#99

Merged
jhidding merged 1 commit into
entangled:mainfrom
v1kko:fix/88-move-source
Jun 9, 2026
Merged

Don't crash when a tracked file is missing (#88)#99
jhidding merged 1 commit into
entangled:mainfrom
v1kko:fix/88-move-source

Conversation

@v1kko

@v1kko v1kko commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Moving or renaming a source markdown file left a stale entry in the filedb pointing at a path that no longer exists. FileDB.changed_files then called fs[Path(p)] on it, raising FileNotFoundError and crashing sync/watch.

Treat a tracked file that is no longer on disk as changed, so a moved or deleted source surfaces as a change (triggering a re-tangle) instead of throwing.

Adds a regression test.

Notable finding: this issue and #96 are complementary. With only the #88 fix, a rename no longer crashes but then trips the #96 false-positive conflict (the annotation comment changes from <<test.md…>> to <<not-test.md…>> while the renamed source is older). I verified that with both fixes applied, a source rename works fully cleanly (test.c correctly re-references not-test.md, exit 0). So once both PRs land, "move a source file" works end-to-end. The two branches are independent, so they can be reviewed/merged in either order.

Moving or renaming a source markdown file left a stale entry in the
filedb pointing at a path that no longer exists. `FileDB.changed_files`
then called `fs[Path(p)]` on it, raising `FileNotFoundError` and crashing
`sync`/`watch`.

Treat a tracked file that is no longer on disk as changed, so a moved or
deleted source surfaces as a change (triggering a re-tangle) instead of
throwing.

Adds a regression test.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jhidding jhidding merged commit 212e973 into entangled:main Jun 9, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants