Files
STTracker/docs/TODO.md
T
Lucas WintherandClaude Opus 5.5 437ca143e5 fix(core): race-safe matching, visibility-checked ID matches, child-preserving merges
- migration 0002: unique index on works (parent_id, position)
- matchWork retries the whole transaction on a unique violation (3 attempts)
- addMissingExternalIds uses ON CONFLICT DO NOTHING
- ID matches only return shared works or the user's own; private works cannot carry external ids
- adminMergeWorks requires shared works and repoints non-colliding children
- draft is computed for the aliased work id

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 19:29:48 +01:00

1.4 KiB

TODO

Durable backlog. Agents append here instead of leaving TODO comments in source. Small, specific, independently actionable. Remove only when actually done.

Now

  • Choose a linter/formatter (e.g. Biome), then add lint to package.json, AGENTS.md and docs/PERMISSIONS.md.
  • Add CI on Gitea Actions: install, typecheck, and test on SQLite and Postgres. Add a guard that fails if AGENTS.md is over 150 lines.

Next

  • Phase 2 and Phase 3 plans (spec §12).

Someday

Recurring

  • Maintain AGENTS.md:
    • Add a rule only in response to a real failure. When an agent repeatedly gets something wrong, that is a gap; add one line, ideally with a code example. Do not pre-empt hypothetical mistakes.
    • Update in the same PR as the convention change. A stale rules file is worse than none, because it actively misleads.
    • Prune quarterly. Delete rules whose convention has changed or whose mistake no longer occurs.
    • Optional, cheap validation: run the same task twice in clean sessions, with and without the file, and compare steps and token use.

Known issues

  • Matching: a shared parent resolved without external IDs or position (title/year reuse in packages/core/src/matching.ts) has no unique key, so concurrent matches can create it twice.
  • bun run typecheck fails with TS18003 until source files exist under apps/, packages/ or plugins/.