This website requires JavaScript.
a622959f42
docs: handoff reflects pushed branches
feat/phase1
Lucas Winther and Claude Opus 5.5
2026-11-02 04:55:30 +01:00
b76d071d87
wip(docs): reorder DECISIONS newest-first (task 19, unfinished)
task/19
Lucas Winther and Claude Opus 5.5
2026-11-02 04:55:00 +01:00
be04fab098
docs: phase 1 handoff, execution ledger and task reports
Lucas Winther and Claude Opus 5.5
2026-11-02 04:53:02 +01:00
bbd04a5577
feat(web): lists, groupings and threads with search-to-add, reorder and grouping rating
task/18
Lucas Winther and Claude Opus 5.5
2026-10-30 22:20:10 +01:00
9546fa13f2
fix(web): settle every review save, not just the latest
task/17
Lucas Winther and Claude Opus 5.5
2026-10-30 22:19:15 +01:00
ec39491f47
feat(web): log of reads, plays, watches and listens, by month
Lucas Winther and Claude Opus 5.5
2026-10-30 22:19:02 +01:00
b38a2674f4
feat(web): sources: connect from the manifest, device sign-in, file import, schedule, runs
Lucas Winther and Claude Opus 5.5
2026-10-30 22:18:17 +01:00
67d94f5107
feat(web): changes inbox grouped by run, with per-entry filter
Lucas Winther and Claude Opus 5.5
2026-10-30 22:16:06 +01:00
4166ecb8f5
fix(web): keep cached library rows when a refresh fails
Lucas Winther and Claude Opus 5.5
2026-10-30 22:16:06 +01:00
5c837a6679
Merge branch 'task/17' into task/18
Lucas Winther
2026-10-30 22:14:56 +01:00
4608c977b7
fix(web): keep review text on a failed save; review round 2
Lucas Winther and Claude Opus 5.5
2026-10-30 22:14:02 +01:00
53d9e7c9c9
feat(server): plugins list says which sources sign in with a device code
Lucas Winther and Claude Opus 5.5
2026-10-30 22:13:24 +01:00
c2e8c83f86
feat(core,server): log feed, titles on changes, work titles on copies
Lucas Winther and Claude Opus 5.5
2026-10-30 22:11:53 +01:00
5fa59310f3
fix(web): review round 1: optimistic edits, friendly errors, preferences, Gelasio
Lucas Winther and Claude Opus 5.5
2026-10-30 22:03:51 +01:00
d204775235
feat(server): auth status, attachments list, user preferences
Lucas Winther and Claude Opus 5.5
2026-10-30 21:57:08 +01:00
d547355e5c
Merge branch 'feat/phase1' into task/17
Lucas Winther
2026-10-30 21:55:33 +01:00
42fea7d54e
merge: task 16 server API
Lucas Winther and Claude Opus 5.5
2026-10-30 21:40:38 +01:00
439d138967
feat(web): app shell, library, entry detail
Lucas Winther and Claude Opus 5.5
2026-10-30 21:37:56 +01:00
70bc6c36d3
feat(web): theme tokens, self-hosted Inter, HTML entry
Lucas Winther and Claude Opus 5.5
2026-10-30 21:37:56 +01:00
0b34ede62e
docs: token actor, connection deleted_at and CSRF decisions; follow-ups
Lucas Winther and Claude Opus 5.5
2026-10-30 21:30:59 +01:00
5f7d54b805
fix(server): token actor, login CSRF, 415, cookie decoding, admin invites, production default
Lucas Winther and Claude Opus 5.5
2026-10-30 21:30:43 +01:00
aa8e4db070
fix(core): token writes keep their actor in history but are user-owned in field_sources
Lucas Winther and Claude Opus 5.5
2026-10-30 21:29:38 +01:00
e3a759d768
fix(core): soft-delete source connections with deleted_at
Lucas Winther and Claude Opus 5.5
2026-10-30 21:25:59 +01:00
0bb871cd19
feat(web): api client and display formatters
Lucas Winther and Claude Opus 5.5
2026-10-30 21:25:41 +01:00
0a540208e1
test(server): silence the broken fixture plugin warning
Lucas Winther and Claude Opus 5.5
2026-10-30 21:19:08 +01:00
348b04e928
docs: server architecture, API decisions, follow-ups
Lucas Winther and Claude Opus 5.5
2026-10-30 21:17:18 +01:00
02b7eed5ec
feat(server): boot: migrate, load plugins, worker, scheduler, daily backup, web placeholder
Lucas Winther and Claude Opus 5.5
2026-10-30 21:16:15 +01:00
6963e297b0
feat(server): REST API, auth, sources, changes, export
Lucas Winther and Claude Opus 5.5
2026-10-30 21:15:01 +01:00
7b0a6738dd
feat(core): API support helpers: token list, suggestions, attachment links, connection runs, device auth, file-mode sync
Lucas Winther and Claude Opus 5.5
2026-10-30 21:10:39 +01:00
7f3d0d5c44
merge: task 9 jobs, scheduler, registry, connections
Lucas Winther and Claude Opus 5.5
2026-10-30 21:02:52 +01:00
f0d41f23c8
fix(core): reaper skips own in-flight jobs, heartbeat, no attempt burned on shutdown
Lucas Winther and Claude Sonnet 5.5
2026-10-30 20:57:56 +01:00
839d9697b0
merge: feat/phase1 into task/9
Lucas Winther
2026-10-30 20:53:22 +01:00
6f628c4693
fix(core): job failure semantics, stale-lock reaper, run-scoped context, reload
Lucas Winther and Claude Sonnet 5.5
2026-10-30 20:52:51 +01:00
cea4afd0de
merge: task 8 sync engine
Lucas Winther and Claude Opus 5.5
2026-10-30 20:48:48 +01:00
a003c3eb7d
fix(core): sync review round 1: lists, supersede, dedupe conflicts, retries
Lucas Winther and Claude Opus 5.5
2026-10-30 20:43:08 +01:00
0604c323c3
fix(core): re-point source records when a per-user move merges entries
Lucas Winther and Claude Opus 5.5
2026-10-30 20:43:08 +01:00
6efb97eb51
fix(core): batch listen ingestion per 500
Lucas Winther and Claude Opus 5.5
2026-10-30 20:43:08 +01:00
166b8ecb5e
feat(core): jobs, scheduler, plugin registry, connections
Lucas Winther and Claude Sonnet 5.5
2026-10-30 20:39:17 +01:00
207c92bb4d
merge: task 8 sync engine
Lucas Winther
2026-10-30 20:35:37 +01:00
b2e6e1948b
Merge branch 'feat/phase1' into task/8
Lucas Winther
2026-10-30 20:35:25 +01:00
c8ce107f73
merge: task 15 export, restore, backups
Lucas Winther and Claude Opus 5.5
2026-10-30 20:26:55 +01:00
1975e971f9
feat(core): sync engine and changes inbox
Lucas Winther and Claude Opus 5.5
2026-10-30 20:26:03 +01:00
37a0b0ba94
feat(core): source record snapshots with stable hash and gzipped versions
Lucas Winther and Claude Opus 5.5
2026-10-30 20:26:03 +01:00
66b155876f
fix(core): atomic restore with aliases, snapshot export, hardened backups
Lucas Winther and Claude Sonnet 5.5
2026-10-30 20:24:10 +01:00
a047020d54
feat(core): export bundle, restore, backups
Lucas Winther and Claude Sonnet 5.5
2026-10-30 20:17:25 +01:00
33631aef3c
merge: task 6 user layer
Lucas Winther and Claude Opus 5.5
2026-10-30 20:13:03 +01:00
c6865b2522
fix(core): drill-down lists descendants under untracked intermediates
Lucas Winther and Claude Opus 5.5
2026-10-30 20:05:12 +01:00
00fc0180b0
docs: record user-layer decisions, core module map and known gaps
Lucas Winther and Claude Opus 5.5
2026-10-30 20:00:14 +01:00
7154ca0a61
fix(core): race-safe entry upsert and lossless per-user moves
Lucas Winther and Claude Opus 5.5
2026-10-30 19:59:54 +01:00
512e6e9464
fix(core): roll up descendants and surface orphaned entries; SQL-derived title cursor
Lucas Winther and Claude Opus 5.5
2026-10-30 19:59:09 +01:00
4c65939d61
merge: feat/phase1 into task/6
Lucas Winther
2026-10-30 19:54:33 +01:00
d98b2b9909
chore: ignore agent worktree directory
Lucas Winther and Claude Opus 5.5
2026-10-30 19:37:04 +01:00
a13d9cd476
merge: task 5 works and matching
Lucas Winther and Claude Opus 5.5
2026-10-30 19:35:57 +01:00
c7471f7761
feat(core): engagements, lists and copies with history restore
Lucas Winther and Claude Opus 5.5
2026-10-30 19:35:15 +01:00
13b81b1cd5
feat(core): entries, user history and match suggestion accept/reject
Lucas Winther and Claude Opus 5.5
2026-10-30 19:34:47 +01:00
50c115b4c7
fix(core): follow merged tombstones in the position lookup
Lucas Winther and Claude Opus 5.5
2026-10-30 19:32:27 +01:00
437ca143e5
fix(core): race-safe matching, visibility-checked ID matches, child-preserving merges
Lucas Winther and Claude Opus 5.5
2026-10-30 19:29:48 +01:00
60876c2930
merge: task 7 attachments and crypto
Lucas Winther and Claude Opus 5.5
2026-10-30 19:27:30 +01:00
4acb368c87
fix(core): serialise attachment file mutations, atomic writes, reject svg
Lucas Winther and Claude Sonnet 5.5
2026-10-30 19:26:16 +01:00
c7effb5f0a
merge: task 4 auth
Lucas Winther and Claude Opus 5.5
2026-10-30 15:59:31 +01:00
56b86e27da
feat(core): custom field definitions and value validation
Lucas Winther and Claude Opus 5.5
2026-10-30 15:56:51 +01:00
fe3c9e4881
fix(core): serialise first-user registration, equalise login timing
Lucas Winther and Claude Sonnet 5.5
2026-10-30 15:56:36 +01:00
a46fb60eee
feat(core): works catalogue and matching
Lucas Winther and Claude Sonnet 5.5
2026-10-30 15:56:05 +01:00
e1faa7433b
feat(core): users, sessions, invites, app tokens
Lucas Winther and Claude Sonnet 5.5
2026-10-30 15:54:47 +01:00
83940a3b31
merge: task 14
Lucas Winther and Claude Opus 5.5
2026-10-30 15:54:39 +01:00
92f7c9a461
merge: task 13
Lucas Winther and Claude Opus 5.5
2026-10-30 15:54:39 +01:00
94877c1e6e
merge: task 10
Lucas Winther and Claude Opus 5.5
2026-10-30 15:54:39 +01:00
8f58ba4cdc
feat(core): attachments and credential encryption
Lucas Winther and Claude Opus 5.5
2026-10-30 15:54:33 +01:00
a02fd808a4
merge: task 12
Lucas Winther and Claude Opus 5.5
2026-10-30 15:53:35 +01:00
370275090f
merge: task 11
Lucas Winther and Claude Opus 5.5
2026-10-30 15:53:35 +01:00
d392a65aa7
merge: task 2 schema
Lucas Winther and Claude Opus 5.5
2026-10-30 15:52:10 +01:00
00742937c9
fix(plugins): walk listenbrainz listens backwards with max_ts
Lucas Winther and Claude Sonnet 5.5
2026-10-30 15:51:58 +01:00
9708fb5e70
fix(plugins): type-specific trakt external id namespaces
Lucas Winther and Claude Sonnet 5.5
2026-10-30 15:51:58 +01:00
4c08c16e48
fix(plugins): unique csv row keys, per-file default mediaType, scale-aware zero rating
Lucas Winther and Claude Sonnet 5.5
2026-10-30 15:51:22 +01:00
2573c83f70
fix(plugins): mangabaka type-specific external id namespaces
Lucas Winther and Claude Opus 5.5
2026-10-30 15:50:51 +01:00
26d021af48
fix(plugins): test hardcover lookup and all status mappings
Lucas Winther and Claude Sonnet 5.5
2026-10-30 15:50:32 +01:00
d9f935d8a8
test(plugins): fix mangabaka upsert-without-entry fixture
Lucas Winther and Claude Opus 5.5
2026-10-30 15:50:44 +01:00
f30c0db2b1
fix(plugins): mangabaka never deletes on upsert without entry
Lucas Winther and Claude Opus 5.5
2026-10-30 15:50:32 +01:00
59ccc90bc1
feat(plugins): trakt
Lucas Winther and Claude Sonnet 5.5
2026-10-30 15:49:47 +01:00
3eec2f2184
feat(plugins): listenbrainz and lastfm
Lucas Winther and Claude Sonnet 5.5
2026-10-30 15:49:31 +01:00
ff595c1c5f
fix(db): add down migration, template-DB test harness, EntryStatus type
Lucas Winther and Claude Sonnet 5.5
2026-10-30 15:49:06 +01:00
a540c7d34d
feat(plugins): csv and json import
Lucas Winther and Claude Sonnet 5.5
2026-10-30 15:48:59 +01:00
c09968086f
feat(plugins): hardcover
Lucas Winther and Claude Sonnet 5.5
2026-10-30 15:48:46 +01:00
ddd938935e
feat(plugins): mangabaka
Lucas Winther and Claude Opus 5.5
2026-10-30 15:48:39 +01:00
da04adb286
feat(db): initial schema
Lucas Winther and Claude Sonnet 5.5
2026-10-30 15:39:14 +01:00
06a59e1b5c
fix(sdk): block real network in test context, strip query from HttpError message
Lucas Winther and Claude Opus 5.5
2026-10-30 15:38:45 +01:00
a14c4e7747
feat(sdk): plugin contract, http client, fixture harness
Lucas Winther and Claude Opus 5.5
2026-10-30 15:35:10 +01:00
27ec24eb4b
feat(core): shared domain error classes
Lucas Winther and Claude Opus 5.5
2026-10-30 15:30:49 +01:00
8248a2ac27
feat(db): Bun.SQL Kysely dialect for sqlite and postgres
Lucas Winther and Claude Opus 5.5
2026-10-30 15:30:49 +01:00
6c5a9fbad9
chore: workspace package stubs with approved dependencies
Lucas Winther and Claude Opus 5.5
2026-10-30 15:30:49 +01:00
fb4ff36602
docs: phase 1 implementation plan
Lucas Winther and Claude Opus 5.5
2026-10-30 15:24:48 +01:00
560c27c04d
chore: bootstrap agent-ready docs, rules and Bun workspace
main
Lucas Winther and Claude Opus 5.5
2026-10-30 15:06:58 +01:00