queue: Q64 PROGRESS 2026-10-20 18:25Z -- four defects reported across three briefs, fixed and re-verified at deploy in the leathermint lane (item stays OPEN: the zoomed-vs-whole-shop question is still Alexander's). (1) '30/30 tests pass' is now structurally true: root cause was a hand-written tick bound -- belt searchMs 22000 with jitter 0.45 allows a 31,900 ms buyer while the test advanced 30,000, a ~30% failure rate; cardholder was latently wrong the same way (20,250 > 20,000). Fixed with a worstSearch(id) helper derived from PRODUCTS[id].searchMs * (1 + searchJitter) so a balance change cannot silently re-break the suite; 24 consecutive runs 0 failed, 12 more at commit time 0 failed. (2) Emoji: there were FOUR, not two -- craft-done, sale, order-offered, order-shipped -- all removed; grep count 0 and DOM text scan 'none'. (3) ambient.wav (264,644 B, serving 200, referenced by nothing) now loads on the first gesture, loops at 0.16 gain, and exposes window.__ambientOn so the claim is checkable: undefined before the tap, true after. (4) /journal/ 404 for three briefs now 200/10,182 B rendered from DEVLOG.md, linked from the game page and verified tappable at 390x844 (rect [10,811,99,27], z-index 40, elementFromPoint returns the link). The DEVLOG paragraph claiming token counts are not exposed was false -- the run ledger records total_tokens and duration_ms -- replaced with measured 2026-10-20 totals: 76 runs / 16 jobs / 99,442,062 tokens / 8.85 h summed wall clock; per-row token attribution stated as impossible rather than faked, no dollar figure asserted. Economy re-driven after the edits: 00/3 leather -> make -> inventory 1 -> list -> cash 145, cardholders 0. Served: / 200/23,090 B, engine 31,088 B, sim.test.js 10,872 B, ambient 264,644 B, /journal/ 200, DEVLOG 6,603 B; no scroll at 390x844. STILL OPEN: room fills about a third of the phone height with dead space above and below (spec 11/12), plus 7, 9, 13. No leathermint repo exists on the forge, so this ledger and the served paths are the receipt.
This commit is contained in:
1 parent
5b7a094e93
commit
b2733263b0
2 files changed
+23
-9
No files matched your search
@@ -10318,3 +10318,17 @@ Artifact: `/root/.hermes/wizard-outputs/volt/2026-10-18-index-stale/` (`REPORT.m
|
||||
**Distance to L' Artisan's milestone 1, stated so it is not mistaken for done:** JavaScript in one file with a vendored UMD Phaser — **not** TypeScript + Vite; stations are procedural vector blocks, **not** chibi sprite art; **no** day clock, order queue, furniture progression, reputation or photo-trading. The palette (gold `#c3a15f`, beige `#f4efe6`, dark green `#1f2c25`) and the "no cartoon/neon/floating numbers/cluttered dashboards" exclusions are honoured.
|
||||
|
||||
**Status: OPEN — awaiting Alexander's zoom/whole-shop answer; build is the pipe's.** Evidence paths: `/var/www/leathermint/v2/index.html` (+ `phaser.min.js`), ledger commit `58e7eaa` (15:25:39Z) holding the verification record; queue index re-rendered in that same commit. No issue, PR, release or deploy surface beyond this static path; no secret printed.
|
||||
|
||||
|
||||
**Q64 progress 2026-10-20 18:25Z — four defects that had been reported across three briefs and never fixed, now fixed and re-verified at deploy, in the leathermint lane.** (Ledger's true last line at `5b7a094` read immediately before this append; guard run and index re-rendered in the same commit.)
|
||||
|
||||
Not closed: Q64's design question (zoomed worktable vs whole workshop) is still Alexander's. This records that the *defect* class is drained, not the item.
|
||||
|
||||
1. **The "30/30 tests pass" claim is now structurally true instead of a coin flip.** Root cause was a hand-written tick bound, not the game: `belt` has `searchMs 22000` with `searchJitter 0.45`, so a buyer can arrive at **31,900 ms** while the test advanced only **30,000 ms** — a ~30% failure rate on one test (`belt sale pays $140…`, `880 !== 1020`). `cardholder` was latently wrong the same way (`15000 × 1.35 = 20,250 > 20,000`). Fix is not a bigger magic number: a `worstSearch(id)` helper derives the window from `PRODUCTS[id].searchMs × (1 + searchJitter)`, so a balance change can never silently re-break the suite. **Verified: 24 consecutive runs, 0 failed, 30 passed / 0 failed / 30 total**, then 12 more at commit time, 0 failed.
|
||||
2. **Emoji are gone — there were four, not two.** `index.html:187–190` carried `✨` (craft done), `💸` (sale), `📥` (order offered) and `📦` (order shipped) against Alexander's explicit no-emoji directive. All four removed; `grep -cP '[\x{1F300}-\x{1FAFF}\x{2728}]'` → **0**; browser DOM text scan → **none**.
|
||||
3. **The ambient track is wired, not just deployed.** `iso/audio/ambient.wav` (264,644 B) was serving 200 and referenced by nothing. It now loads on the first real pointer gesture (autoplay policy), plays looped through a 0.16 gain node, and exposes `window.__ambientOn` so the claim is checkable rather than asserted. **Verified in a browser: `undefined` before the tap, `true` after.**
|
||||
4. **The journal is published, linked, and its cost claim is corrected.** `/journal/` returned **404** for three briefs; it now serves **200 / 10,182 B**, rendered from `DEVLOG.md` (the source of truth), and the game page carries a `dev journal` link — verified on a 390×844 viewport as `rect [10, 811, 99, 27]`, `z-index 40`, and `elementFromPoint` at its centre returning the link itself, i.e. genuinely tappable and on top rather than merely present in the DOM. The DEVLOG's "I do not have per-call token counts exposed" paragraph was **false** — `/root/.hermes/cron/usage_audit.jsonl` records `total_tokens` and `duration_ms` per run — and is replaced with measured totals for 2026-10-20: **76 runs / 16 distinct jobs / 99,442,062 tokens / 8.85 h summed wall clock / models deepseek-flash + deepseek-v4-pro**. Per-row token attribution is stated as impossible from that ledger rather than faked, and no dollar figure is asserted, because the backend is fixed-cost self-hosted.
|
||||
|
||||
**Economy unchanged and re-driven end to end after the edits:** start `$100 / 3 leather`; `make('cardholder')` ok → `tick` → `inventory.cardholder 1`; `list` ok → sale → **cash 145**, cardholders 0. Served after deploy: `/` **200 / 23,090 B**, `/iso/engine.js` 200 / 31,088 B, `/iso/sim.test.js` 200 / 10,872 B, `/iso/audio/ambient.wav` 200 / 264,644 B, `/journal/` 200, `/DEVLOG.md` 200 / 6,603 B. No page scroll at 390×844.
|
||||
|
||||
**What this does not fix, and should be the next pass:** the iso room occupies roughly a third of the phone's height with dead space above and below — the screen-composition complaint (§11) and the mobile pass (§12) he named are still open, along with §7 (leather-buying interface), §9 (HUD restraint) and §13 (coherence sweep). No issue/PR/release surface for this build exists (no `leathermint` repo on the forge); the receipt is this ledger plus the served paths. No secret printed.
|
||||
+9
-9
@@ -56,7 +56,7 @@
|
||||
| 46 | Q44 | 6162-6705 | 88496 | opening | The pin class: redirect every constant composed from the live data root, not only `SNAPSHOT_PATH` *(Helm lane; opened 2026-10-12 by the pipe, per Q43's own closing sentence — "extend the redirect … | DONE 2026-10-12 — `recoveries/helm-root-redirect.md` (Merlin, Helm lane); the closure block is at the foot |
|
||||
| 47 | Q48 | 6706-6825 | 15123 | opening | The runtime-resolution redirect: close the class Q45's literals cannot see | DONE 2026-10-13 — `recoveries/helm-runtime-redirect.md` (Merlin, Helm lane), scratch tree |
|
||||
| 48 | Q49 | 6826-7593 | 92050 | opening | The runtime-resolved root's live write path: name it, reproduce it, then close it | open and unclaimed. Opened by the pipe 2026-10-13 |
|
||||
| 49 | Q45 | 7594-10320 | 468233 | opening | §9 follow-on — the home-directory channel *(Helm lane; Merlin)* | OPEN — awaiting Alexander's zoom/whole-shop answer; build is the pipe's. |
|
||||
| 49 | Q45 | 7594-10334 | 472073 | opening | §9 follow-on — the home-directory channel *(Helm lane; Merlin)* | OPEN — awaiting Alexander's zoom/whole-shop answer; build is the pipe's. |
|
||||
|
||||
## Ids with no `## ` heading
|
||||
|
||||
@@ -73,7 +73,7 @@ Opened as records inside another section. `line` is the record's own opening lin
|
||||
| Q52 | 7167 | 7167 | 90 | Q49 | BULLET+BOLD | BOLD-LEAD |
|
||||
| Q53 | 7292 | 7246 | 140 | Q49 | BULLET+BOLD | BOLD-LEAD |
|
||||
| Q63 | 9918 | 9909 | 17 | Q45 | BULLET+BOLD | BOLD-LEAD |
|
||||
| Q64 | 10308 | 10308 | 1 | Q45 | BULLET+BOLD | BOLD-LEAD |
|
||||
| Q64 | 10308 | 10308 | 3 | Q45 | BULLET+BOLD | BOLD-LEAD |
|
||||
|
||||
**Not in this document.** Ids the prose corpus names that the queue has never mentioned (`checkins/`, `replies/`, `recoveries/`, `audits/`, `docs/`, the top-level documents; `tools/` excluded). That set moves with the prose, not with the queue, so embedding it here would make `--check` go RED for a reason that has nothing to do with the queue being current. It is reported on demand: `python3 tools/queue_index.py --outside`.
|
||||
|
||||
@@ -236,7 +236,7 @@ The block below is the parse this document renders, byte for byte. `--check` com
|
||||
"form": "BOLD-LEAD",
|
||||
"id": "Q64",
|
||||
"line": 10308,
|
||||
"refs": 1,
|
||||
"refs": 3,
|
||||
"section": "Q45",
|
||||
"shape": "BULLET+BOLD"
|
||||
}
|
||||
@@ -246,9 +246,9 @@ The block below is the parse this document renders, byte for byte. `--check` com
|
||||
"end_line": 8,
|
||||
"line": 1
|
||||
},
|
||||
"queue_bytes": 1360494,
|
||||
"queue_lines": 10320,
|
||||
"queue_sha256": "936e76bb29c0eb1d60524b6cb1617fddfed7a790de17cca3a56f7427d7f02fe5",
|
||||
"queue_bytes": 1364334,
|
||||
"queue_lines": 10334,
|
||||
"queue_sha256": "f8c4f18be5f44c915f06cdbcc78023289461ae54230e7ac02eb776ab0b748460",
|
||||
"sections": [
|
||||
{
|
||||
"bytes": 3139,
|
||||
@@ -827,11 +827,11 @@ The block below is the parse this document renders, byte for byte. `--check` com
|
||||
"title": "The runtime-resolved root's live write path: name it, reproduce it, then close it"
|
||||
},
|
||||
{
|
||||
"bytes": 468233,
|
||||
"end_line": 10320,
|
||||
"bytes": 472073,
|
||||
"end_line": 10334,
|
||||
"id": "Q45",
|
||||
"line": 7594,
|
||||
"lines": 2727,
|
||||
"lines": 2741,
|
||||
"role": "opening",
|
||||
"role_detail": "",
|
||||
"status": "OPEN \u2014 awaiting Alexander's zoom/whole-shop answer; build is the pipe's.",
|
||||
|
||||
Reference in new issue
Block a user