Repository navigation
Conversation
Every position, size and style index comes from specs/t27f/reel.t27 (gHashTag/t27 PR #9982): its bodies run as wasm/reel.wasm, built from the generated Zig plus a 38-line export shim, and its constants are the generated wasm/reel.mjs. server.mjs only writes polygons and labels to an SVG file and returns the path, which the Claude Code desktop app opens in its Browser pane. Hand glue: wasm/export.zig 38 lines, server.mjs 40 added lines (one of them the changed tools/call line that passes string results through) -- 78 in all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary by t27-beesThis PR adds Worth a look
Read: 25 files, +1765 -2, the whole diff up to 60000 characters (the rest was not read). Head |
The default look is now a deck slide from specs/t27f/deck.t27: a cover, stage or split layout by scene kind, regions, type sizes, palette and card opacity all from the spec, with the map placed by slide_x/slide_y. look 0 keeps the plain map. wasm/t27f.wasm now carries reel and deck bodies; export.zig handles two modules and five parameters. WIP: split stills wait on a deck.t27 answer for card_alpha at the still frame (it is 0 there). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
deck.t27 (gHashTag/t27 PR #9992) adds STILL_CARD_ALPHA: a still is the last frame of its scene, where card_alpha is 0, so a still drawn with card_alpha showed no card. A scene still now uses STILL_CARD_ALPHA; an exact frame keeps card_alpha. deck.zig and deck.mjs regenerated on the Railway lab (15/15 deck tests, 0 vacuous); t27f.wasm is byte-identical (the change is a constant). Adds deck renders and pane screenshots under docs/t27f_view/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Regenerated wasm/deck.zig, deck.mjs and t27f.wasm from deck.t27 at gHashTag/t27#10036: BACKDROP 0x000000, both aurora strengths 0. Only those three constants differ in deck.mjs; reel.* byte-identical. Built on the Railway lab (t27c 0.5.2, zig 0.16.0), sha256 in wasm/BUILD. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Merged on the owner's explicit instruction of 2026-10-18 (translated): "merge it yourself, autonomously -- I allow everything". For the record: this stack adds hand-written non-t27 code, all of it drawing glue -- |
t27f_view: presentation slides by default (T27fDeck)
Summary
This PR adds a new tool,
t27f_view. It draws a still of the T27F demo reel as an SVG file and returns the file's absolute path, plus a one-line summary, as plain text. The Claude Code desktop app opens that path in its Browser pane. A terminal client gets the same path and opens the file itself. MCP Apps UI resources are not used, because the terminal CLI does not render them.All the geometry comes from the spec. Cell positions, hexagon corners, the camera at frame f, the screen mapping per preset, the cell style from lesson status, the scene names and the channel per host are all taken from
specs/t27f/reel.t27(gHashTag/t27 PR gHashTag/t27#9982, issue gHashTag/t27#9965). They reach JS in two ways:wasm/reel.wasm. It is built from the Zig thatt27c genemits, pluswasm/export.zig. That shim knows no spec function and holds no number: it exports every scalarpub fnunder its own name.wasm/reel.mjs, which is thegen-jsoutput.wasm/BUILDrecords the commands, the compiler and zig versions, and the sha256 of every file.The only numbers in
server.mjsare presentation: the colour palette indexed bySTYLE_*, the stroke widths, and the label font size.Hand glue (gate #7371)
wasm/export.zigserver.mjstools/callline so that string results pass through unwrappedwasm/reel.zig,wasm/reel.mjsandwasm/reel.wasmare generated.wasm/BUILD, the README row and thedocs/t27f_view/images are prose and data.Opened in the desktop pane
Calling
t27f_viewwith a status per cell, and otherwise defaults (scene 2 = focus, frame 224, wide preset), returned:The Browser pane in the Claude Code desktop app opened that
file://path. Its page tools cannot screenshot afile://tab, so the screenshots below are the same pane showing the same files served from127.0.0.1.Focus still, frame 224: cell 10 sits at the frame centre (640, 360), as the spec's test asserts.
Overview still, frame 59: every cell fits the frame, which is the spec's
overview_still_fits_every_frame.The raw SVGs are in
docs/t27f_view/.Checks run
tools/listlistst27f_view.out;Not done
smoke.mjsfort27f_view.🤖 Generated with Claude Code