From 63724eb78387238bcfc5e6a20b4740d7bdea73aa Mon Sep 17 00:00:00 2001 From: Lucas Winther Date: Fri, 16 Oct 2026 06:29:31 +0200 Subject: [PATCH] docs: pass windows shipped for Star Rail, ZZZ and Nikki; Endfield waits Records why Miliastra was reverted and why Endfield's Protocol Pass has no source yet, updates AGENTS.md's parser list and marks sub-project 3 in TODO with the follow-ups. Co-Authored-By: Claude Opus 5.5 --- AGENTS.md | 6 ++++-- TODO.md | 15 ++++++++++++- .../specs/2026-10-16-pass-windows-design.md | 21 +++++++++++++++++++ 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index b64f3b0..098a9ea 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -43,7 +43,7 @@ A web app that aggregates live and upcoming events across popular gacha games, p calendar, sorts them by end date or by what the reader is partway through, tracks day-by-day progress on events that repeat daily, and lets a user mark events completed. -**Status: working app, refreshing itself on a schedule.** Schema, ten parsers, twenty-two sources across +**Status: working app, refreshing itself on a schedule.** Schema, twelve parsers, twenty-six sources across twenty games, the full interface, offline support, a static server, a Docker image and CI all exist and are tested. The refresh runner (`bun run refresh`) fetches, caches raw snapshots and rebuilds the feed; `.gitea/workflows/refresh.yml` runs it twice a day and commits only when a page actually @@ -241,7 +241,9 @@ These come from how gacha games actually schedule things, and they cause most bu `wikigg`, `akwiki`, `bawiki`, `holodoriwiki`, `iopwiki`, `stellasorawiki` and `arustats` serve one each — `wikigg` and `akwiki` share a host family and have entirely different templates, and `bawiki`, `holodoriwiki` and `stellasorawiki` are all Miraheze wikis whose page templates have - nothing in common. `arustats` is the odd one out and the only parser here that does not read + nothing in common. Two Fandom templates that are not event pages have parsers of their own: + `fandomtable` reads a pass's dated history table (two sources) and `fandomversion` a version + table that stands in for a pass where the link is stated (one). `arustats` is the odd one out and the only parser here that does not read markup at all: that site server-renders its schedule into a Next.js `__NEXT_DATA__` blob, so the parser reads JSON and the rendered grid is ignored. Adding a source for a known site is one `SOURCES` entry; a new site is a parser module. diff --git a/TODO.md b/TODO.md index 8f02d59..bac4ea1 100644 --- a/TODO.md +++ b/TODO.md @@ -71,7 +71,7 @@ Asia's clock for every reader (`clock: "asia"`, sub-project 2). A timer read from the America server (and one from Asia, to be sure) settles it; if America rolls on its own reset, the clock is per server and the entry needs changing. -- [ ] **Sub-project 3: dated battle pass and shop windows as feed events.** Source and parser work +- [x] **Sub-project 3: dated battle pass and shop windows as feed events.** Source and parser work (AGENTS.md § the ingest pipeline; the `adapter-author` agent and `add-game-source` skill), not built-ins. **Check the feed first**: Genshin's battle pass is already a feed event (`Battle Pass - Moontrace`, de-duplicated against Fandom's `Moontrace` on 2026-10-14), so a new source must not @@ -84,6 +84,19 @@ Oscillated Coral shop (resets each version, 11 Nov ~10–11 UTC), ZZZ City Fund season (19 Oct 03:00 UTC), Infinity Nikki Mira Journey (29 Oct ~20:00 UTC). Never invent a date: an event is built only from a source that states it; these readings are for checking a parser. + Shipped 2026-10-16 — see the [pass windows spec](docs/superpowers/specs/2026-10-16-pass-windows-design.md): + Star Rail's Nameless Honor and ZZZ's New Eridu City Fund from their Fandom history tables, and + Infinity Nikki's Mira Journey from its version, on the owner's in-game confirmation. Genshin's + Battle Pass and Miliastra Pass were already in the feed. +- [ ] Endfield's *Protocol Pass* window. The wiki says the pass runs "until the end of this version", + but on 2026-10-16 no stable page dated the current version: `/wiki/Version` stopped at + Dreamscape (ended 2026-10-14), the main page gave only Asia's start, and the per-version page + (`Sanctuary_of_Ink`) changes URL every patch. endfield.wiki.gg's robots disallow `/api.php` for + `*`, so only `/wiki/` pages are open. Re-check `/wiki/Version`; once it dates the current version, + build `endfield-wikigg-protocol-pass` as the spec describes. +- [ ] Wuthering Waves' Pioneer Podcast and Oscillated Coral, and NTE's Circle Bounty, as pass/shop + windows: no page dated them on 2026-10-16 (the [pass windows spec](docs/superpowers/specs/2026-10-16-pass-windows-design.md) + § Not shipped has what was found). - [ ] Give Genshin's *To Temper Thyself and Journey Far* a check-in goal by default, so a reader need not set it by hand. The owner asked on 2026-10-16 to "mark it as a 4/5 wk event"; earlier the same day they described it as five days out of seven, and the [check-in goals spec](docs/superpowers/specs/2026-10-03-check-in-goals-design.md) diff --git a/docs/superpowers/specs/2026-10-16-pass-windows-design.md b/docs/superpowers/specs/2026-10-16-pass-windows-design.md index 1e004f3..ece09cc 100644 --- a/docs/superpowers/specs/2026-10-16-pass-windows-design.md +++ b/docs/superpowers/specs/2026-10-16-pass-windows-design.md @@ -75,6 +75,27 @@ nothing invented ("Protocol Pass", "Mira Journey"). Event IDs are game + title + period is its own event and no existing ID moves. None of these titles occurs in the live feed today, so `mergeEvents` has nothing to pair them with. +## Outcome (2026-10-16) + +Three of the five shipped: `hsr-fandom-nameless-honor` and `zzz-fandom-city-fund` (parser +`fandomtable`) and `nikki-fandom-mira-journey` (parser `fandomversion`). Two did not: + +- **Genshin's Miliastra Pass was already in the feed.** Fandom's Event page, an existing source, + lists "Silvery Moonlight Chronicle" with the same window, and `mergeEvents` folded the new copy + into it. The feed was unchanged, so the source was reverted rather than kept as a second copy — + the same reason Genshin's Battle Pass got no new source. This section's claim that no title + occurred in the live feed was wrong for this one. +- **Endfield's Protocol Pass has no stable dated page.** endfield.wiki.gg's robots disallow + `/api.php` for `*` (a second `User-agent: *` group), so only `/wiki/` pages are open. On + 2026-10-16 `/wiki/Version` stopped at Dreamscape (ended 2026-10-14), the main page gave only + Asia's start for Sanctuary of Ink, and the per-version page changes URL every patch. A start-only + event cannot say when the pass ends, which is this feature's whole point, so it waits (TODO.md). + The Protocol Pass page's own words are "Protocol Pass: Ink Scroll is now available until the end + of this version" (its changelog), not the wording quoted above. + +The ZZZ wiki's `robots.txt` answers our client with Fandom's challenge; the owner read it in a +browser on 2026-10-16 (standard Fandom file), recorded in the source's comment. + ## Shape in code Parsers are keyed by site template (AGENTS.md § Working on parsers). Two new templates: