@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.
- package/lib/admin-arena.js +33 -4
- package/lib/admin-build-plans.js +8 -2
- package/lib/admin-daily-collection.js +88 -0
- package/lib/admin-daily.js +152 -25
- package/lib/admin-diagnostic-collection.js +106 -0
- package/lib/admin-duties.js +14 -1
- package/lib/admin-jev-review.js +76 -0
- package/lib/admin-owner-trace.js +11 -2
- package/lib/admin.js +65 -4
- package/lib/commands.js +14 -2
- package/lib/game-diagnostic-summary.js +204 -0
- package/package.json +1 -1
- package/sdk/LUMINE_ADMIN.md +49 -0
package/sdk/LUMINE_ADMIN.md
CHANGED
|
@@ -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.
|