Repository navigation
widgets: native pages in .t27 -- html writer, json reader, jtag-verdict and race-the-bee - #10965
Merged
Merged
Conversation
…ols carry 22833 hand lines, 2775 of them pure logic (Closes #10938) specs/widgets/catalog.t27 pins the census measured at trinity origin/main. specs/t27f/widget_factory.t27 states six stages, the t27c-seal build key and the port gate. specs/t27f/frontend.t27 registers SF_WIDGET_FACTORY. Epic #10937. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…les and page in one .t27, a 9269-byte wasm, 3015 DOM comparisons against tool.js, 0 differences (Closes #10938) specs/widgets/jtag_verdict.t27 holds the trinity spec's words and a native page (w_init, w_input, w_click, w_hash, w_render, w_hash_out); html_out.t27 becomes a stateless writer (a pub var does not cross a use). catalog.t27 records gatle at PORT_LOGIC and jtag-verdict at PORT_DRAW. Epic #10937. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…idget data files match JSON.parse except 6 numbers of 16-17 digits; html_out gains named fill (Closes #10938) json_scan.t27 gives spans of values (obj_get, arr_at, str_byte with UTF-8 decoding, num_f64) so a native view needs no tree. html_out.t27 gets fill_named and dec_to. Epic #10937. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…m, 59 DOM comparisons including 13 data variants, 0 differences (Closes #10938) specs/widgets/race_the_bee.t27: the trinity spec's words plus the page (tabs, snapshot, lanes, head to head, open issues) over json_scan spans; catalog.t27 records it at PORT_DRAW. Epic #10937. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…isons vs treemap.js, 0 mismatches (Closes #10938) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…sons vs lut.js, 0 mismatches (Closes #10938) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… vs ltpparse.js, 0 mismatches (Closes #10938) specs/widgets/lut_depth_logic.t27 ports every function of apps/website/public/widgets/lut-depth/ltpparse.js (parseLtp, classOf, bare; listsOf is only a renaming of the spec constants and is left to the glue). Built to wasm (4430 bytes with a thin C-ABI wrapper) and compared field by field with the original JavaScript on the shipped sample, its prefixes and variants, mutations and grammar fuzz: 0 mismatches; a negative control (class_of min -> max) gives 2838. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… vs statparse.js, 0 mismatches (Closes #10938) specs/widgets/stat_card_logic.t27 ports parseStat (with a strict JSON.parse reader and the JS object rules it leaned on: duplicate keys, key order, Number() of counts, the module expansion of flatten) and badgeSvg. listsOf is a renaming of spec constants and is left to the glue. Cases the port does not carry (string/array counts, numbers not exactly rounded here, lone surrogates, integer-like or Object.prototype type names) answer status 9, listed in the header. Built to wasm (13741 bytes with a thin C-ABI wrapper) and compared field by field with the original JavaScript: 0 mismatches; a negative control (group priority reversed) gives 2469. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…sons vs skyline.js, 0 mismatches (Closes #10938) specs/widgets/fasm_skyline_logic.t27 ports every export of apps/website/public/widgets/fasm-skyline/skyline.js: parseFasm, decodeGrid (split into grid_* calls the glue makes from grid.json, plus grid_lookup and grid_at), familyOf and summarize. Built to wasm (8390 bytes with a thin C-ABI wrapper) and compared with the original JavaScript on the real grid.json (every cell, every sample tile name, 60000 random names), FASM texts built from the two shipped samples, line-grammar fuzz, 6000 random small grids and random family lists: 0 mismatches; a negative control (zero test of a constant reversed) gives 6165. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…epth, stat-card, fasm-skyline, lut-treemap, lut-explain (Closes #10960)
…catalog-3e2d7f # Conflicts: # specs/t27f/widget_factory.t27 # specs/widgets/catalog.t27
This was referenced Oct 19, 2026
Contributor
gHashTag
enabled auto-merge (squash)
October 19, 2026 09:37
gHashTag
added a commit
that referenced
this pull request
Oct 19, 2026
…berate (Closes #11013) (#11014) Master was red on duplicate-bodies since b92f6f1 (#10965): digits_val, ws_at, ws_back, ws_before, ws_fwd, ws_len_at and ws_len_before each exist twice across the widget logic ports (lut_explain/lut_treemap, fasm_skyline/stat_card/lut_depth). The earlier hex_digit copy named in the first brief was already removed by #10296. Each widget logic spec compiles to its own wasm module with module-level state, so a cross-module use is a design change that belongs to the widget epic (#10937), not to a red-master fix. The copies are recorded with python3 tools/dupe_scan.py --bless, run on the Railway lab: exactly seven lines added, dupe_scan exits 0 after, and a new duplicate still fails. Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #10960. Epic #10937.
The stage "page" of the widget factory: html_out.t27 (stateless HTML writer), json_scan.t27 (JSON as byte spans, 284965 values of the widgets' 143 data files against JSON.parse, 6 known last-digit float differences), and two tools drawn natively from
.t27to wasm: jtag_verdict.t27 (3015 DOM comparisons against tool.js, 0 differences) and race_the_bee.t27 (59 comparisons including 13 data variants, 0 differences). Also gatle_rule.t27 (866178 comparisons against rule.js, 0 mismatches) and the logic stage's route (wasm throught27c genand zig, since gen-js lowers no bodies, #10943). catalog.t27 records gatle at PORT_LOGIC and jtag-verdict and race-the-bee at PORT_DRAW.Measured with t27c 0.5.2
test-reportand t27btest. Not claimed: the pages in gHashTag/trinity still load the hand-written files until that repo's migration PR; the shared host (32 lines of glue) lives outside this repo.🤖 Generated with Claude Code