Commit Graph

  • 11e9f5af60 Merge pull request 'fix(browse): tabs and search on one row' (#99) from dev into main bvandeusen 2026-06-12 00:28:38 -04:00
  • 3e1303ea3c fix(browse): put tabs and search on one row bvandeusen 2026-06-12 00:25:03 -04:00
  • 909fa37b15 Merge pull request 'Browse search + series numbering rework + kebab fix' (#98) from dev into main bvandeusen 2026-06-12 00:14:31 -04:00
  • 2c544ad5af feat(browse): sticky tabs + per-tab search bar (server-side, scope-aware) bvandeusen 2026-06-12 00:04:06 -04:00
  • 90c68f8b2a fix(series): round the kebab backing on series cards bvandeusen 2026-06-11 23:42:39 -04:00
  • 3e22e78aa4 test(series): assert group start_page, not per-page stated_page bvandeusen 2026-06-11 23:17:14 -04:00
  • 013b9d7f06 feat(series): operator-set sparse page numbers + gap blocks (#789 tweak) bvandeusen 2026-06-11 23:10:30 -04:00
  • dfab8f65ff Merge pull request 'feat(series): flat sequence + cosmetic dividers + pending staging (#789)' (#97) from dev into main bvandeusen 2026-06-11 22:07:57 -04:00
  • 7bb765b6ed feat(series): pending staging for add-from-post (#789 Phase 2) bvandeusen 2026-06-11 21:47:58 -04:00
  • 59746d213d feat(series): flat series sequence + cosmetic chapter dividers (#789 Phase 1) bvandeusen 2026-06-11 21:30:01 -04:00
  • 618f7cdc36 Merge pull request 'feat(ml): drop image_record.tagger_predictions — image_prediction is sole store (#768 step 3)' (#96) from dev into main bvandeusen 2026-06-11 19:32:05 -04:00
  • 3610ba495f feat(ml): drop image_record.tagger_predictions — image_prediction is sole store (#768 step 3) bvandeusen 2026-06-11 18:52:33 -04:00
  • 028ea33a7c Merge pull request 'fix(migration): make 0045 DDL-only; backfill image_prediction via batched task (#768)' (#95) from dev into main bvandeusen 2026-06-11 09:22:22 -04:00
  • 65211a3f2f fix(migration): make 0045 DDL-only; backfill image_prediction via batched task (#768) bvandeusen 2026-06-11 09:18:25 -04:00
  • 444c1fb075 Merge pull request 'perf(migration): 0045 streams json_each (no materialize / no temp blowup)' (#94) from dev into main bvandeusen 2026-06-10 22:07:16 -04:00
  • e6d5f67f11 perf(migration): 0045 streams json_each via inline CASE guard (no temp spill) bvandeusen 2026-06-10 20:58:47 -04:00
  • 26c68b0a75 Merge pull request 'fix(migration): 0045 guards json_each against scalar tagger_predictions' (#93) from dev into main bvandeusen 2026-06-10 20:33:27 -04:00
  • a712cef92d fix(migration): 0045 backfill guards json_each against non-object rows bvandeusen 2026-06-10 20:29:42 -04:00
  • e75427b19a Merge pull request '#768 steps 1+2: normalized image_prediction table (read cutover)' (#92) from dev into main bvandeusen 2026-06-10 20:15:26 -04:00
  • 75eab188c8 fix(migration): 0045 backfill filters to >= store floor (supersedes #764 prune) bvandeusen 2026-06-10 19:37:38 -04:00
  • 0319812b45 style: group tests._prediction_helpers import with backend (ruff I001) bvandeusen 2026-06-10 16:10:06 -04:00
  • 22cdf0f334 feat(ml): read suggestions + allowlist from image_prediction (#768 step 2) bvandeusen 2026-06-10 16:03:58 -04:00
  • 79089b50b0 feat(ml): image_prediction table + backfill + dual-write (#768 step 1) bvandeusen 2026-06-10 15:55:32 -04:00
  • 5447fab987 Merge pull request 'Activity search + RecoverySweep fix + tagger_predictions shrink (#762, #764) + backup polish' (#91) from dev into main bvandeusen 2026-06-10 14:33:35 -04:00
  • 7a40a50fe9 fix(backup): compressed -Fc dumps + pg_restore; reconcile subprocess timeouts (#739) bvandeusen 2026-06-10 14:29:17 -04:00
  • d55e52ae9b feat(admin): prune_low_confidence_predictions backfill task + UI (#764) bvandeusen 2026-06-10 13:57:39 -04:00
  • c8b815afe6 feat(ml): clamp allowlist min_confidence to the tagger store floor bvandeusen 2026-06-10 13:52:20 -04:00
  • 3f92669f12 feat(ml): DB-backed tagger_store_floor (default 0.70), the ingest confidence floor bvandeusen 2026-06-10 13:50:30 -04:00
  • 9ba3db75fd fix(maintenance): download queue needs a sweep threshold above its 25-min time_limit bvandeusen 2026-06-10 11:57:31 -04:00
  • 70d4017cf6 feat(activity): search/filter on both Activity-tab panes bvandeusen 2026-06-10 11:34:42 -04:00
  • bad37e07b2 Merge pull request 'Browse hub, series rename, full-prediction dropdown + a DRY pass (7 sweeps)' (#90) from dev into main bvandeusen 2026-06-10 00:24:01 -04:00
  • 14c244bd3d refactor(tags): shared tag_query for fandom self-join + serialization (DRY sweep) bvandeusen 2026-06-10 00:19:17 -04:00
  • 074c5868fb refactor(services): shared pagination cursor (DRY sweep) bvandeusen 2026-06-10 00:10:57 -04:00
  • f1a664e5a7 fix(services): PEP 695 type params for get_or_create (ruff UP047) bvandeusen 2026-06-09 23:50:59 -04:00
  • 7b2a2051e9 refactor(services): shared race-safe get_or_create helper (DRY backend sweep) bvandeusen 2026-06-09 23:46:01 -04:00
  • 9deebfa133 refactor(ui): CardHeading primitive for icon+title card/dialog headings (DRY pattern sweep) bvandeusen 2026-06-09 23:22:01 -04:00
  • 4854d74c5a refactor(ui): SampleNameGrid primitive for maintenance-card previews (DRY pattern sweep) bvandeusen 2026-06-09 23:08:15 -04:00
  • 409bbd43db feat(series): rename a series from the management view bvandeusen 2026-06-09 23:05:01 -04:00
  • 4e83b4225a refactor(ui): single global .fc-muted token (DRY pattern sweep) bvandeusen 2026-06-09 22:42:26 -04:00
  • c774042a85 refactor(ui): consolidate 7 hand-rolled kebabs into one KebabMenu (DRY pattern sweep) bvandeusen 2026-06-09 22:25:11 -04:00
  • d5d23a92f2 feat(nav): consolidate Posts/Artists/Tags into a Browse hub bvandeusen 2026-06-09 21:18:02 -04:00
  • 2bfc9936a1 Merge pull request 'UI batch: tagging flow, series browse, fandom chips, nav' (#89) from dev into main bvandeusen 2026-06-09 20:48:19 -04:00
  • a50902071a feat(nav): pin Settings to the right edge, separated from content nav bvandeusen 2026-06-09 20:37:50 -04:00
  • c999c64cbe feat(suggestions): tag-input dropdown searches the full prediction set bvandeusen 2026-06-09 20:22:24 -04:00
  • 978f49adcc feat(tags): show a character's fandom on its chip (truncated) bvandeusen 2026-06-09 19:35:59 -04:00
  • e4cebf70d1 feat(series): browse search + per-card kebab (rename/delete) bvandeusen 2026-06-09 18:56:45 -04:00
  • 4958e8f7d4 feat(modal): return focus to tag input after accepting a suggestion bvandeusen 2026-06-08 21:59:08 -04:00
  • 4c6406ee18 Merge pull request 'fix(posts): link duplicate items to every post + prune bare shells' (#88) from dev into main bvandeusen 2026-06-08 19:42:31 -04:00
  • a8f624a0f1 fix(posts): link duplicate items to every post + prune bare shells bvandeusen 2026-06-08 19:28:33 -04:00
  • bb47e80b3e Merge pull request 'fix(cleanup): unused-tags delete must use the same predicate as the preview' (#87) from dev into main bvandeusen 2026-06-08 18:17:49 -04:00
  • df76bc0f58 test(cleanup): fix prune-spares-fandom fixture — used character keeps fandom alive bvandeusen 2026-06-08 18:09:27 -04:00
  • de4ef6ae74 fix(cleanup): live prune uses the same predicate as the preview (data loss) bvandeusen 2026-06-08 18:04:02 -04:00
  • dc1083b5e0 Merge pull request 'Unused-tag fandom fix + ML-worker logging/tuning + unified dropdown Enter' (#86) from dev into main bvandeusen 2026-06-08 17:27:55 -04:00
  • 408fcd488a refactor(ui): unify confirm-dropdown Enter behavior via useAcceptOnEnter bvandeusen 2026-06-08 08:59:55 -04:00
  • f2fbe2ae6e tweak(ml): default video frame samples 10 to 6 bvandeusen 2026-06-08 08:52:39 -04:00
  • b1778ca9f2 obs(ml): tag_and_embed logs file + phase + timing; failures name them bvandeusen 2026-06-08 08:49:37 -04:00
  • fe0ed52595 test: drop unused binding in find_unused_tags test (ruff F841) bvandeusen 2026-06-08 08:45:36 -04:00
  • fb05c5eef7 fix(cleanup): don't flag a character's fandom (or a chaptered series) as unused bvandeusen 2026-06-08 08:41:27 -04:00
  • e46893fefd Merge pull request 'Migration lock safety + remove the merge's full-table scan (the real 0040-hang fix)' (#85) from dev into main bvandeusen 2026-06-08 01:03:06 -04:00
  • e90e6b2c34 perf(tags): protective-alias uses tag kind, drops the image_record full scan bvandeusen 2026-06-08 00:15:40 -04:00
  • 8e98e79968 fix(alembic): lock_timeout on migrations, drop the advisory lock bvandeusen 2026-06-07 23:58:14 -04:00
  • 0666e15211 Merge pull request 'Series manage redesign (FC-6.4) + migration/normalize hardening + UX fixes' (#84) from dev into main bvandeusen 2026-06-07 21:17:57 -04:00
  • a00a2786e3 fix(tags): normalize task fails fast on lock + logs progress bvandeusen 2026-06-07 21:02:39 -04:00
  • 9770dd3474 fix(tags): rename-onto-existing in the image modal now merges, not errors bvandeusen 2026-06-07 20:56:45 -04:00
  • 7daf90f41e fix(allowlist): lower default auto-apply threshold 0.95 → 0.90 bvandeusen 2026-06-07 20:48:43 -04:00
  • aaa375654b fix(fandom): match change-fandom modal focus + Enter to FandomPicker bvandeusen 2026-06-07 20:37:02 -04:00
  • 5bc8ef65ad chore: gitignore the .superpowers working dir bvandeusen 2026-06-07 20:29:10 -04:00
  • 978959bdc4 feat(series): manage-view redesign — big pages, editable Part #, slide-over picker (FC-6.4) bvandeusen 2026-06-07 20:29:10 -04:00
  • 7309d1d6d4 fix(alembic): serialize concurrent migrators with an advisory lock bvandeusen 2026-06-07 19:59:45 -04:00
  • 747390631d Merge pull request 'FC-6 series authoring + backup/NFS hardening + UX fixes' (#83) from dev into main bvandeusen 2026-06-07 19:31:04 -04:00
  • daaa7543a8 fix(backup,tags): unwedge backups on NFS (#739) + tag-standardize "0 groups" (#740) bvandeusen 2026-06-07 19:20:16 -04:00
  • 19a91a1641 feat(series): Suggestions tab + matcher controls — frontend (FC-6.3) bvandeusen 2026-06-07 19:02:19 -04:00
  • c0fd80e694 feat(series): assisted-continuation matcher + suggestion queue — backend (FC-6.3) bvandeusen 2026-06-07 18:58:18 -04:00
  • 9e262cc5f0 feat(series): Add-to-series control + Series browse view + nav (FC-6.2) bvandeusen 2026-06-07 18:38:37 -04:00
  • db490e92df feat(series): post→series flows + browse list — backend (FC-6.2) bvandeusen 2026-06-07 18:34:11 -04:00
  • 8ad40da145 feat(series): chapter-aware manage view + reader — frontend (FC-6.1) bvandeusen 2026-06-07 16:43:10 -04:00
  • 1804a2c622 feat(series): chapter layer over series_page — backend (FC-6.1) bvandeusen 2026-06-07 16:31:55 -04:00
  • 43b02d79a4 fix(infra): size Postgres /dev/shm via tmpfs mount (shm_size ignored under Swarm) bvandeusen 2026-06-07 16:22:09 -04:00
  • 677317244e fix(modal): Enter accepts the fandom instead of reopening the dropdown bvandeusen 2026-06-07 12:38:33 -04:00
  • a92817677d fix(router): reset tab title on navigation (artist name stuck on other tabs) bvandeusen 2026-06-07 12:34:28 -04:00
  • e0d2a20588 Merge pull request 'Modal focus/keyboard polish, Camie-in-autocomplete, re-extract self-resume' (#82) from dev into main bvandeusen 2026-06-07 12:17:43 -04:00
  • 394c7dcd67 test(maintenance): patterned images for re-extract resume test bvandeusen 2026-06-07 12:08:02 -04:00
  • a73d9327d8 fix(maintenance): time-box + self-resume the archive re-extract task bvandeusen 2026-06-07 12:03:13 -04:00
  • 5201fab088 feat(modal): surface ML suggestions inline in the tag autocomplete bvandeusen 2026-06-07 11:56:50 -04:00
  • b79708524e fix(modal): keyboard focus flow for the Pick-a-fandom dialog bvandeusen 2026-06-07 11:49:28 -04:00
  • 1d84f67418 Merge pull request 'Modal: large centered spinner + kebab z-index fix' (#81) from dev into main bvandeusen 2026-06-07 10:57:00 -04:00
  • 1226d3b23a fix(modal): kebab menus render BEHIND the modal — bump z-index above it bvandeusen 2026-06-07 10:52:48 -04:00
  • 6c5dbfe4a0 feat(modal): large centered loading spinner bvandeusen 2026-06-07 10:42:05 -04:00
  • 91265df3d6 Merge pull request 'Maintenance-queue health + modal/tagging keyboard pass' (#80) from dev into main bvandeusen 2026-06-07 10:31:01 -04:00
  • 68cda6114d chore(compose): maintenance-long needs only /images; drop dead /downloads mounts bvandeusen 2026-06-07 10:26:36 -04:00
  • c217009425 feat(maintenance): dedicated maintenance_long lane for long one-shot tasks bvandeusen 2026-06-07 09:00:03 -04:00
  • f4f49d407e fix(tags): move _NORMALIZE_CHUNK_SECONDS above the decorator (syntax error) bvandeusen 2026-06-07 00:10:03 -04:00
  • a183be7e6e fix(infra): bump Postgres shm_size (vacuum DiskFull) + raise DB-backup time limit bvandeusen 2026-06-07 00:08:19 -04:00
  • f2e9ae07dc fix(audit): chunk + self-resume library scans (stop the 2h queue-hog timeouts) bvandeusen 2026-06-07 00:08:19 -04:00
  • d9d502a60d fix(tags): time-box + self-resume the tag standardization (stop the 40-min timeout) bvandeusen 2026-06-06 23:57:06 -04:00
  • 1819caaf5b feat(modal): keyboard-friendly tagging — fandom dialogs, Tab-accept, jump hotkey, cheatsheet bvandeusen 2026-06-06 23:46:46 -04:00
  • 22dc516dc7 fix(modal): tag-chip kebab + ESC-after-accept + autocomplete scroll-into-view bvandeusen 2026-06-06 23:42:30 -04:00
  • 11acdb0322 Merge pull request 'Patreon: a missing media file_name is a fallback, not API drift' (#79) from dev into main bvandeusen 2026-06-06 23:14:25 -04:00
  • 4c42a15fa1 fix(patreon): a missing media file_name is a URL-basename fallback, not API drift bvandeusen 2026-06-06 23:10:46 -04:00
  • 2eb9fd5dd0 Merge pull request 'Patreon: enforce the backfill time-box mid-post (stop soft-limit overruns)' (#78) from dev into main bvandeusen 2026-06-06 23:00:29 -04:00