This website requires JavaScript.
908c95f690
fc5: fix GS export script — use async engine + correct imports, designed for in-container exec
main
bvandeusen
2026-05-22 20:51:32 -04:00
d47b4c8a64
fc5: export script for FabledCurator migration — subscriptions/sources + decrypted credentials
bvandeusen
2026-05-22 10:39:21 -04:00
b43c35483f
feat(settings): library-validation UI and validate_files toggle
bvandeusen
2026-04-25 23:56:18 -04:00
6d875662fa
feat(maintenance): add library-validation sweep task and API
bvandeusen
2026-04-25 22:56:01 -04:00
2765c464bd
feat(downloader): validate and quarantine truncated files post-download
bvandeusen
2026-04-25 22:55:52 -04:00
ba75d1ffdc
feat(validator): add magic-byte file validator for partial-download detection
bvandeusen
2026-04-25 22:55:43 -04:00
0f7b55be9d
docs(readme): add Pixiv/DeviantArt to supported platforms, drop stale env var
bvandeusen
2026-04-21 07:44:37 -04:00
c2a2162c86
fix(downloader): don't misclassify tier-gated runs with per-item video 403s
bvandeusen
2026-04-21 07:34:33 -04:00
851df294f2
feat(dashboard): revamp with at-a-glance strip, sparkline, modal, disk bar
bvandeusen
2026-04-20 19:32:59 -04:00
86bf43c80a
feat(downloader): tier-limited classification, config defaults, yt-dlp support
bvandeusen
2026-04-20 19:32:44 -04:00
f747750f97
feat(dashboard): smarter Retry All Failed with per-source dedup and recent-success skip
bvandeusen
2026-04-19 14:41:49 -04:00
1f677b6862
feat(downloads): enrich modal with run stats, errors panel, copy, and log filter
bvandeusen
2026-04-19 14:25:17 -04:00
513b191e47
feat(downloads): capture structured run stats and filtered logs at save time
bvandeusen
2026-04-19 14:18:25 -04:00
edbb349c58
fix(downloads): don't classify per-item download 404s as source-level Not Found
bvandeusen
2026-04-19 14:07:50 -04:00
24c3999f55
feat(ui): align Dashboard Active and Recent Activity card heights
bvandeusen
2026-04-18 15:52:05 -04:00
e9edaeb66d
feat(ui): cap Dashboard Active and Recent Activity lists at 5 items
bvandeusen
2026-04-18 15:47:38 -04:00
97864efacb
fix(downloads): treat recovered Patreon campaign-ID errors as non-fatal
bvandeusen
2026-04-18 15:23:41 -04:00
659f1f64a4
feat(ui): use autocomplete for Downloads Source filter
bvandeusen
2026-04-18 15:12:24 -04:00
0426e91a84
feat(ui): collapse Downloads filters into compact bar with popover
bvandeusen
2026-04-18 15:10:29 -04:00
c5ebbe5a76
feat(ui): add legend and per-bar tooltip to Platform Health
bvandeusen
2026-04-18 15:08:11 -04:00
ae140dbb0a
feat(ui): show relative timestamps on Dashboard and Downloads tables
bvandeusen
2026-04-18 15:07:19 -04:00
9f8ce67084
feat(ui): group repeated failures by subscription on Dashboard recent activity
bvandeusen
2026-04-18 15:04:21 -04:00
b9c0d0efbf
chore(tests): remove unused pytest import in retry tests
bvandeusen
2026-04-18 14:44:41 -04:00
b57e93f1bf
chore(downloads): log failed resolutions and tighten retry dataclass/tests
bvandeusen
2026-04-18 14:18:43 -04:00
35589e996a
feat(downloads): auto-heal patreon campaign-ID failures via resolver retry
bvandeusen
2026-04-18 14:11:11 -04:00
8e3da096ec
feat(downloads): add patreon URL-rewrite and error-pattern helpers
bvandeusen
2026-04-18 13:43:21 -04:00
3642acc41c
fix(patreon): declare aiohttp/yarl deps and use public yarl.URL import
bvandeusen
2026-04-18 13:40:20 -04:00
ce8ba538b7
feat(patreon): add campaign-ID resolver service
bvandeusen
2026-04-18 13:22:36 -04:00
d819a184a1
test: remove dead anyio_backend fixture and unused pytest imports
bvandeusen
2026-04-18 13:13:50 -04:00
74f0086664
test: bootstrap backend pytest infrastructure with sanity tests
bvandeusen
2026-04-18 13:07:20 -04:00
e70ff636ea
docs: add patreon campaign-ID resolver implementation plan
bvandeusen
2026-04-18 12:54:34 -04:00
59c40ccdb9
docs: add patreon campaign-ID resolver design spec
bvandeusen
2026-04-18 12:46:00 -04:00
f3412dea57
fix(dashboard): guard failureThreshold against empty/invalid settings values
bvandeusen
2026-04-17 23:53:18 -04:00
42192e82be
fix(dashboard): add missing getPlatformColor helper for platform health bars
bvandeusen
2026-04-17 23:50:09 -04:00
f809fa552d
feat(dashboard): replace recent-failures list with platform health bars + strict failing-source table
bvandeusen
2026-04-17 23:44:42 -04:00
7680f03560
refactor(dashboard): drop redundant PLATFORM_ORDER and misleading optional chain
bvandeusen
2026-04-17 23:31:29 -04:00
62713cfec0
feat(dashboard): add failure-threshold computeds backed by settings store
bvandeusen
2026-04-17 23:29:02 -04:00
4ee78ef859
feat(settings-ui): expose dashboard failure threshold
bvandeusen
2026-04-17 23:24:13 -04:00
14682fc20c
feat(settings): add dashboard.failure_threshold default (5)
bvandeusen
2026-04-17 23:06:12 -04:00
9ab94eb1f9
docs: add failure display implementation plan
bvandeusen
2026-04-17 23:01:09 -04:00
38bade0320
docs: add failure display design spec
bvandeusen
2026-04-17 22:56:23 -04:00
a11861197c
fix(deps): pin gallery-dl>=1.31.10 to resolve Patreon 426
bvandeusen
2026-04-17 22:43:21 -04:00
b03fd215a0
feat(ui): configured vs unconfigured visual treatment on Credentials cards
bvandeusen
2026-03-19 18:33:24 -04:00
0f8dbfe5c2
feat(ui): add exclude superseded failures filter toggle to Downloads
bvandeusen
2026-03-19 18:32:41 -04:00
b039f82255
fix(ui): use bg-surface on expanded subscription rows for dark mode compat
bvandeusen
2026-03-19 18:32:03 -04:00
294ccdc748
feat(ui): consistent empty states and running pulse on Dashboard
bvandeusen
2026-03-19 18:31:03 -04:00
b419ee8b32
feat(ui): number-forward stat cards and split action bar on Dashboard
bvandeusen
2026-03-19 18:29:19 -04:00
f132c115c9
fix(ui): use div instead of button for WS status indicator
bvandeusen
2026-03-19 18:28:14 -04:00
34d4482f6d
feat(ui): lift nav branding and add WebSocket status indicator
bvandeusen
2026-03-19 18:26:46 -04:00
8b189d72f4
feat(ui): replace palette with slate/navy monitoring dashboard theme
bvandeusen
2026-03-19 18:25:19 -04:00
a25c332cda
docs: add UI improvement pass implementation plan
bvandeusen
2026-03-19 17:51:00 -04:00
728a8bb529
docs: fix spec review issues in UI improvement pass spec
bvandeusen
2026-03-19 17:45:22 -04:00
fc79996468
docs: add UI improvement pass design spec
bvandeusen
2026-03-19 08:50:36 -04:00
9db27ddaae
chore: sane ignore files, update summary, bump base images
bvandeusen
2026-03-19 08:20:24 -04:00
8cd0ce4ecb
fix: restore AsyncSession import and fix dead regex patterns in NOT_FOUND_PATTERNS
bvandeusen
2026-03-18 23:43:01 -04:00
48d10ec21e
fix: count only absolute path lines in _count_downloaded_files
bvandeusen
2026-03-18 23:39:45 -04:00
080a1254c7
fix: wrap AsyncSession in context manager across all API blueprints
bvandeusen
2026-03-18 23:38:58 -04:00
dc146f4a16
refactor: extract error patterns to constants, add debug logging, fix rc1 no_new_content
bvandeusen
2026-03-18 23:37:04 -04:00
6432210a36
refactor: extract shared DB helpers to tasks/db.py
bvandeusen
2026-03-18 23:36:42 -04:00
4eac527f0f
perf: parallelize checkAllSources with Promise.allSettled
bvandeusen
2026-03-18 23:36:33 -04:00
0f2901ef58
feat: mark prior failures as superseded on successful download
bvandeusen
2026-03-18 23:32:51 -04:00
2c95374edc
feat: replace _not_superseded_condition subquery with superseded column filter
bvandeusen
2026-03-18 23:32:06 -04:00
7268d06b4f
feat: migration to add superseded column with backfill and partial index
bvandeusen
2026-03-18 23:31:17 -04:00
f84b20269a
feat: add superseded column to Download model
bvandeusen
2026-03-18 23:30:35 -04:00
cdee69947d
fix: replace get_event_loop with get_running_loop and utcnow consistently
bvandeusen
2026-03-18 23:28:00 -04:00
c9ac163a4b
fix: capture started_at before clearing in orphaned job reset message
bvandeusen
2026-03-18 23:27:23 -04:00
6036c34680
fix: pass download_id in process_download to prevent retry skip
bvandeusen
2026-03-18 23:27:15 -04:00
a50677efd0
Add comprehensive review implementation plan
bvandeusen
2026-03-18 23:21:09 -04:00
0698ee1fa7
Add comprehensive review design spec
bvandeusen
2026-03-18 23:14:19 -04:00
055808ea6d
polish for failed retry mechanic and consistent sub naming
bvandeusen
2026-02-04 15:02:50 -05:00
2190a9c16b
correcting pixiv connection functionality
1.1.1
bvandeusen
2026-02-04 12:45:31 -05:00
cc19bbd372
added functionality for pixiv and deviantart
Bryan Van Deusen
2026-02-02 20:17:13 -05:00
3ee7de7ecd
tuning error recognition
1.1.0
Bryan Van Deusen
2026-01-30 22:04:07 -05:00
097ab16c50
more UI polish and schedule safe guards and optimization
Bryan Van Deusen
2026-01-30 00:01:45 -05:00
c1fe8148b8
polish downloads view
Bryan Van Deusen
2026-01-29 19:42:14 -05:00
fcccfb24ee
changes to task scheduling and readability change on downloads view
Bryan Van Deusen
2026-01-29 19:33:04 -05:00
575e20f58c
ongoing polish in queue handling
Bryan Van Deusen
2026-01-28 09:32:47 -05:00
c7a259a63b
correcting worker db connection issue
Bryan Van Deusen
2026-01-27 18:05:54 -05:00
13b4da5ca0
better lifecycle visibility implementation.
Bryan Van Deusen
2026-01-27 17:33:25 -05:00
d2e4d6c588
corrected time record type, mismatch caused issues and kept credential verification from occuring
Bryan Van Deusen
2026-01-26 22:51:03 -05:00
204e8efcdc
signing for extension deployment, tuning for download crawl depth, and dependency version visibility in settings view
Bryan Van Deusen
2026-01-26 22:37:15 -05:00
2a0e37a73d
improve ux, moved functionality for better ui experience on app and extension.
1.0.0-Extension
Bryan Van Deusen
2026-01-26 11:38:51 -05:00
74b1ecf2cf
fix typo for storage stats interface
Bryan Van Deusen
2026-01-26 09:05:46 -05:00
afba2c0f85
corrected false positive in abnormal patreon sources.
Bryan Van Deusen
2026-01-25 19:03:56 -05:00
997f31ae27
tuning ui and adding adaptive themeing to extension
Bryan Van Deusen
2026-01-25 18:47:06 -05:00
dc6755a0c2
move job scheduling to DB
Bryan Van Deusen
2026-01-24 23:50:09 -05:00
61e9336eef
polishing for prod testing.
Bryan Van Deusen
2026-01-24 23:38:09 -05:00
058901cd05
added discord functionality to extension and polished some of downloader process.
Bryan Van Deusen
2026-01-24 23:15:03 -05:00
b9b8048a2d
rapid interations of server side app and firefox extension
Bryan Van Deusen
2026-01-24 22:52:51 -05:00