Commit Graph

  • 7c94d99b9f refactor(settings): canonical usePreviewCommit for maintenance preview→commit tiles (#753) bvandeusen 2026-06-22 19:39:56 -04:00
  • 26589c3d98 refactor(admin-store): _guard + _dryRunPost consolidate the store actions (#753 Finding C) bvandeusen 2026-06-22 17:29:42 -04:00
  • 6599a07468 refactor(admin): consolidate maintenance-trigger 202 responses onto _queued() (#753 Finding B) bvandeusen 2026-06-22 16:35:59 -04:00
  • 6281cb1e66 refactor(admin): consolidate Tier-A dry-run/apply handlers onto one helper (#753) bvandeusen 2026-06-22 14:53:04 -04:00
  • 77d02f57ae fix(reconcile): preserve from_attachment_id when merging duplicate posts (#73/#87) bvandeusen 2026-06-21 22:46:44 -04:00
  • af7f0078bc fix(importer): guard _stamp_member_archive against a sidecar-less archive bvandeusen 2026-06-21 22:28:21 -04:00
  • 5269cd0709 feat(provenance): capture which archive an extracted image came from (#87) bvandeusen 2026-06-21 22:22:03 -04:00
  • 068def2f24 fix(provenance): scope attachments to originating post + scroll-cap the list bvandeusen 2026-06-21 21:27:36 -04:00
  • 478f898e72 Merge pull request 'feat(settings): Maintenance tab compact tiles + centered Settings (pass 2)' (#126) from dev into main bvandeusen 2026-06-18 00:11:54 -04:00
  • 311fe0ee9c feat(settings): tidy Maintenance tab into compact tiles + center the views (pass 2) bvandeusen 2026-06-18 00:10:58 -04:00
  • 38a5e7f332 Merge pull request 'feat(settings): tidy Cleanup tab into sectioned compact tiles (pass 1)' (#125) from dev into main bvandeusen 2026-06-17 23:49:21 -04:00
  • 3b435dc0ba feat(settings): tidy Cleanup tab into sectioned compact tiles (pass 1) bvandeusen 2026-06-17 23:48:18 -04:00
  • 57fe15c267 Merge pull request 'feat(maintenance): reconcile duplicate posts (gallery-dl→native unify)' (#124) from dev into main bvandeusen 2026-06-17 22:01:12 -04:00
  • eff64275fc feat(maintenance): reconcile duplicate posts (gallery-dl→native unify) bvandeusen 2026-06-17 21:57:21 -04:00
  • eb3231ef10 Merge pull request 'fix(subscribestar): port gallery-dl date extraction (wrapped dates) + parse canary' (#123) from dev into main bvandeusen 2026-06-17 21:15:43 -04:00
  • 7f6345dccf fix(subscribestar): port gallery-dl date extraction (wrapped dates) + parse canary bvandeusen 2026-06-17 20:51:18 -04:00
  • e9af459c0d Merge pull request 'feat(subscribestar): port gallery-dl doc + audio attachment extraction' (#122) from dev into main bvandeusen 2026-06-17 16:20:12 -04:00
  • 479b7b54da style(subscribestar): drop quoted forward-ref annotation (UP037) bvandeusen 2026-06-17 16:19:12 -04:00
  • 976f581aa2 feat(subscribestar): port gallery-dl doc + audio attachment extraction bvandeusen 2026-06-17 16:18:10 -04:00
  • 6f02806aec Merge pull request 'fix(subscribestar): port gallery-dl content + preview-skip extraction (body bug)' (#121) from dev into main bvandeusen 2026-06-17 16:10:56 -04:00
  • 8771364cee fix(subscribestar): port gallery-dl's content + preview-skip extraction faithfully bvandeusen 2026-06-17 16:06:52 -04:00
  • a1d19bd96a Merge pull request 'fix(subscribestar): mirror gallery-dl's full request profile (verify_subscriber gate)' (#120) from dev into main bvandeusen 2026-06-17 15:32:28 -04:00
  • 559d29fe1c fix(subscribestar): mirror gallery-dl's full request profile (verify_subscriber gate) bvandeusen 2026-06-17 15:28:33 -04:00
  • 26827ff38f Merge pull request 'fix(subscribestar): match gallery-dl's generic post delimiter (live-feed drift)' (#119) from dev into main bvandeusen 2026-06-17 15:07:59 -04:00
  • 204d341a99 fix(subscribestar): match gallery-dl's generic post delimiter (live-feed drift) bvandeusen 2026-06-17 15:04:05 -04:00
  • 9201b7b539 diag(subscribestar): name the interstitial in the drift error (title + type) bvandeusen 2026-06-17 14:52:28 -04:00
  • 26dcfaf6c2 Merge pull request 'fix(subscribestar): initial feed GET is a navigation, not XHR (first-run drift)' (#118) from dev into main bvandeusen 2026-06-17 14:30:02 -04:00
  • 78a3977f8a fix(subscribestar): initial feed GET is a navigation, not XHR (first-run drift) bvandeusen 2026-06-17 14:25:40 -04:00
  • 9b1b0369cc Merge pull request 'SubscribeStar → native core ingester + native-ingest DRY pass (milestone #71)' (#117) from dev into main bvandeusen 2026-06-17 12:48:29 -04:00
  • d526447496 fix(dispatch): resolve native ingester class at call time (test monkeypatch) bvandeusen 2026-06-17 12:09:40 -04:00
  • d8d8ecd78f feat(subscribestar): flip dispatch to the native ingester (#893, Step 5) bvandeusen 2026-06-17 12:03:48 -04:00
  • 82551a89d1 feat(native-ingest): durable run logging that survives a worker kill (#899 L1/L3, DRY 3/3) bvandeusen 2026-06-17 11:47:09 -04:00
  • ebe6ab9741 refactor(native-ingest): shared exception trio + base _failure_result (#899 DRY 2/3) bvandeusen 2026-06-17 11:40:36 -04:00
  • 7ac5c7e522 refactor(native-ingest): extract native_ingest_common + BaseNativeDownloader (#899 DRY 1/3) bvandeusen 2026-06-17 11:32:28 -04:00
  • 817a002c2b feat(subscribestar): native client + downloader + ingester (post-first) (#890/#891/#892) bvandeusen 2026-06-17 11:06:02 -04:00
  • f678819093 feat(subscribestar): seen/failed ledger models + migration 0054 (#889) bvandeusen 2026-06-17 10:04:52 -04:00
  • 18123fb9cb Merge pull request 'fix(external): recovery-sweep threshold + queue recording + split fetch timeouts (#883)' (#116) from dev into main bvandeusen 2026-06-16 21:24:31 -04:00
  • ee1b45f8cc test(external): fix third fake_fetch stub still requiring timeout= bvandeusen 2026-06-16 21:20:27 -04:00
  • 4272a19d40 fix(external): split fetch timeout into read (60s) + total (30m) budgets (#883) bvandeusen 2026-06-16 21:15:49 -04:00
  • 25e1e098fb fix(activity): record external.* TaskRun.queue as download, not default (#883) bvandeusen 2026-06-16 21:05:26 -04:00
  • 258c77dfcd fix(maint): raise recovery-sweep threshold for fetch_external_link (#883) bvandeusen 2026-06-16 20:54:39 -04:00
  • 2e806f202f Merge pull request 'test(artist-dir): fix flaky uq_image_record_sha256 collision' (#115) from dev into main bvandeusen 2026-06-16 20:34:21 -04:00
  • 002279e63b test(artist-dir): deterministic sha256 in _seed_image (fix flaky uq collision) bvandeusen 2026-06-16 20:30:31 -04:00
  • 18d5c05639 Merge pull request 'fix(ml): per-task async engine for recompute_centroid (#881)' (#114) from dev into main bvandeusen 2026-06-16 20:24:37 -04:00
  • 51201b459e fix(ml): per-task async engine for recompute_centroid (#881) bvandeusen 2026-06-16 19:19:43 -04:00
  • 11ddfc3876 Merge pull request 'fix(maint): resurface dedup/gated-purge results after navigate-away (#877)' (#113) from dev into main bvandeusen 2026-06-16 16:48:52 -04:00
  • e287802ecb fix(maint): resurface dedup/gated-purge results after navigate-away (#877) bvandeusen 2026-06-16 16:38:32 -04:00
  • 2b8ce86622 Merge pull request 'Gated Patreon posts: skip on ingest + cleanup tool (#874)' (#112) from dev into main bvandeusen 2026-06-16 15:25:34 -04:00
  • 540151290b feat(cleanup): purge misgrabbed gated-post blurred previews (#874 follow-up) bvandeusen 2026-06-16 15:20:35 -04:00
  • 9422eadabe test(ingest): repair gated-post tests (#874 CI bounce) bvandeusen 2026-06-16 14:48:51 -04:00
  • b3afc2437e fix(ingest): skip tier-gated Patreon posts entirely (#874) bvandeusen 2026-06-16 14:43:00 -04:00
  • 49bee77cdc Merge pull request 'Video tag quality: cadence sampling + min-frame aggregation + ML thread cap (#747)' (#111) from dev into main bvandeusen 2026-06-16 14:08:40 -04:00
  • 60a9c9e6ef refactor(ml): drop GPU code, cap inference threads by default (#747/#872) bvandeusen 2026-06-16 13:39:55 -04:00
  • db7e1f2b59 feat(ml): GPU-capable tagger + embedder with CPU fallback (#872) bvandeusen 2026-06-16 12:49:24 -04:00
  • 369e3de684 feat(ml): cadence-based video frame sampling + min-frame tag aggregation (#747) bvandeusen 2026-06-16 11:07:00 -04:00
  • c209e3b37e Merge pull request 'Tier-1 video dedup: import-time + retroactive cleanup (#871)' (#110) from dev into main bvandeusen 2026-06-16 08:55:38 -04:00
  • 41652db20f feat(maintenance): retroactive video-dedup action — preview + apply (#871) bvandeusen 2026-06-16 08:31:50 -04:00
  • f154603811 feat(import): Tier-1 video near-dup by duration+aspect (#871) bvandeusen 2026-06-15 22:17:36 -04:00
  • cffdd93418 Merge pull request 'Nested-archive extraction (#718) + post-first ingest (#67) + post-body canary (#862)' (#109) from dev into main bvandeusen 2026-06-15 21:37:39 -04:00
  • b48ba60830 fix(import): resolve artist from path for enrich-on-duplicate (#718) bvandeusen 2026-06-15 21:25:55 -04:00
  • 8dee2f9628 feat(import): recurse nested archives + precise "no images" reason (#718) bvandeusen 2026-06-15 21:18:02 -04:00
  • 41aa8fe39e docs(ingest): document the post-first migration contract at the native seam (#857) bvandeusen 2026-06-15 10:20:03 -04:00
  • 8b99dc9b81 test(downloader): fix test_sidecar_written_and_findable for post-first minimal sidecar (#856) bvandeusen 2026-06-15 10:15:04 -04:00
  • dcbc3ae335 refactor(ingest): post-first — post-record is the sole body writer on the native path (#856) bvandeusen 2026-06-15 10:10:21 -04:00
  • 00607a309b feat(ingest): post-body schema-drift canary — fail a native walk red when zero bodies extracted (#862) bvandeusen 2026-06-15 08:56:11 -04:00
  • fd84be40dd Merge pull request 'External-attach orphan fix (#859) + image-less post display' (#108) from dev into main bvandeusen 2026-06-15 01:55:36 -04:00
  • 949c9abcc6 fix(external): path-safe unlink + per-link staging + orphan repair (#859) bvandeusen 2026-06-15 01:48:38 -04:00
  • f897e2534b feat(posts): full-width body for image-less posts (drop dead 'no images' box) bvandeusen 2026-06-15 00:42:14 -04:00
  • 79f510d7f8 Merge pull request 'Merge dev → main: read post body from content_json_string (the empty-body fix) (#842)' (#107) from dev into main bvandeusen 2026-06-15 00:19:45 -04:00
  • 976107bbe8 fix(patreon): read post body from content_json_string (ProseMirror), not the dead content field (#842) bvandeusen 2026-06-15 00:14:52 -04:00
  • 59181069da Merge pull request 'Merge dev → main: per-post stdout diagnostics + post-field write DRY (#842/#753)' (#106) from dev into main bvandeusen 2026-06-14 23:45:39 -04:00
  • 0d51b93aa7 refactor(importer): single _apply_post_fields predicate for both ingest paths (#842/#753) bvandeusen 2026-06-14 23:39:30 -04:00
  • eb811e11f6 refactor(ingest): per-post handling into run stdout via a downloader outcome (#842) bvandeusen 2026-06-14 23:27:38 -04:00
  • 428ecd8642 Merge pull request 'Merge dev → main: per-post body-capture diagnostics in the event UI (#842)' (#105) from dev into main bvandeusen 2026-06-14 23:14:14 -04:00
  • bcc7266021 feat(downloads): per-post body-capture diagnostics in the event UI (#842) bvandeusen 2026-06-14 23:09:37 -04:00
  • ed1e04b831 Merge pull request 'Merge dev → main: recapture body-fetch fix + diagnostics (#842)' (#104) from dev into main bvandeusen 2026-06-14 22:31:41 -04:00
  • 3df191e255 fix(patreon): full-fetch fallback when sparse fieldset returns null content (#842) bvandeusen 2026-06-14 22:26:56 -04:00
  • b999480db5 feat(ingest): per-post body-capture + recapture diagnostics logging bvandeusen 2026-06-14 22:10:59 -04:00
  • f5156bd847 Merge pull request 'Merge dev → main: Recapture mode (#842) — re-grab post bodies/links + localize on-disk inline images' (#103) from dev into main bvandeusen 2026-06-14 21:21:49 -04:00
  • 65ec29ba9b feat(ingest): Recapture mode — re-grab post bodies/links + localize on-disk inline images (#830) bvandeusen 2026-06-14 20:58:40 -04:00
  • dfc3922d24 Merge pull request 'Merge dev → main: #830 rich post capture + external-host downloads (+ #768/#789/#739)' (#102) from dev into main bvandeusen 2026-06-14 19:16:09 -04:00
  • 96c29c370b feat(ingest): localize inline post-body images to local copies (Phase 2) bvandeusen 2026-06-14 16:39:58 -04:00
  • 5e1655384f feat(ingest): recapture body + links for every walked post (Phase 5) bvandeusen 2026-06-14 16:14:40 -04:00
  • 8dbf29f803 feat(external): per-host enable toggles in Settings (Phase 4d) bvandeusen 2026-06-14 15:57:42 -04:00
  • 05f226a8f6 feat(external): zip-parity provenance/tagging + thorough worker logging bvandeusen 2026-06-14 15:45:56 -04:00
  • bd2807cdd1 feat(external): mega.nz via megatools in the runtime image (Phase 4c) bvandeusen 2026-06-14 15:41:18 -04:00
  • 82b26b8aaa test(external): unique seeded artist per host (fix uq_artist_name in sweep test) bvandeusen 2026-06-14 15:33:49 -04:00
  • 96e984cded feat(external): download worker for file-host links (Phase 4b) bvandeusen 2026-06-14 13:44:07 -04:00
  • 13253b18d1 feat(external): file-host fetcher subsystem (Phase 4a) bvandeusen 2026-06-14 13:29:20 -04:00
  • 896e4f248c style(importer): fix ruff import ordering for link_extract bvandeusen 2026-06-14 13:19:51 -04:00
  • d96918d777 feat(posts): extract + record external file-host links (Phase 3) bvandeusen 2026-06-14 13:15:36 -04:00
  • c342c73a25 feat(posts): faithful (semantic) HTML rendering of post bodies bvandeusen 2026-06-14 13:02:21 -04:00
  • ca25f688c3 fix(download): tolerate dl_result without post_record_paths bvandeusen 2026-06-14 12:50:34 -04:00
  • 796e92540a feat(patreon): capture media-less/text-only posts (post-only records) bvandeusen 2026-06-14 12:44:46 -04:00
  • 2c67c27044 feat(patreon): capture full post body via adaptive detail-fetch bvandeusen 2026-06-14 12:29:06 -04:00
  • 7fcef53d5b fix(series): sticky tabs + controls on the Series view bvandeusen 2026-06-12 20:30:27 -04:00
  • 3eb08e926b Merge pull request 'fix(aliases): modal raw-key bug + alias visibility/management' (#101) from dev into main bvandeusen 2026-06-12 14:02:00 -04:00
  • 5c3f8ebd70 fix(aliases): store modal alias under raw model key + make aliases visible/manageable bvandeusen 2026-06-12 13:05:58 -04:00
  • 9e81ced359 Merge pull request 'fix(images): percent-encode original-image URLs ('#' in paths 404'd)' (#100) from dev into main bvandeusen 2026-06-12 00:44:56 -04:00
  • 7c4b24c80d fix(images): percent-encode original-image URLs ('#' in paths 404'd) bvandeusen 2026-06-12 00:36:44 -04:00