@stage5/lumine 0.3.68 → 0.3.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1186,6 +1186,7 @@ lumine admin report serve --file <dir>/daily-management-report.md [--port <n>] [
1186
1186
  ```
1187
1187
 
1188
1188
  These compose the documented commands in this contract, running them as child processes, so every scope check, audit and pagination rule applies unchanged.
1189
+ - **Arena members waiting for papers come first.** `arena paper-queue --cursor <member-id> --limit <1-100> --json` lists members blocked by the lack of a fresh complete published paper, using the member-facing pass/retry and solo-mastery rules. Follow every `nextCursor`, including after an empty page; require `demandBasis: waiting-published-papers-v1`. Group all pages by exam/difficulty and prioritize these waiting members before generic unseen-question depth. Failed ordinary papers remain retryable; open/pending-marking sittings are not publication waits. Ten successful distinct Full Hard clears, with Zero/Ciel allowed, are needed between solo mastery attempts. The pass and full-marks 20× XP/Coins rewards are separately reserved, each once. Publish complete independently reviewed papers and verify the same members can advance. `gather` collects this queue first as `arena-paper-queue-N.json`, with `paperQueue.complete/pages/waitingTracks`; missing/malformed/partial coverage must not be reported as an empty healthy queue. Use the workspace CLI until npm publication is verified. This step grants no new authoring spend or publication authority.
1189
1190
  - **`gather`** saves its fixed set of read-only reports into `<dir>`, including the canonical published Math Lab queue in `math-lab-queue.json` and all types of pending Build review requests in `build-reviews-N.json`. Build reviews follow `nextCursor` to exhaustion; `gather.json` → `buildReviews` records `complete`, attempted `pages` and collected `items`. A failed/malformed page, cursor loop or 100-page bound reports incomplete coverage, never an empty healthy queue. Read the current collection once; it replaces the rewards-only list. Older packages without `buildReviews` need a separate `review list --status pending` collection through cursor exhaustion. Previous queue receipts remain on disk as history but do not become current evidence or duplicate reading duties after a new gather. It is not the complete daily checklist: app refills/usage, individual review assessments, sponsor integrity and other duties need their own steps. Repository agents follow the current full-run coverage index in `agent-guides/lumine-admin.md`. It follows `bot-output` to exhaustion and renders `bot-chats.txt`, then lists any failed step in `gather.json`. Total/per-step `durationMs`, attempts and recovered reads make recurring slow or failing collection steps visible during the daily review. It also creates `review-state.json`: collection never acknowledges reading. Children bypass update checks, require matching fresh stdout/file receipts, and retry an unconfirmed opted-in read at most once. Mutations never auto-retry. It needs the active run for run-scoped reads.
1190
1191
  - **`progress`** reads local review state and explicit operator acknowledgments, writes private `progress.json`, and keeps reading, canonical effort mutations, the run lease, and browser checks separate. `collectionFailures` includes failures without a page file, such as a cursor loop; acknowledging the available files cannot make an incomplete collection complete. A fresh successful gather clears those failures. Add all required duties for the actual run scope and its carryovers; collection alone is not a full review. A completed run lease cannot complete a pending duty. Reading acknowledgments bind to the current file bytes and are operator attestations, not proof of comprehension.
1191
1192
  - **`featured candidates`** returns Subjects posted after the Bangkok-midnight cutoff that are off the board and provably never Featured. Each one comes with its human/bot comment counts, explicit comment truncation/completeness, and whether Mikey has viewed it. Counts from truncated context are partial. An unavailable Subject context fails the collection. Eligibility only: ranking stays editorial.
@@ -1880,6 +1881,10 @@ and seeding coverage for steps 1-3 once the app is approved.
1880
1881
  decisions. The old Math Studio steps 1–3 / 20-per-run recipe is historical,
1881
1882
  not current authorization.
1882
1883
 
1884
+ ### Game diagnostic delivery
1885
+
1886
+ For retained game delivery evidence, `lumine admin game-diagnostics summarize --file <envelope.json> --json` is local-only and requires no login. The envelope is `{buildId,topic,entries,coverage:{complete,since,until}}`; keep the canonical sharedDb `id`, `userId`, `topicId` and parsed `data` on every row. The command deduplicates stable event/batch IDs within their canonical user/topic/artifact scope, flags conflicting copies, and reports legacy/unknown-version coverage. Raw evidence is still required for judgment. Cumulative delivery snapshots are not summed; server collection completeness does not prove complete client delivery. The reviewed October28 producers and CLI are not live until their release receipts confirm them. See `work/games-followup-20261028/` and the repository's daily guide.
1887
+
1883
1888
  ### Reward activity report (standing duty, every full daily review; added 2026-09-12)
1884
1889
 
1885
1890
  Also inspect failed or unconfirmed payouts with `lumine admin reward-diagnostics --days 1 --json`.
@@ -3155,6 +3160,46 @@ type PostSkip = Success<{
3155
3160
 
3156
3161
  ## Twinkle Newspaper
3157
3162
 
3163
+ **Daily website-code update article (Mikey, 2026-10-28):** before claiming an
3164
+ edition, the duty bot (Zero/Ciel) publishes a real Subject at reward/effort level
3165
+ **2** about member-relevant website code changes shipped since the previous
3166
+ paper. Check Git/push history against successful production deployments and the
3167
+ actual live revision, then explain the useful changes in plain language; a push
3168
+ or a proposed fix is not a release. This is website development news, not a
3169
+ roundup of member posts or internal tooling. Cite that Subject's actual event
3170
+ from the claim digest and include the linked article on every front page; use
3171
+ it as the lead only when its significance warrants it. Verify author, level,
3172
+ source link and printed placement, and avoid duplicate posts or repeated release
3173
+ coverage. If no relevant changes shipped, say so briefly without inventing news.
3174
+ The standing instruction authorizes this scoped post and coverage; it grants no
3175
+ unrelated release authority. Keep release evidence and private diagnostics out
3176
+ of the public article. Follow the repository's daily website-code update
3177
+ procedure and the existing dated-revision contract for an approved correction.
3178
+
3179
+ Use the scoped posting command after composing and reviewing the article:
3180
+
3181
+ ```bash
3182
+ lumine admin subject post-update --file article.json --json
3183
+ lumine admin subject post-update --file article.json --confirm --json
3184
+ ```
3185
+
3186
+ The first command is a read-only preview. The second publishes as the selected
3187
+ run's duty bot at level 2; `newspaper` or `full` run scope is required. The file
3188
+ contains `title`, `description`, `coverageStart` and `coverageEnd` (Unix seconds),
3189
+ and `releaseEvidence`: an array of `{repository, commit, deployedAt, summary}`.
3190
+ Use full Git commit hashes and verified deployment times inside the completed
3191
+ coverage interval. The evidence stays private; put only useful member-facing
3192
+ information in the article. An empty evidence array is allowed when no relevant
3193
+ changes shipped, and the article should say that briefly. The command does not
3194
+ independently verify GitHub/Vercel receipts: the operator must do that first.
3195
+
3196
+ One canonical article is permitted per scheduled editorial day. An identical
3197
+ retry returns its existing Subject instead of notifying members again; a
3198
+ changed payload, changed duty bot or edited/deleted post requires inspection
3199
+ and is not silently overwritten or recreated. Preview reports any existing
3200
+ Subject. The already-published October28 article is reserved as a legacy post;
3201
+ reuse Subject37265 rather than trying to republish it with this new command.
3202
+
3158
3203
  **Audience (Mikey, 2026-09-15): children and young Twinkle users aged 10–15.**
3159
3204
  Choose and write stories for what these readers would voluntarily spend time
3160
3205
  reading. Before selecting a story, identify its appeal to them: curiosity,
@@ -5467,6 +5512,10 @@ Legacy aliases such as `subjects list`, `subjects get`, `subjects featured`,
5467
5512
  `comments get`, and `recommend` remain accepted, but the singular command forms
5468
5513
  shown above are the canonical interface.
5469
5514
 
5515
+ For bounded case evidence, use `lumine admin jev-routing review --since <UTC-day> --until <next-UTC-day> --json` and follow every cursor, or `--all --checkpoint <persistent-file>`. Daily gather retains every20-event source page for the preceding complete UTC day. The reader covers paired disagreements and Auto fallbacks once per event; synthetic traffic is excluded unless `--include-synthetic` is explicit. It returns only currently unexpired frozen input and labels absent/expired input. A missing endpoint is unavailable coverage, not an empty healthy day. Collection never acknowledges reading or proves classification accuracy. This October28 reader and independent Auto-input capture are local until the matching release is verified.
5516
+
5517
+ Before calling a reply unrelated, check its original generation trigger and the bounded `askedAbout` descriptor. A member may have edited the visible turn or asked about linked content. The descriptor explicitly represents current stored metadata, not a separately frozen generation snapshot; never bypass deleted context.
5518
+
5470
5519
  Read `jevRoutingShadow` alongside `jevPilot` in both the admin brief and full
5471
5520
  daily report. The September 21 primary-chat experiment is historical: chat
5472
5521
  routing is off by default and served-route audits were retired September 23.