Commit Graph
343 Commits
Author SHA1 Message Date
Lucas WintherandClaude Opus 5.5 30c251b34b chore(changelog): note the Moved to Archive toast fix (56e034c)
CI / Typecheck, test, feed (push) Successful in 27s
CI / Build site (push) Successful in 11s
CI / Container image (push) Successful in 52s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-10 04:10:05 +01:00
Lucas WintherandClaude Opus 5.5 56e034c34e fix(archive): keep the Moved to Archive toast off the next events
Centred at the bottom for eight seconds, the Undo toast sat over the
events moving up into the gap an ignored or completed row left. It now
sits in the bottom-right corner, lasts four seconds, and has an OK that
closes it without undoing. On a phone there is no side to clear and the
bottom is where an event's page ends, so it goes to the top, over the
header.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-10 03:50:44 +01:00
Lucas WintherandClaude Opus 5.5 33cb56f9bd chore(changelog): point the codes fix at its rebased hash (d290e65)
CI / Typecheck, test, feed (push) Successful in 50s
CI / Build site (push) Successful in 47s
CI / Container image (push) Successful in 2m1s
Rebasing changed it from bfa9668, and check-changelog still passed because the old
object stays local. Recorded in AGENTS.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 03:25:21 +01:00
Lucas WintherandClaude Opus 5.5 787e7e3532 chore(sources): record Infinity Nikki's Mira Journey source as lapsed
The wiki's version table stops at 2.10 while the game is on 2.11, read in game by
the owner on 2026-11-07, and the Mira Journey page stops earlier at 2.7.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 03:22:49 +01:00
Lucas WintherandClaude Opus 5.5 79794a3393 chore(changelog): note Wuthering Waves codes fix (bfa9668)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 03:22:49 +01:00
Lucas WintherandClaude Opus 5.5 d290e65211 fix(codes): read Wuthering Waves codes after Game8 renamed the heading
Game8 dropped "All" from "Wuthering Waves All Active Codes" around 2026-10-25,
and the exact match rejected every refresh since, freezing the list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 03:22:49 +01:00
Lucas WintherandClaude Opus 5.5 4a3c6f26e2 chore(changelog): note Genshin exact end times (4ee1bf2)
CI / Typecheck, test, feed (push) Successful in 23s
CI / Build site (push) Successful in 14s
CI / Container image (push) Successful in 45s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 02:30:02 +01:00
Lucas WintherandClaude Opus 5.5 4ee1bf2d2a fix(refresh): name assumed hosts on article reads, and keep times on a bare 404
Also corrects the doc sentences the feature made false.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 02:29:28 +01:00
Lucas WintherandClaude Opus 5.5 43530fc222 feat(refresh): keep Genshin event articles beside the snapshots
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 02:09:58 +01:00
Lucas WintherandClaude Opus 5.5 7f086ece36 feat(ingest): read a stated end from a Genshin article
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 02:04:15 +01:00
Lucas WintherandClaude Opus 5.5 96bdda7c6f chore(changelog): note the Catch up section (3296784)
CI / Typecheck, test, feed (push) Successful in 25s
CI / Build site (push) Successful in 13s
CI / Container image (push) Successful in 52s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 11:17:22 +01:00
Lucas WintherandClaude Opus 5.5 3296784ca1 feat(routines): one game at a time in Catch up, with a way to reach it
Opening the panel gave one identical dropdown per game, naming none of them, at
the bottom of a page the Checklist did not link to. Named chips show one game's
titled rows and dated strips, and the Checklist's buttons land on the section.
The page-change scroll reset now skips these arrivals: a child's effect runs
first, so it was undoing the jump.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 11:16:46 +01:00
Lucas WintherandClaude Opus 5.5 99af24e0d3 feat(routines): model Catch up per account
The old panel resolved titles and days inline, which is how raw IDs reached
readers: a followed pass is placed under a feed-cycle ID no lookup knew. A pure
model lets every rule be tested without React. The count starts at a reader's
first tick because nothing records when they began following an item.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 11:16:31 +01:00
Lucas WintherandClaude Opus 5.5 64a441eefc chore(changelog): note Endfield AIC Quota Exchange routine
CI / Typecheck, test, feed (push) Successful in 25s
CI / Build site (push) Successful in 12s
CI / Container image (push) Successful in 47s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 09:14:54 +01:00
Lucas WintherandClaude Opus 5.5 327f6389cc feat(endfield): track AIC Quota Exchange permits by banner rotation
The shop's five permits restock when the character and weapon banners change together, which no week, month or fixed cycle can express: rotations ran 21 days and then 19. A rotation is not a game version, so it gets its own table and caption, and follows the version rule that only a recorded end resets the count. The dates and reset rule are the owner's in-game reading, as no page states them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 09:14:38 +01:00
Lucas Winther 8af536a410 chore(changelog): note game order fix and NTE shop routines
CI / Typecheck, test, feed (push) Successful in 21s
CI / Build site (push) Successful in 9s
CI / Container image (push) Successful in 39s
2026-11-02 03:36:18 +01:00
Lucas Winther 0c965e32e9 feat(nte): add monthly Lost Exchange pull routines
Track the shop's five limited dice, five standard dice and twenty weapon keys separately. Keep standard dice behind the existing opt-in and cite the monthly stock and restock evidence.
2026-11-02 03:35:32 +01:00
Lucas Winther dd5d374422 fix: apply game order to dailies and routines
Account creation order leaked into daily rows and routine groups even when the reader had arranged their games. Apply the shared display rule while preserving each game's server and task order.
2026-11-02 03:35:32 +01:00
Lucas Winther b6891b0635 chore(changelog): note TCG tracking in Setup (2f69038)
CI / Typecheck, test, feed (push) Successful in 21s
CI / Build site (push) Successful in 10s
CI / Container image (push) Successful in 45s
2026-11-01 04:40:26 +01:00
Lucas Winther 2f690385f4 fix(settings): put Genshin TCG tracking in Setup 2026-11-01 04:39:49 +01:00
Lucas Winther 18b5bfa602 chore(changelog): note the Genshin trial fix (0043735)
CI / Typecheck, test, feed (push) Successful in 20s
CI / Build site (push) Successful in 10s
CI / Container image (push) Successful in 43s
2026-11-01 04:35:39 +01:00
Lucas Winther 0043735ef5 fix(merge): pair Genshin character trials across sources
Game8's generic trial title and Fandom's changing character list now refer
to the same banner phase in refreshed snapshots. Recognize the registered
trial article family under the existing start-date guard, without widening
fuzzy matching or combining consecutive phases. Carry the absorbed ID so
completion, notes and daily progress follow the surviving row.
2026-11-01 04:34:26 +01:00
Lucas Winther 88783b0240 chore(changelog): note content classification (5576e5a..b03a6ed)
CI / Typecheck, test, feed (push) Successful in 20s
CI / Build site (push) Successful in 11s
CI / Container image (push) Successful in 46s
2026-11-01 04:13:28 +01:00
Lucas Winther b03a6ed2d1 feat(reader): separate Miliastra and track passes as cycles
Route source-classified activities into an independent Miliastra lane and
show dated battle passes once under Cycles. Genshin's About tab can disable
TCG tracking without deleting progress or history.

Activate routing and presentation together so no intermediate version moves
saved progress while still rendering its old owner. Preserve identities,
clock revisions and deletion timestamps across late writes and backups.
2026-11-01 04:12:14 +01:00
Lucas Winther 5576e5ad5c feat(ingest): preserve source content classifications
Keep the sources' Miliastra, battle-pass and TCG distinctions so rotating
names do not need a new title table every patch. Classification survives
cross-source merges while event IDs, dates and source identities stay fixed.
Conflicting classifications are reported instead of selecting a destination.
2026-11-01 04:08:36 +01:00
Lucas WintherandClaude Opus 5.5 5896819810 fix(routines): an estimated version end is shown, never counted down
With no recorded end, the pinned row, the timeline labels, the routine
dialog and a group's "Next reset in" treated the estimate as a reset,
and read "ended" once it passed. They now print the version caption, and
the band reaches today.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 18:00:11 +02:00
Lucas WintherandClaude Opus 5.5 3c53fe1a06 chore(changelog): note the version routines (8cf01b4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 17:54:00 +02:00
Lucas WintherandClaude Opus 5.5 81fee8299c fix(settings): put a version's source and note under its date
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 17:53:36 +02:00
Lucas WintherandClaude Opus 5.5 88041d19e1 feat(settings): show a game's version timer on its About tab
A routine that resets with the version is offered, tallied and switched
with the cycles everywhere routines are sorted by kind, not only in the
strip.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 17:42:43 +02:00
Lucas WintherandClaude Opus 5.5 8cf01b427f feat(routines): Wuthering Waves' shop pulls, each version
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 17:38:41 +02:00
Lucas WintherandClaude Opus 5.5 b3a84757a1 feat(routines): a routine can reset with its game's version
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 17:14:00 +02:00
Lucas WintherandClaude Opus 5.5 34ebc401c7 feat(versions): a cited table of version timers, and the window holding now
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 17:11:06 +02:00
Lucas WintherandClaude Opus 5.5 9fe14114ba chore(changelog): note the shine (54d13d7) and Settings pills (9c22a85)
CI / Typecheck, test, feed (push) Successful in 18s
CI / Build site (push) Successful in 8s
CI / Container image (push) Successful in 37s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 04:27:40 +02:00
Lucas WintherandClaude Opus 5.5 54d13d7472 feat: shine a code redeemed or an event completed on its way out
A code redeemed on its last server sweeps in the game's colour and greys
in place for 0.8 s, then lands in Redeemed or expired. A completed event
greys and shines while its Moved to Archive notice holds, now 0.9 s
rather than 1.5 s, which read as unresponsive; an ignored one only greys.

Settings → Appearance gains Motion & celebrations as three What to track
cards: Reduce motion (stops every animation and the fireworks, adding to
the device's own setting), Fireworks, and Shine. Reduce motion locks the
other two off without forgetting them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 04:26:50 +02:00
Lucas WintherandClaude Opus 5.5 9c22a85134 fix(settings): give Settings pills room and the outlined buttons' size
Theme and Timeline design pills sat 1px under their help text and, in
Relaxed, in a dark well at 12px/32px beside 13px/37px outlined buttons,
which read as off-centre. Under a help line they now sit 16px below it,
like the scheme choices, and in Settings take the buttons' type, height
and a hairline tray.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 04:24:53 +02:00
Lucas WintherandClaude Opus 5.5 3e3759b1eb chore(changelog): note the kept game tab (83a2557)
CI / Typecheck, test, feed (push) Successful in 17s
CI / Build site (push) Successful in 11s
CI / Container image (push) Successful in 37s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 03:40:15 +02:00
Lucas WintherandClaude Opus 5.5 83a255754c feat(settings): keep the game tab when switching games
Codes in one game now opens Codes in the next. The reader app holds the
tab and GameSettings reads it, instead of each game page minting its own.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 03:39:52 +02:00
Lucas WintherandClaude Opus 5.5 94a2faa6f6 chore(changelog): note confirmed-dead codes (b8e8d44)
CI / Typecheck, test, feed (push) Successful in 18s
CI / Build site (push) Successful in 8s
CI / Container image (push) Successful in 37s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 03:35:09 +02:00
Lucas WintherandClaude Opus 5.5 b8e8d44816 feat(codes): mark a code dead once the owner confirms it in game
Game8 still lists Y1INABQB6DEX, 2BJ64QRZ7RT8 and PLDXIB886Y1S as active
Genshin codes after the game refused them. CODE_CHECKS records the
owner's in-game check; build-codes stamps the matching code confirmedDead,
and the Codes tab shows it expired: "Confirmed expired in game, 2026-10-20."

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 03:34:52 +02:00
Lucas WintherandClaude Opus 5.5 c4d0d1b925 chore(changelog): note celebrations for each thing finished (f17b798)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 22:46:53 +02:00
Lucas WintherandClaude Opus 5.5 f17b7985ef feat(celebrations): a burst for each thing finished, and a switch for all of it
The redesign only celebrated a finished section, so ticking one daily or
completing an event drew nothing. Now a daily ticked, a routine met, an
amount typed to its target and an event marked completed each fire the
small burst; the item that finishes every daily or a game's routines gets
only the grand celebration. Settings → Appearance → Celebrations
(prefs.celebrations, on unless false) turns every firework off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 22:46:46 +02:00
Lucas WintherandClaude Opus 5.5 a4426aaebc chore(changelog): note the fuller tour (874d862)
CI / Typecheck, test, feed (push) Successful in 19s
CI / Build site (push) Successful in 9s
CI / Container image (push) Successful in 40s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 05:27:25 +02:00
Lucas WintherandClaude Opus 5.5 874d8627a2 feat(tour): a welcome of its own, the owner's order, and the way to codes
The tour opens on a welcome over the dimmed Checklist, then shows the bar
along the top, then the Checklist and Timeline with their looks, Routines,
Archive and Settings. Codes get three steps that walk the way in (the game
in Settings, its Codes tab, the codes), and the last step points at Replay
the introduction. A replay now dims and locks the page like the first run,
keeping only Close tour. Subjects out of sight scroll into view, and the
ring stays inside the window.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 05:27:02 +02:00
Lucas WintherandClaude Opus 5.5 83ed9fa3fa chore(changelog): note used codes and the new-code marker (3b29010)
CI / Typecheck, test, feed (push) Successful in 19s
CI / Build site (push) Successful in 9s
CI / Container image (push) Successful in 40s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 05:15:51 +02:00
Lucas WintherandClaude Opus 5.5 3b29010e7c feat(codes): redeemed and expired codes move below, and new codes are marked
A game's Codes tab lists the codes still to use first; a code redeemed on
every server played, or past its stated expiry, is greyed in a "Redeemed or
expired" section below. A date-only expiry passes once that date has ended
everywhere. Settings → Your games marks a followed game with its count of
unseen, still usable codes until its Codes tab is opened.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 05:15:36 +02:00
Lucas WintherandClaude Opus 5.5 3c81b9b0f1 chore(changelog): note the tour highlights and safer saves (94fba4d, 5be04a7)
CI / Typecheck, test, feed (push) Successful in 18s
CI / Build site (push) Successful in 9s
CI / Container image (push) Successful in 40s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 05:11:28 +02:00
Lucas WintherandClaude Opus 5.5 5be04a7439 feat(tour): highlight each step, and make the comparing steps try both looks
Owner feedback on the forced tour. Each step rings what it is about and,
while forced, dims the rest of the page around it. "Pick a layout" and the
Timeline step hold Continue until both options have been on screen, scroll
their subject to the top of the window and, on wide screens, move the card
to the right edge so the page has room to show the difference.

Guards for the reported snap-back and endless tour, which did not
reproduce: the effect that moves an unseen reader to Relaxed fires at most
once per page load and never after the tab saw the tour done, and setup
saves only the prefs it changed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 05:10:42 +02:00
Lucas WintherandClaude Opus 5.5 94fba4d7b5 fix(reader): open the save under the reader lock, and cap automatic backups
Follow-up to the 2026-10-18 review of the v1→v2 migration. Start-up
(finishing a pending restore, then migrating or reconciling) now runs under
the lock every save takes, so a second tab's save cannot be overwritten;
where no lock exists it opens unlocked, as before. The automatic backups get
a size cap like Back up now's: past it the oldest are dropped, never the
newest, leaving the main save room to grow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 05:09:58 +02:00
Lucas WintherandClaude Opus 5.5 6720c72840 chore(changelog): note the tour for everyone (d8ce442)
CI / Typecheck, test, feed (push) Successful in 18s
CI / Build site (push) Successful in 9s
CI / Container image (push) Successful in 37s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 04:45:53 +02:00
Lucas WintherandClaude Opus 5.5 d8ce442cff feat(tour): everyone takes the tour once, and tries the layouts in it
The tour now floats over the page it describes and must be finished
before the app can be used: new readers straight after setup, returning
readers on their next visit, and anyone who saw the earlier tour. The
page behind stays visible and scrollable but inert.

"Pick a layout" (on the Checklist) and the Timeline step switch Relaxed /
Structured and New / Classic in place; the selected look is kept.
Returning readers start on Relaxed. A replay from Settings stays
optional and closable.

redesignTourSeen now records new / returning / replay / 2026-10-tour-2;
any other value means not yet taken.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 04:45:02 +02:00