Commit Graph

  • 6d630d13d6 feat(gallery): pinned filter bar (Phase 1) bvandeusen 2026-06-03 23:57:11 -04:00
  • 3f30327fa5 feat(gallery): composable scroll filter (multi-tag AND, media, sort) bvandeusen 2026-06-03 23:50:19 -04:00
  • 4f9464d215 feat(gallery,tags): clear active filters bvandeusen 2026-06-03 23:26:04 -04:00
  • e678d1dfdf feat(tags): fandom-edit UI in tags directory + image modal bvandeusen 2026-06-03 23:21:25 -04:00
  • d9ab6e15c6 feat(tags): edit a character tag's fandom (backend) bvandeusen 2026-06-03 23:13:24 -04:00
  • e05e0b9f37 perf(gallery): materialize indexed effective_date sort key bvandeusen 2026-06-03 22:58:46 -04:00
  • 56cc253009 feat(gallery): reveal tiles on image load + single initial fetch bvandeusen 2026-06-03 22:50:03 -04:00
  • 844bb86802 Merge pull request 'fix(download): release DB connections across the gallery-dl subprocess' (#60) from dev into main bvandeusen 2026-06-03 22:11:36 -04:00
  • 576e16d14d fix(download): release DB connections across the gallery-dl subprocess bvandeusen 2026-06-03 21:49:52 -04:00
  • a8f6a464aa Merge pull request 'fix(download): salvage soft-time-limit kills + fix timeout ladder' (#59) from dev into main bvandeusen 2026-06-03 19:35:45 -04:00
  • 9cb24c9e1b style(test): fix ruff I001 import order in download task test bvandeusen 2026-06-03 17:04:29 -04:00
  • 6590dcdb39 fix(download): salvage soft-time-limit kills + fix timeout ladder bvandeusen 2026-06-03 16:56:13 -04:00
  • ab9922ad2e Merge pull request 'feat(artist): "new since last visit" badge + banner' (#58) from dev into main bvandeusen 2026-06-03 16:20:54 -04:00
  • 3162cff96b fix(artist): ruff UP017 + test_directory_card_shape pin bvandeusen 2026-06-03 15:45:59 -04:00
  • b65e956ad2 feat(artist): "new since last visit" badge + banner bvandeusen 2026-06-03 15:27:11 -04:00
  • 0533807669 Merge pull request 'feat(ext): verify cookies in-browser before uploading (1.0.7)' (#57) from dev into main ext-1.0.7 bvandeusen 2026-06-03 14:17:42 -04:00
  • d3245f0c22 feat(ext): verify cookies in-browser before uploading (1.0.7) bvandeusen 2026-06-03 14:04:45 -04:00
  • 279dff3fb6 Merge pull request 'feat(ml): normalize Camie suggestion names to human-readable' (#56) from dev into main bvandeusen 2026-06-03 13:18:44 -04:00
  • e450145304 fix(ml): preserve digit-only tag names in normalize (year tags) bvandeusen 2026-06-03 13:09:35 -04:00
  • a6e8d4b52e feat(ml): normalize Camie suggestion names to human-readable bvandeusen 2026-06-03 13:00:08 -04:00
  • 37e66cddc4 Merge pull request 'chore(modal): drop ?image=N soft-compat — pure overlay' (#55) from dev into main bvandeusen 2026-06-02 19:35:04 -04:00
  • f1860866de chore(modal): drop the ?image=N soft-compat from G5.4 bvandeusen 2026-06-02 19:24:09 -04:00
  • 9cf6b2d363 Merge pull request 'audit-g5 final + ML threshold default + kebab menu fix' (#54) from dev into main bvandeusen 2026-06-02 19:09:49 -04:00
  • b181d779fe fix(test): default suggestion_threshold_general now 0.70 (alembic 0033) bvandeusen 2026-06-02 18:49:24 -04:00
  • 0fbb19dc24 fix(modal): TagPanel kebab — apply the wrapping-span fix that the prior commit missed bvandeusen 2026-06-02 18:48:53 -04:00
  • 8326e5447a fix(modal): kebab menus weren't opening (chip + suggestion rows) bvandeusen 2026-06-02 18:48:32 -04:00
  • 1fd594baaf chore(ml): suggestion_threshold default 0.50 → 0.70 bvandeusen 2026-06-02 18:38:12 -04:00
  • ecac6c4bda fix(audit-g5): centroid version DB-as-truth + modal as overlay bvandeusen 2026-06-02 18:28:57 -04:00
  • 6ef0fed41f Merge pull request 'audit-g5: architectural debt — 4 bundles (A/B/C/D)' (#53) from dev into main bvandeusen 2026-06-02 18:07:25 -04:00
  • 9f7261b9c0 fix(audit-g5c): set CURATOR_BOOTSTRAP_NEW_KEY=1 in conftest bvandeusen 2026-06-02 17:55:25 -04:00
  • f05aaa707b fix(audit-g5d): surface ErrorType taxonomy on FailingSourcesCard bvandeusen 2026-06-02 17:54:44 -04:00
  • 4df98171ab fix(audit-g5c): refuse silent Fernet key regeneration on partial restore bvandeusen 2026-06-02 17:04:27 -04:00
  • 8d75ade1d5 fix(audit-g5b): race-poisoning in three find-or-create sites bvandeusen 2026-06-02 17:02:12 -04:00
  • 75c63e1511 fix(audit-g5a): ruff isort — platforms after patreon_resolver bvandeusen 2026-06-02 16:55:56 -04:00
  • 98673d4dca fix(audit-g5a): small architectural cleanups bundle bvandeusen 2026-06-02 16:46:46 -04:00
  • 89b48f8f35 Merge pull request 'audit-g4: status-enum miss batch' (#52) from dev into main bvandeusen 2026-06-02 16:15:00 -04:00
  • 4bff1d8558 fix(audit-g4): status-enum miss batch bvandeusen 2026-06-02 16:04:59 -04:00
  • d60e0b9494 Merge pull request 'audit-g3: lifecycle batch — recovery sweeps, retention, timeouts' (#51) from dev into main bvandeusen 2026-06-02 14:49:28 -04:00
  • e30f50e6fe fix(audit-g3): lifecycle batch — recovery sweeps, retention, timeouts bvandeusen 2026-06-02 14:30:46 -04:00
  • 9c27a2d3c7 Merge pull request 'audit-g2: async race / state-leak fixes across eight stores' (#50) from dev into main bvandeusen 2026-06-02 14:17:12 -04:00
  • e66987f092 fix(audit-g2): async race / state-leak across eight stores bvandeusen 2026-06-02 14:07:58 -04:00
  • 93e37681b7 Merge pull request 'audit-g1: six one-liner drift fixes from 2026-06-02 audit' (#49) from dev into main bvandeusen 2026-06-02 13:29:17 -04:00
  • 80ef9bce48 fix(test): credentials.upload reflects record into cache (not invalidate) bvandeusen 2026-06-02 13:11:39 -04:00
  • 3898ce7be4 fix(audit-g1): six one-liner drift fixes from 2026-06-02 audit bvandeusen 2026-06-02 11:24:05 -04:00
  • 64ca858574 Merge pull request 'UX fixes: suggestion-accept chip refresh, showcase endless feed, non-media downloads' (#48) from dev into main bvandeusen 2026-06-02 08:26:58 -04:00
  • 91be9df671 fix(download): dispatch archive/non-media in attach_in_place; reshuffle showcase on mount bvandeusen 2026-06-02 08:16:13 -04:00
  • 412edec028 fix(showcase): don't exhaust on all-dupe batches; retry up to 8x bvandeusen 2026-06-01 23:37:21 -04:00
  • 937421485d fix(modal): refresh tag chips after accepting a suggestion bvandeusen 2026-06-01 23:02:57 -04:00
  • 9d0c0b7da8 Merge pull request 'fix(thumbnails): surface backfill counts + tighten validity check' (#47) from dev into main bvandeusen 2026-06-01 22:34:38 -04:00
  • 43b778aa04 fix(test): include 'scanned' in all backfill result assertions bvandeusen 2026-06-01 22:09:02 -04:00
  • 9cbdb70e13 fix(thumbnails): surface backfill results + tighten validity check bvandeusen 2026-06-01 21:57:29 -04:00
  • 8e4d252ae4 Merge pull request 'fix(downloads): enqueue thumbnail + ML per attached image' (#46) from dev into main bvandeusen 2026-06-01 21:52:42 -04:00
  • bd06794647 fix(downloads): enqueue thumbnail + ML tasks per attached image bvandeusen 2026-06-01 21:39:17 -04:00
  • fdd3e01f56 Merge pull request 'ux(failing-sources): visible row separators + clearer hover' (#45) from dev into main bvandeusen 2026-06-01 21:09:28 -04:00
  • f575cfb93b ux(failing-sources): visible row separators + clearer hover bvandeusen 2026-06-01 20:57:41 -04:00
  • c82fb308b6 Merge pull request 'Post.source_id refactor + tick/backfill modes + PARTIAL classifier + Mux fix + UX' (#44) from dev into main bvandeusen 2026-06-01 20:44:23 -04:00
  • 717b601c81 ux(failing-sources): zebra striping + hover highlight on rows bvandeusen 2026-06-01 20:14:48 -04:00
  • cfa4fb4084 fix(test): drop stale 'starts at 0' assertion after auto-arm-on-create bvandeusen 2026-06-01 20:12:55 -04:00
  • 2aa2002f22 feat(subscriptions): newly added enabled sources start in backfill mode bvandeusen 2026-06-01 20:02:19 -04:00
  • 66ff671f09 fix(downloads): forward Patreon Referer/Origin to yt-dlp for Mux videos bvandeusen 2026-06-01 19:00:50 -04:00
  • 19aece1fc4 feat(download): tick/backfill modes + partial-success classifier (plan #544) bvandeusen 2026-06-01 18:23:28 -04:00
  • c9089b1d03 fix(gallery+tests): alias Post inside artist EXISTS; tests stop asserting synthetic Source bvandeusen 2026-06-01 14:40:28 -04:00
  • 644d538bab fix(migration): use canonical fk_<table>_<col>_<ref> names per Base naming_convention bvandeusen 2026-06-01 14:23:18 -04:00
  • ff35da4743 fix(lint): drop unused Source import after Post.artist_id refactor bvandeusen 2026-06-01 14:19:37 -04:00
  • 2f66de2928 feat(model): nullable Post.source_id + denormalized Post.artist_id; retire sidecar synthetics bvandeusen 2026-06-01 14:17:52 -04:00
  • 8cf8d2ca4d Merge pull request 'Modal Esc/overflow polish, artist-scoped post scroll, failing-sources Logs button' (#43) from dev into main bvandeusen 2026-06-01 12:10:11 -04:00
  • 94e7d20792 feat(downloads): Logs button on failing-sources rollup rows bvandeusen 2026-06-01 10:04:22 -04:00
  • fb605af959 fix(posts): anchored view scroll inherits artist_id/platform filters bvandeusen 2026-06-01 08:24:43 -04:00
  • 4c56cf121f fix(modal): Esc closes from tag input; Provenance cards scroll at ~2.5 bvandeusen 2026-06-01 08:17:54 -04:00
  • b1d58bc3b8 Merge pull request 'fix(ci): POSIX-safe SHORT_SHA in build.yml' (#42) from dev into main bvandeusen 2026-06-01 08:03:17 -04:00
  • 9564d073b9 fix(ci): POSIX-safe SHORT_SHA in build.yml (runner uses dash, not bash) bvandeusen 2026-06-01 07:53:33 -04:00
  • 65386f02a0 Merge pull request 'View modal batch: autofocus, suggestions UX, post-title click, retire copyright/artist' (#41) from dev into main bvandeusen 2026-06-01 07:01:42 -04:00
  • f87a06a6bd feat(modal): post title is the primary click (artist-scoped) + suggestion rows look like buttons bvandeusen 2026-06-01 02:21:59 -04:00
  • 5d284aae9f fix(test): unpin general-threshold test from old 0.95 default (alembic 0029) bvandeusen 2026-06-01 02:18:54 -04:00
  • af7b5c95e9 feat(modal): autofocus tag input, expand general suggestions, retire copyright/artist categories bvandeusen 2026-06-01 02:08:10 -04:00
  • 667b05f14e Merge pull request 'Extension probe-and-add (v1.0.6) + per-commit image tags' (#40) from dev into main ext-1.0.6 bvandeusen 2026-06-01 01:44:03 -04:00
  • 8de7ccd07d build(ci): per-commit :c-<short_sha> tag on main-push per family rule #46 bvandeusen 2026-06-01 01:28:55 -04:00
  • d65f0b2091 feat(extension): probe shows current state before click; v1.0.6 bvandeusen 2026-06-01 00:41:17 -04:00
  • 856e9104b4 Merge pull request 'Sidecar synthetic anchor cleanup + tier-gated classifier fix' (#39) from dev into main v26.06.01.0 bvandeusen 2026-06-01 00:16:58 -04:00
  • 66f19d67f5 fix(download): tier-gated = warning, race subprocess timeout, install yt-dlp bvandeusen 2026-05-31 23:30:39 -04:00
  • 6fc8ae3106 fix(subscriptions): hide sidecar synthetic Sources + prefer real on lookup bvandeusen 2026-05-31 23:08:38 -04:00
  • 0397642b21 Merge pull request 'Showcase cadence tuning + cooldown-aware bulk retry' (#38) from dev into main bvandeusen 2026-05-30 23:50:36 -04:00
  • a5101494b6 feat(downloads): bulk retry respects cooldown; single-source RETRY overrides bvandeusen 2026-05-30 23:15:07 -04:00
  • e3a7aff7a3 ux(showcase): pipeline fetches in-order, chunk size 3, keep the trickle bvandeusen 2026-05-30 22:52:55 -04:00
  • 9cd6d09e60 ux(showcase): smooth one-at-a-time cadence + earlier infinite-scroll trigger bvandeusen 2026-05-30 22:48:58 -04:00
  • 237575447d Merge pull request 'Thumbnail URL fix + archive daemon fix + batched initial loads' (#37) from dev into main bvandeusen 2026-05-30 22:01:43 -04:00
  • 810baf63ac fix(import): archive probe → subprocess (was multiprocessing.Process) bvandeusen 2026-05-30 21:48:51 -04:00
  • 44bb12a93d fix(thumbnails): derive URL from stored thumbnail_path, not (sha256, mime) bvandeusen 2026-05-30 16:55:38 -04:00
  • 1eefed9ab3 fix(ui): finish showcase store batching (PAGE 60 → 5, INITIAL_BATCHES 12) bvandeusen 2026-05-30 14:53:24 -04:00
  • adeee64a2d feat(ui): batch initial showcase/gallery loads into smaller chunks bvandeusen 2026-05-30 14:51:58 -04:00
  • ed358757dc Merge pull request 'Most-overdue-first scheduling + rich timeout diagnostics' (#36) from dev into main bvandeusen 2026-05-30 14:30:41 -04:00
  • 99b66aa85f fix(download): preserve partial output + classify timeouts richer bvandeusen 2026-05-30 14:16:54 -04:00
  • 77f7a23410 feat(scheduler): order due sources by last_checked_at — most overdue first bvandeusen 2026-05-30 12:08:43 -04:00
  • d181f4afb8 Merge pull request 'Downloads burst-prevention + maintenance-menu fix + gdl timeout' (#35) from dev into main bvandeusen 2026-05-30 11:43:18 -04:00
  • ff9e96e0e2 fix(tests): update scheduler-status shape pins for platform_cooldowns bvandeusen 2026-05-30 11:25:36 -04:00
  • 61ce1ce13c feat(scheduler): platform-wide cooldown on RATE_LIMITED — burst prevention bvandeusen 2026-05-30 11:01:40 -04:00
  • d28db32012 fix(download): align gallery-dl subprocess timeout to Celery soft limit bvandeusen 2026-05-30 02:25:04 -04:00
  • 77e9859da3 fix(downloads): rewire MaintenanceMenu to the downloads pipeline bvandeusen 2026-05-30 00:59:05 -04:00
  • 2886fa4997 Merge pull request 'Tooltip !important fix — 104cac5 follow-up after Vite CSS reorder' (#34) from dev into main bvandeusen 2026-05-30 00:02:24 -04:00
  • 36f8ec80fd fix(ui): tooltip override needs !important — Vite reorders CSS chunks bvandeusen 2026-05-29 23:51:39 -04:00