Skip to content

t27f: post_caption, the social-pack card, factory options, cover at a scene (Closes #10916 #10917 #11027 #11028) - #11668

Merged
gHashTag merged 1 commit into
masterfrom
rel-11038-closure
Oct 22, 2026
Merged

gHashTag merged 1 commit into
masterfrom
rel-11038-closure

Conversation

@gHashTag

Copy link
Copy Markdown
Collaborator

Four spec-only changes from the T27F / gen-UI map (#11038). Each carries its own tests and seal; nothing else is touched.

What

Spec Change Issue
specs/t27f/post_caption.t27 new -- does a caption fit its channel: X 280 with every link weighed as 23, Telegram 1024, Instagram 2200, and the house hashtag caps X 2 / Telegram 3 / Instagram 5. An unknown channel answers 0/false, never a guess Closes #10916
specs/skills/t27-social-pack.t27 new card t27/social-pack -- one idea to a post in six steps, the last being the owner's explicit yes; names the five sibling cards and marks the cover still and the caption rule pending Closes #10917
specs/skills/t27-idea-factory.t27 names PRESET_AUTO (255), the four pre-flight codes with MAX_S (60 s) and COVER_FLAG (COVER=1); SUMMARY_EN and a new factory_options test Closes #11027
specs/t27f/idea_factory.t27 cover_frame_at(t, s) picks the cover scene, clamped to the reel; cover_frame(t) is cover_frame_at(t, 0), byte-identical for every idea Closes #11028

docs/reports/t27b_expectations.json gains the two new rows in sorted order; max_not_pass stays 131.

Evidence (local, t27c 0.5.2)

  • t27c test-report -- 0 FAIL, 0 vacuous: post_caption 5/5, social-pack 1/1, t27-idea-factory 3/3, idea_factory 19/19 (the new cover_at block asserts 71, 143, the clamped last frame, and a negative index equal to scene 0).
  • t27c seal --save on all four; t27c seal --verify -- all hashes MATCH.
  • t27c dupes --name for each new function -- found only in these files.
  • Local hooks green: own-language, foreign-budget, secret-gate.

Not claimed

post_caption counts ASCII bytes; Cyrillic is out of scope (a byte and a character count differ there). The card is spec-only (no SKILL.md); the site reads it through the vendored compiler.

…ns, cover at a scene

Four spec-only changes from the T27F / gen-UI map (#11038), each with its tests and seal.

- specs/t27f/post_caption.t27 (new): X 280 with each link weighed as 23, Telegram 1024,
  Instagram 2200 and the house hashtag caps (X 2, Telegram 3, Instagram 5); an unknown
  channel answers 0 or false, never a guess. Closes #10916
- specs/skills/t27-social-pack.t27 (new): one idea to a post in six steps, the last being the
  owner's explicit yes; names the five sibling cards and marks the cover still and the caption
  rule pending. Closes #10917
- specs/skills/t27-idea-factory.t27: name PRESET_AUTO (255), the four pre-flight codes with
  MAX_S (60 s) and COVER_FLAG ("COVER=1"); SUMMARY_EN and a new factory_options test.
  Closes #11027
- specs/t27f/idea_factory.t27: cover_frame_at(t, s) picks the cover scene, clamped to the reel;
  cover_frame(t) is cover_frame_at(t, 0), byte-identical for every idea. Closes #11028

Local evidence: t27c seal --save on all four and seal --verify MATCH; t27c test-report 0 FAIL,
0 vacuous (post_caption 5, social-pack 1, idea-factory card 3, idea_factory 19). Ledger rows
added in sorted order; max_not_pass stays 131.
@gHashTag
gHashTag enabled auto-merge (squash) October 22, 2026 17:36
This was referenced Oct 22, 2026
This was referenced Oct 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-22 19:20:58 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 38
PRs with All Checks Green 12
READY 0
FAILING 38
PENDING 0
NO CHECKS YET 5

These columns do not partition: 0 + 38 + 0 + 5 = 43, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=5aec047d42ec != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit 687edbc into master Oct 22, 2026
23 of 30 checks passed
gHashTag added a commit that referenced this pull request Oct 22, 2026
…me (Closes #10263) (#11690)

M4 of T27F Live (epic #10266). One new spec, no other file touched.

- Transport: SSE (`text/event-stream`), user actions back as POST of an allowlisted action id from
  specs/t27f/ui_plan.t27. HAS_WEBSOCKET is false and the test says so.
- Vocabulary reused, not reinvented: the event name is hot.t27's HOT_EVENT and the digest length is
  DIGEST_HEX_LEN, so the live wire and the hot loop are one stream, not two.
- FR-001: the sequence starts at SEQ_FIRST and increases by one forever; the test walks 5000 of them.
- FR-002: a keyframe at least every K_DELTAS deltas (K = 16). resume_mode answers a client that fell
  behind the newest keyframe the buffer still holds with a keyframe rather than deltas it does not
  have, and resume_from never repeats a sequence number.
- FR-003: coalescing keeps the last value of every key (measured against a last-write-wins reference
  over a 400-event window, not asserted) and never drops a pending keyframe.
- FR-004: an action id outside the catalog is refused; the test sweeps all 256 ids.
- The reconnect test walks 100 runs, cutting the client at a different point each time, and asserts
  per-key state equality -- which is strictly stronger than the scene-hash equality the issue asks
  for. Both recovery paths (deltas and keyframe) are exercised, and the test asserts that they are.

Local evidence: t27c test-report 10/10 pass, 0 FAIL, 0 vacuous, 2 invariants proved, 41890 runtime
asserts; t27c seal --save and --verify, all hashes MATCH.

Not claimed in this change:
- The latency budget (50 ms p50 / 150 ms p99, measured in a browser against t27-mcp --watch) is a
  Railway-lab measurement. This change does not measure it and does not claim it.
- No docs/reports/t27b_expectations.json row: that row is derived by the ledger steward from a lab
  corpus run. The same choice was made for face.t27 in #11675, and the lab has since confirmed the
  two rows from #11668 were right (master run c986d53: both `t27b pass`).
@gHashTag
gHashTag deleted the rel-11038-closure branch October 26, 2026 03:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment