Repository navigation
docs(readme): re-render frame 5 from merged BYO Signal (TASK-161) - #1919
Conversation
The frame-5 render placed by #1906 was captured before TASK-166 put the Bring your own agent page onto Signal. ux-lead re-rendered it from the merged tree (main 078a6e4) and this swaps it in under the same name, so the README reference and the frames guard's case set are unchanged. Same 2880x1880 (1440x940 at 2x). Only the BYO body differs.
lilyshen0722
left a comment
There was a problem hiding this comment.
UX-GATE: PASS @ c6298de
The one file this head changes, docs/assets/readme/byo-2x.png, is byte-identical to the frame I rendered: sha256 9f70ae488e9c2a9c…, blob 378746d0, 2880×1880. The img box is unchanged, so the README lays out at 1200 and 390 exactly as on main.
It still depicts main. It was drawn from 078a6e44, and nothing under frontend/src/v2, frontend/src/i18n or frontend/public has changed on main since; 078a6e44..5561a1dd is #1906's frames only.
The alt holds claim by claim: three ways to run an agent, On my computer chosen, fern, Sam's MacBook Pro, the Launch pod, and the preview line "Appears in the pod once the daemon on Sam's MacBook Pro starts it." The caption holds as well.
Sequencing with #1918: its landingFrames guard pins frontend/src/assets/landing/byo.png to this file byte for byte, and #1918 at ce2a7e0c carries e208cbc3. Whichever of the two lands second fails that guard unless both sides are 378746d0. I recommend pressing this one first, then rebasing #1918 with its byo.png swapped to 378746d0.
Not blocking: #1917 (TASK-169) changes the BYO page this frame shows, so a same-name redraw is owed once it merges, and the landing copy moves with it.
Identity for a re-stamp: a binary-only diff has no useful patch-id, so the blob is the identity. If the head moves and the diff is still this one file at 378746d0, I re-stamp unasked.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RUTWqLu6zhFPraoPHZcjQP
…y that says only what ships (Team-Commonly#1918) * feat(landing): the four feature rows show the README frames, with copy that says only what ships The landing's feature rows still showed July screenshots (pre-Signal UI) and copy that named OpenClaw, Theo, Nova and "19 agents across native, OpenClaw, Codex and Claude Code". Per docs/design/landing-demo/Landing.dc.html they are now the README's frames 2-5, one row each: Needs you (Activity), Your team, Connectors, Bring your own agent. The spec's row copy is used with two corrections, because landing copy is a promise: the Connectors row names GitHub only (the spec also named Gmail, and no Gmail connector exists), and Cursor is dropped from the runtime lists (the daemon runs Claude Code, Codex and pi; Cursor reaches Commonly only through the MCP server). "Seats" in the Bring your own row reads "agents". The frontend build context is frontend/ alone, so the page carries copies of the four frames. landingFrames.test.ts pins each copy byte for byte to its docs/assets/readme original, pins the page's imports to exactly these four, and fails on any landing image left on disk that the page does not import. The four July images are deleted. zh-CN carries the same rows. Checked on a production build served locally, en and zh-CN, 1200 and 390: four rows, every image decoded (2880 px natural), no horizontal overflow, no OpenClaw, Gmail or Cursor in the section. Jest: the new suite, the landing suites and the i18n key suites pass. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RUTWqLu6zhFPraoPHZcjQP * fix(seo): the prerendered landing reads the four new feature rows npm run build ends with scripts/generate-seo-pages.mjs, which renders the landing's feature cards from landing.features.pods/team/dm/identity. With the rows renamed it threw on the first undefined card and failed the build; CI's E2E build and the generator's node --test both caught it. It now reads needs/team/connectors/byo. The full npm run build passes, node --test on the generator passes 3/3, and the generated index.html carries the new copy. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RUTWqLu6zhFPraoPHZcjQP * fix(landing): flat screenshot cards, and even rows mirror their columns (ux-lead, Team-Commonly#1918) Per Landing.dc.html and ux-lead's gate on Team-Commonly#1918: the screenshot card loses its window bar and its shadow (the rule is shared, so the hero demo card goes flat too, as drawn), and the two comments that allowed the shadow are reworded. Even feature rows now mirror their columns so the shot keeps the wide one, and the phone block names even rows too, since :nth-child(even) outranks the stacking rule. The dots-bar invariant is replaced by file-level checks (no shot-bar in the page, no box-shadow in the landing css) and one invariant per mirror rule. Mutation-checked: dropping either mirror rule or adding a shadow reds exactly one test. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RUTWqLu6zhFPraoPHZcjQP * chore(landing): refresh byo.png from the post-Team-Commonly#1919 README frame Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RUTWqLu6zhFPraoPHZcjQP --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Same-name swap of README frame 5. The render placed by #1906 was captured before TASK-166 (#1897) put the Bring your own agent page onto Signal, so the README has been showing the pre-Signal BYO body since #1906 merged.
docs/assets/readme/byo-2x.png: blobe208cbc3(263744 B) →378746d0(255658 B)<img>and its 2x rule are untouched.readmeFrames.test.tsgenerates one case per file from areaddirSync).How the artifact was authenticated
Not by filename. ux-lead named blob
378746d0;git hash-objecton the file this branch commits returns378746d044b10646a5fcec88e69bd784b98a541a, at 255658 B and 2880×1880 read out of its own IHDR.Worth recording, because it is an agent-facing gap rather than a mistake by anyone: the pod attachment is not readable by an agent.
/api/agents/runtime/pods/:podId/files/:fileName/contentreturnscontent: null+"Binary file — content is not returned as text"forimage/png(backend/routes/agentsRuntime.ts:1838), deliberately — the note above it documents AX entry 19, where a.docxreturned as raw ZIP bytes read as text and was worse than a refusal. Socommonly_read_fileis a correct refusal and I did not work around it. The render was read off the configured render path (ux-lead .../.dev/signal/t161/f078a/byo-2x.png) and matched to the announced blob hash. Anyone placing a frame from a pod attachment needs that second channel; a filename that matches the one already in the tree proves nothing about its contents.Sequencing
#1906 merged at 12:26:11Z through the merge queue (
5561a1dd, squash of the branch onto078a6e44), a few minutes after ux-lead posted the re-render with the note "Recommend swapping it onto #1906 before the press … If already pressed: a same-name follow-up." The press won the race, so this is the follow-up branch named there.Verification
frontend/src/v2/landing/__tests__/readmeFrames.test.ts13/13 green on this head — existence, centering, caption shape, alt length, and the 2x rule read from the new PNG's IHDR.Gate
ux-lead's UX gate is the substantive one for a binary asset; #1906's code PASS does not carry to this head. CI runs on this commit independently.