84f13135ce
feat: worker lanes become rows — slots, a settable cap, a derived ceiling (4291)
bvandeusenandClaude Opus 52026-09-22 07:48:25 -04:00
6bf205407b
Merge pull request 'pixiv retired, placement reconciler removed, build race fixed, mirror pinned' (#257) from dev into main
bvandeusen2026-09-22 07:43:12 -04:00
aa2bb665b9
fix: serialise builds per branch, and pin :c-<sha> to the digest this run built (4290)
bvandeusenandClaude Opus 52026-09-21 22:07:53 -04:00
bd92fb46b3
test: pin the JS<->Py artist-pattern mirror with a shared sample table (3093)
bvandeusenandClaude Opus 52026-09-21 21:04:53 -04:00
24b10d0ffa
feat: retire pixiv entirely — delete its code, its ledgers, its credential (3977, 3978, 3979)
bvandeusenandClaude Opus 52026-09-21 20:46:15 -04:00
5aa8e3d81b
fix: a stopped source is not a failing one, and cannot be deep-scanned (4279)
bvandeusenandClaude Opus 52026-09-21 19:25:42 -04:00
11a01a9686
revert: remove the placement reconciler — it manufactured the problem it solved
bvandeusenandClaude Opus 52026-09-21 18:17:13 -04:00
32d37cd453
Merge pull request 'Placement reconciler: put every image in its own artist's folder, one artist at a time' (#256) from dev into main
bvandeusen2026-09-21 15:28:38 -04:00
2dd9b956d5
feat: File placement card — survey, plan per artist, apply, put back (4246, slice 3c)
bvandeusenandClaude Opus 52026-09-21 14:32:51 -04:00
a4bdbcaca4
test: import the placement task module so its names reach celery.tasks (4246)
bvandeusenandClaude Opus 52026-09-21 14:21:20 -04:00
e2246e861e
Merge pull request 'Near-duplicate dedup rebuilt on three gates, backup credential leak closed, library consolidation started' (#255) from dev into main
bvandeusen2026-09-21 11:11:39 -04:00
7ff8915147
feat: a source stops pulling once its membership ends, and resumes on resubscribe (3995)
bvandeusenandClaude Opus 52026-09-13 22:08:06 -04:00
4d84ab2816
fix: the filter rail goes, and the subscriptions card stops listing what you don't pay for — and can be dismissed
bvandeusenandClaude Opus 52026-09-13 22:04:02 -04:00
c3dac235a9
Wide-window feed, Discord downloads named and dated correctly, and a repair for the broken ones (#253)
bvandeusen2026-09-13 20:57:06 -04:00
9b82a95b7e
feat: Settings can re-download the Discord images the None naming broke (3999)
bvandeusenandClaude Opus 52026-09-13 20:52:32 -04:00
dc840feec7
fix: Discord downloads land as None/<date>_None_<name> with no post — name them from the keys gallery-dl really emits
bvandeusenandClaude Opus 52026-09-13 20:01:11 -04:00
98c3b74260
feat: the Latest feed uses a wide window — filmstrip cards, a day gutter and a filter rail (407 A, D, E)
bvandeusenandClaude Opus 52026-09-13 19:48:46 -04:00
69d9c14e35
The Patreon roster syncs, the favicon shows, and the logo sits behind every page (#252)
bvandeusen2026-09-13 18:22:00 -04:00
4b4e532c56
fix: the membership status vocabulary moves beside Membership, so the Patreon client never imports the roster
bvandeusenandClaude Opus 52026-09-13 16:07:26 -04:00
240f11c5aa
fix: one lapsed membership to a deleted creator no longer fails the Patreon roster
bvandeusenandClaude Opus 52026-09-13 16:01:50 -04:00
dd766eb976
fix: the favicon and nav brand mark rendered blank — "--" inside an XML comment
bvandeusenandClaude Opus 52026-09-13 15:57:19 -04:00
057bab1011
What you pay for, what Discord drops, and pixiv switched off (#251)
bvandeusen2026-09-13 12:09:28 -04:00
e3c516d6be
fix: a retired platform leaves the chip maps, and a fixture stops creating pixiv sources (406)
bvandeusenandClaude Opus 52026-09-13 11:52:06 -04:00
e3fd8c67d4
feat: switch pixiv off — unregistered, unreachable, and refused at dispatch (406 phase 1)
bvandeusenandClaude Opus 52026-09-13 11:45:49 -04:00
0835da8a91
fix: give the roster's column zip an explicit strict=False (387 D1, B905)
bvandeusenandClaude Opus 52026-09-13 10:56:18 -04:00
1e45e2c56c
feat: an open grouping — a later drop joins its post (milestone 388 step E3)
bvandeusenandClaude Opus 52026-09-10 11:30:17 -04:00
7071c87cd6
feat: a grouped post says so, and the operator can tune the grouping (388 E2)
bvandeusenandClaude Opus 52026-09-10 11:17:56 -04:00
73eeb7a377
feat: FC authors the post that Discord never wrote (milestone 388 step E2)
bvandeusenandClaude Opus 52026-09-10 11:15:14 -04:00
4fe792b61c
feat: platform_membership — the learned roster of what the account pays for (milestone 387 step C1)
bvandeusenandClaude Opus 52026-09-10 10:58:25 -04:00
6b19012bb6
feat: the empty front door is the install's first screen (milestone 387 step B4)
bvandeusenandClaude Opus 52026-09-09 23:10:06 -04:00
3f8306f705
fix: two exact-shape assertions pinned the old schedule-status payload
bvandeusenandClaude Opus 52026-09-09 23:01:08 -04:00
a708f5e9db
feat: the front door says whether ingestion is working (milestone 387 step B3)
bvandeusenandClaude Opus 52026-09-09 22:55:14 -04:00
ecd72015a7
feat: the front door answers "what arrived?" (milestone 387 step B1)
bvandeusenandClaude Opus 52026-09-09 22:46:04 -04:00
6bb18050a4
feat: no-access is visible per source, and findable (milestone 387 step A3)
bvandeusenandClaude Opus 52026-09-09 21:26:48 -04:00
7751715b83
feat: a paywalled creator is no longer indistinguishable from a silent one (milestone 387 step A2)
bvandeusenandClaude Opus 52026-09-09 15:40:19 -04:00
173f4b00aa
fix: the native path never reported tier-gated posts (milestone 387 step A1)
bvandeusenandClaude Opus 52026-09-09 12:34:08 -04:00
ad8392b790
fix: system health is a Settings tab, not a page only the dot reached
bvandeusenandClaude Opus 52026-09-02 19:45:54 -04:00
a8fdbd86bc
Merge pull request 'FabledCurator can now tell you one of its own parts has stopped' (#250) from dev into main
bvandeusen2026-09-02 18:01:38 -04:00
5084ba666b
feat: the dot beside the brand now means the whole stack (milestone 365 step 4)
bvandeusenandClaude Opus 52026-09-02 17:20:55 -04:00
fe4e0f2b71
feat: /api/system/health — one verdict for the whole stack (milestone 365 step 3)
bvandeusenandClaude Opus 52026-09-02 17:17:22 -04:00
dc8af8b1a7
feat: a learned roster, so a stopped part is observable (milestone 365 steps 1-2)
bvandeusenandClaude Opus 52026-09-02 17:15:46 -04:00
0421fd3109
Merge pull request 'The weekly refresh now publishes only what a gate has proven — and a new install can start' (#249) from dev into main
bvandeusen2026-09-02 16:31:55 -04:00
131237143b
Revert "test: force the smoke gate to fail, to watch it block a publish"
bvandeusenandClaude Opus 52026-09-02 16:23:49 -04:00
d01f33dea6
Merge pull request 'A gate for the weekly refresh, and the lever that makes it testable' (#248) from dev into main
bvandeusen2026-09-02 15:51:50 -04:00
adab33694d
Merge pull request 'Make a digest mean something again, and give the refresh somewhere to stand' (#247) from dev into main
bvandeusen2026-09-02 14:56:12 -04:00
bfc4f9cec9
ci: one fact for "is this a base refresh", and a lever to trigger one
bvandeusenandClaude Opus 52026-09-02 14:41:33 -04:00
b590d25f8f
ci: the scheduled refresh builds a candidate, then names the channel
bvandeusenandClaude Opus 52026-09-02 14:40:19 -04:00