Repository navigation
spec(claw): preview -- the T27F preview deployment of a PR as law (Closes #10282) - #10287
Merged
Merged
Conversation
…oses #10282) Environment name per PR, queued/in_progress/success/failure/inactive machine, supersede retires older deployments, only a probed success carries a URL that pins the head sha. 18 tests, 0 vacuous on the Railway lab. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
gHashTag
enabled auto-merge (squash)
October 18, 2026 07:34
This was referenced Oct 18, 2026
Merged
Contributor
This was referenced Oct 18, 2026
gHashTag
added a commit
that referenced
this pull request
Oct 18, 2026
…ticle engine on glossy black (Closes #10305) (#10308) The owner asked for a glossy black background, no honeycomb, and a picture generated by a physical particle engine. reel_particles.t27 computes every pixel: 27 lesson particles on damped 3D springs into a 9x3 grid (lit or draft from reel_t27_basics.STATUS), 72 dust particles on softened Kepler orbits under velocity Verlet, a glossy floor with mirrored reflections, key light, vignette, tone roll-off and LCG grain. main streams 450 raw RGB24 frames to stderr. reel_particles_mux.t27 prints the ffmpeg filter graph (captions, voice, music, limiter) from owner_voice_reel.t27, which PR #10287 deleted by accident and this commit restores. Lab: 18/18, 6/6 and 8/8 tests, 0 vacuous; the reel measures 15.000 s, 450 frames, 1080x1920, -14.1 LUFS. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
added a commit
that referenced
this pull request
Oct 18, 2026
…10288 (Closes #10311) (#10312) duplicate-bodies has been red on master since the claw specs landed without moving the ledger. Each new group and why it stays for now: - buf_has, digit_byte, put_count, put_str (gates.t27 + sarif.t27, #10288): deliberate. sarif.t27 says so in its header: the writers are private in gates.t27 and sarif.t27 must lower alone under gen-c. - bytes_eq 2 -> 3 (`same` in sarif_pins.t27, #10288): the test-only pins companion compares strings by .len, which gen-c cannot lower. - str_eq (gates.t27 + suggest.t27, #10286) and has_prefix (service.t27 #10283, starts_with in preview.t27 #10287): same lower-alone constraint; sharing them into one claw helper module is a follow-up, not this commit. The ledger is `python3 tools/dupe_scan.py --bless` output on master 238b6a9, run on the Railway lab; the gate exits 0 after it. Not hand-edited. Co-authored-by: Claude Opus 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 #10282
Lane
t27f-previewofspecs/claw/github_surface.t27(#10277, epic #9271): the law of a "T27F preview" deployment per pull request. One new file,specs/claw/preview.t27; no workflow, no generated file.What the law says
.t27file underspecs/(wants_preview,spec_paths_in). Fork heads and docs-only PRs get nothing. The caller lists only added, modified and renamed files, since a deleted spec has no bytes to draw.t27f-preview-pr-<n>(env_name_ok), one environment per PR so every commit's deployment groups on the PR page.next_state). Illegal moves returnS_NONE; inactive is final; a retire (supersede or close) is legal from every live state, exactly once.supersedes).environment_url, and only after the URL answered HTTP 200 (status_ok). The URL must behttps://t27.ai/t27f/graph/?withrepo=, a 40-hexsha=andpath=specs/...(url_ok): a branch name would drift under the check, so it is refused.The renderer is the existing T27F graph page (
spec_graph_export.t27+spec_graph_view.t27as wasm). Nothing new is drawn.Evidence (Railway lab,
t27cat /root/t27/target/release/t27c)spec-status: IMPLEMENTED.test-report: 18 tests, 18 pass, 0 FAIL, 0 vacuous (every test executes runtime asserts; 113 in total). The tests carry the negative cases: wrong digit, 39 / 41 hex, upper-case hex, branch name as sha, 404 probe, URL on a non-success state, illegal transitions, inactive as a sink.Not wired yet -- exact blockers
https://t27.ai/t27f/graph/(trinityapps/website/public/t27f/graph/graph.js, 8 lines) offers a fixed<select>of nine vendored specs and reads no query string. A preview of a PR's spec needs?repo=&sha=&path=support (fetch fromraw.githubusercontent.com, which answersaccess-control-allow-origin: *). That is a small edit to an existing foreign file in gHashTag/trinity. Publishing the URL before that lands would publish a URL that does not show the spec.spec_graph_export.t27is already at 1024 / 4096 in t27. Today a spec over those caps (three of the nine vendored ones already) draws "over the cap: refused". Re-vendoring the wasm (T27F hot loop: rebuild the exporter wasm only when its sealed inputs changed #10229 pipeline) fixes it.deployments: write+contents: read) and callsPOST /deploymentsand/deployments/{id}/statusesis a new workflow file: a new foreign file, which needs the owner'sowner-approved-foreignlabel, plus a row inspecs/claw/gates.t27. Not attempted.github_surface.use claw::github_surfacenext touse claw::recipesbreakst27c gen(an inlined module'srecipes::str_eqcalls are not rewritten:use of undeclared identifier 'recipes'). The rowt27f-preview=deploymentswrite is therefore recorded in comments, not asserted. To be filed on epic: self-host t27c -- rewrite the compiler from Rust into t27 #5980 with a minimal repro.Criteria
t27c spec-statusIMPLEMENTED,test-report0 FAIL, 0 vacuous, on the Railway lab.str_eqreused fromclaw::recipes;starts_with/ends_withare the only new helpers.🤖 Generated with Claude Code