v9.2.0 — Works Registry (#127) + Path Finder (#129) #141

Merged
claude-bot merged 6 commits from feat/v10-works-registry into main 2026-07-18 16:34:22 +00:00
Contributor

Two more v10-backlog research-workflow features.

#127 — Works Registry

The studied media (music video / film / album) becomes a first-class object, so an observation can be about a work, not merely from a source.

  • Migration 054: project-scoped, soft-deletable works + entry_works.
  • routes/works.ts: CRUD + entry assign/unassign + detail; GET /api/entries?work_id= filter; works surfaced on entry detail.
  • Frontend: Settings → Works management, inline assign on entry detail, work filter on Entries + Timeline.
  • Deferred follow-ups (noted on #127): release-date Timeline pivot, works-as-sections in Markdown export / public motif pages, source-URL clustering bootstrap.

#129 — Path Finder

"How are these two observations related?" Shortest chain between two entries (or entry + motif) through typed connections and shared motifs.

  • services/pathFinder.ts: bounded bipartite BFS (motifs modelled as nodes so a hub motif can't explode the edge set), depth-capped, active-project scoped. GET /api/connections/path.
  • Frontend: Path Finder section on the Insights page — entry/motif pickers + graph render (xyflow, linear layout, clickable nodes, typed edge labels). "No path found" handled explicitly.

Validation

  • Full API suite green on the dev server: 50 files / 353 tests (incl. new works.test.ts 6 + pathFinder.test.ts 6).
  • Fixed a test-isolation bug found in the process: clearEntryData didn't truncate works/entry_works, so works leaked across files in full-suite runs.
  • app build (tsc + vite) green.

Closes #127, closes #129.

🤖 Generated with Claude Code

Two more v10-backlog research-workflow features. ## #127 — Works Registry The studied media (music video / film / album) becomes a first-class object, so an observation can be *about* a work, not merely *from* a source. - Migration 054: project-scoped, soft-deletable `works` + `entry_works`. - `routes/works.ts`: CRUD + entry assign/unassign + detail; `GET /api/entries?work_id=` filter; works surfaced on entry detail. - Frontend: Settings → Works management, inline assign on entry detail, work filter on Entries + Timeline. - Deferred follow-ups (noted on #127): release-date Timeline pivot, works-as-sections in Markdown export / public motif pages, source-URL clustering bootstrap. ## #129 — Path Finder "How are these two observations related?" Shortest chain between two entries (or entry + motif) through typed connections and shared motifs. - `services/pathFinder.ts`: bounded **bipartite BFS** (motifs modelled as nodes so a hub motif can't explode the edge set), depth-capped, active-project scoped. `GET /api/connections/path`. - Frontend: Path Finder section on the Insights page — entry/motif pickers + graph render (xyflow, linear layout, clickable nodes, typed edge labels). "No path found" handled explicitly. ## Validation - Full API suite green on the dev server: **50 files / 353 tests** (incl. new `works.test.ts` 6 + `pathFinder.test.ts` 6). - Fixed a test-isolation bug found in the process: `clearEntryData` didn't truncate `works`/`entry_works`, so works leaked across files in full-suite runs. - `app` build (tsc + vite) green. Closes #127, closes #129. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(p127): Works Registry — works table, CRUD, entry assignment, work_id filter
Some checks failed
CI / App — typecheck, test & build (push) Successful in 2m32s
CI / Images — production build (push) Successful in 4m41s
CI / API — typecheck & tests (push) Has been cancelled
1b6adbeaa6
migration 054 (works + entry_works), routes/works.ts (CRUD + assign/unassign
+ detail), entries ?work_id= filter, works surfaced on entry detail.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(p129): Path Finder — shortest route between two observations
All checks were successful
CI / Images — production build (push) Successful in 37s
CI / App — typecheck, test & build (push) Successful in 1m32s
CI / API — typecheck & tests (push) Successful in 3m48s
6779085501
Bounded bipartite BFS over typed connections + shared motifs (motifs as
nodes so hub motifs don't explode the edge set), depth-capped, active-project
scoped. GET /api/connections/path?from=&to=|to_motif=. services/pathFinder.ts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(p127,p129): Works Registry + Path Finder frontends
All checks were successful
CI / Images — production build (push) Successful in 1m9s
CI / App — typecheck, test & build (push) Successful in 1m39s
CI / API — typecheck & tests (push) Successful in 3m40s
237ba72f98
#127: WorksManagement (Settings), WorkSelect (entry detail assign),
WorkFilterSelect (Entries/Timeline), entry.works type.
#129: PathFinder + PathGraph on Insights (xyflow linear path render,
entry/motif pickers). CHANGELOG for v9.2.0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
test(p127): clear works/entry_works in clearEntryData; robust count lookup
All checks were successful
CI / Images — production build (push) Successful in 36s
CI / App — typecheck, test & build (push) Successful in 1m27s
CI / API — typecheck & tests (push) Successful in 3m19s
95dc095cf3
works accumulated across test files (not truncated), breaking full-suite
runs of works.test.ts. Truncate works + entry_works between tests; assert
entry_count by work id rather than list position.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chore(release): v9.2.0 — Works Registry + Path Finder
Some checks failed
CI / App — typecheck, test & build (push) Has been cancelled
CI / Images — production build (push) Has been cancelled
CI / API — typecheck & tests (push) Has been cancelled
119734e35b
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chore(release): sync lockfile versions to 9.2.0
All checks were successful
CI / App — typecheck, test & build (push) Successful in 2m21s
CI / App — typecheck, test & build (pull_request) Successful in 2m17s
CI / Images — production build (pull_request) Successful in 3m22s
CI / API — typecheck & tests (push) Successful in 4m10s
CI / API — typecheck & tests (pull_request) Successful in 4m3s
CI / Images — production build (push) Successful in 7m7s
5a4425c86a
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
claude-bot deleted branch feat/v10-works-registry 2026-07-18 16:34:23 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/TeaLeaves!141
No description provided.