Skip to content

feat(website): home gets a Get started door; frames boot on a click; a 404 wire is asked once - #1310

Merged
gHashTag merged 2 commits into
mainfrom
feat/home-get-started
Oct 4, 2026
Merged

gHashTag merged 2 commits into
mainfrom
feat/home-get-started

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

Closes #1308

What changes on t27.ai's home

1. GET STARTED: three ways in, right under the hero (en + ru)

Card Button opens (works today) What the card says is not built
I write code Spec Explorer on hello_world.t27 (nothing missing: compile in the browser, no key)
I bring hardware MY RUNNERS (CABINET_HOME) MY RUNNERS' own "next stage" sentence + "GPU/FPGA rental for TRI is planned: no GPU worker, no job format"
I contribute the board (#/queen?tab=kanban) (open issues, roadmap, lanes linked)

The closing line is TOKEN_COPY[lang].status, so TRI's testnet standing is the TOKEN tab's own words. Nothing is hand-copied. The runners copy moved to lib/queenRunnersCopy.ts, so QueenRunners and the card read one string.

2. Overload: the frames boot on a click, not on scroll

  • SpecHeroBlock and the three ModuleHeroBlock showcases each mounted a whole copy of the app as soon as they scrolled near. They now show a facade: the glyph, what the frame holds, and a "Run it here" / "Compile it here" button.
  • The spec count reads the atlas the hive already loaded, not the 2 MB manifest a second time. queen-spec-sync-contract keeps the two counts equal.

3. Console errors: a wire that answers 404 is asked once per page

  • /queen/public-modules and /queen/public-foundation answer 404; curl confirmed this on 2026-10-04. Every Queen instance used to poll them every 15 s and 60 s.
  • fetchPart now remembers a 404 wire for the page. The registry lives in the top window, so frames share it.
  • A 5xx or a network failure is still retried.
  • Two new contract checks cover both behaviours.

Measured (local preview, full scroll + 8 s, base = origin/main)

base this PR
requests 258 49
decoded 13.50 MB 4.69 MB
same-origin app iframes 4 0 (until clicked)
404 polls of public-* after 117 s one per poll, per frame 1 per route, frames re-ask 0

Layout: no horizontal overflow at 1440 px or 375 px. Clicking a facade mounts exactly that frame: verified for kanban and the Spec Explorer.

Checks run locally

  • typecheck:ratchet: 179 / 179 baseline, no file gained errors
  • check:queen-spec-sync: PASS, 26 checks (2 new)
  • check:queen-runners: ok
  • check:queen-contrast: ok, worst pair 5.39:1
  • check:queen-honesty: 3 failures, identical on origin/main (decision line, H-C1 GitHub facts, yellow scoping). Not touched here.

Follow-ups (not in this PR)

{
  "version": 1,
  "head_sha": "ec455977bd4e705396521aecd3060210f5a4e134",
  "summary": "The t27.ai home gains a GET STARTED block with three ways in (write code, bring hardware, contribute), its four whole-app frames boot on a click instead of on scroll, and supervisor routes that answer 404 are asked once per page instead of on every poll.",
  "changes": [
    "New GetStartedBlock under the hero: three cards in English and Russian, each button opening a place that works today, each unbuilt part stated in the owning tab's own words.",
    "MY RUNNERS copy moved to lib/queenRunnersCopy.ts so the runners tab and the hardware card read one sentence for the next stage.",
    "SpecHeroBlock and ModuleHeroBlock show a facade with the module glyph and a run button; the iframe mounts only after the click.",
    "SpecHeroBlock reads its spec count from the already loaded atlas instead of fetching the 2 MB manifest a second time.",
    "queenCorpus fetchPart remembers wire routes that answered 404 for the page and falls straight to the vendored file; 5xx and network failures are still retried.",
    "queen-spec-sync-contract gains two checks: a 404 wire is not asked again, a 5xx wire is."
  ],
  "tests": [
    {
      "command": "npm run typecheck:ratchet",
      "result": "179 errors across 26 files against a baseline of 179 across 26; no file gained type errors.",
      "status": "passed",
      "evidence": "Local run in apps/website on commit 8a8f0d7, exit code 0."
    },
    {
      "command": "npm run check:queen-spec-sync",
      "result": "Queen spec sync contract PASS with 26 checks, including the two new wire checks for 404 and 5xx.",
      "status": "passed",
      "evidence": "Local run in apps/website, final line: Queen spec sync contract: PASS (26 checks)."
    },
    {
      "command": "npm run check:queen-runners && npm run check:queen-contrast",
      "result": "Runners contract ok after the copy moved; contrast measured 24 pairs, worst 5.39:1, over 36 stylesheets reached from App.tsx.",
      "status": "passed",
      "evidence": "Local run in apps/website, both commands exit code 0."
    },
    {
      "command": "npm run check:queen-honesty",
      "result": "Three failures in the decision line, H-C1 GitHub facts and yellow scoping checks, identical on origin/main without this change.",
      "status": "failed",
      "evidence": "Same three failures reproduced on a detached origin/main worktree; this PR does not touch those sources."
    },
    {
      "command": "vite preview, full scroll of the home plus 8 seconds, base origin/main versus this branch",
      "result": "Requests fell from 258 to 49, decoded bytes from 13.50 MB to 4.69 MB, same-origin app iframes from 4 to 0 until clicked.",
      "status": "passed",
      "evidence": "Browser pane measurement on localhost 4320 (base) and 4319 (branch) at 1440 by 900, performance resource entries."
    },
    {
      "command": "browser check at 375 px and 1440 px, click on two facades, console and resource entries after 117 seconds",
      "result": "No horizontal overflow at either width; each click mounted exactly its frame; public-modules and public-foundation requested once each, frames re-asked neither.",
      "status": "passed",
      "evidence": "Browser pane on localhost 4319, document scrollWidth equal to innerWidth, two iframes with the expected src after two clicks."
    }
  ],
  "limitations": [
    "The measurements are from a local vite preview, not from t27.ai after deploy; the live numbers should be re-taken once it ships.",
    "QueenCatalogHive still renders a select with 5014 options and the 1.7 MB atlas is now the largest single download.",
    "The hardware card does not link the Providers tab yet because gHashTag/trinity#1302 has not merged."
  ],
  "tags": ["website", "performance", "onboarding", "queen"],
  "blog": {
    "title": "The home page gets a front door and stops booting four copies of itself",
    "summary": "A visitor now picks one of three ways in right under the hero, the heavy live frames wait for a click, and a supervisor route that does not exist is asked once instead of forever. One scroll of the home went from 258 requests to 49.",
    "outline": [
      "Why the home needed a door by kind of visitor: developers, people with hardware, and contributors each had to scroll past things meant for others to find their move.",
      "How each card stays honest: every button opens a place that works today, and the part not built yet is quoted from the tab that owns the fact rather than retyped.",
      "Why the frames were the overload: each showcase mounted a whole second copy of the application on scroll, so one pass booted four boards and the explorer.",
      "How a 404 became quiet: the corpus registry already lives in the top window, so remembering a missing route there silences every frame while a 5xx is still retried."
    ]
  }
}

🤖 Generated with Claude Code

…a 404 wire is asked once

Closes #1308

The home had three faults, all measured on t27.ai on 2026-10-04.

- No front door by kind of visitor. GET STARTED now sits right under the
  hero: three cards (I write code / I bring hardware / I contribute), en + ru.
  Each button opens a place that works today: the Spec Explorer on
  hello_world.t27, MY RUNNERS, the board. What a card cannot back is said on
  it in the owner's words: the runner's next stage is MY RUNNERS' own sentence
  (moved to lib/queenRunnersCopy.ts so both read one string), TRI's standing
  is TOKEN_COPY's, and GPU/FPGA rental for TRI is marked planned.
- Overload. The Spec Explorer and the three module showcases mounted a whole
  copy of the app each on scroll. They now mount on a click; until then the
  frame shows its glyph, what it holds, and the button. The spec count reads
  the atlas the hive already loaded instead of fetching the 2 MB manifest a
  second time (the spec-sync contract keeps the two counts equal).
  Local full scroll + 8 s: 258 -> 49 requests, 13.5 -> 4.7 MB, 4 -> 0 frames.
- Console errors. /queen/public-modules and /queen/public-foundation answer
  404, and every Queen instance polled them every 15 s / 60 s. fetchPart now
  remembers a 404 wire for the page (the registry lives in the top window, so
  frames share it) and goes straight to the vendored file; a 5xx or network
  failure is still asked again. queen-spec-sync-contract holds both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the status:in-progress 🔵 Agent working label Oct 3, 2026
main moved by 20+ commits since 8a8f0d7 (providers tab #1302, brain health
#1328, FPGA recordings #1329, blog #1309). Clean merge. check:queen-runners,
queen-spec-sync, queen-contrast and queen-languages pass on the merged tree;
check:queen-honesty fails 3 on inputs byte-identical to main (Queen.tsx,
QueenCombBabylon.tsx), so that is main's state, not this branch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

X Brain Health Check

Score: 100.0/100
Status: 🟢 HEALTHY
Threshold: 80/100

X Brain is above merge threshold

@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

🚨 CRITICAL: Brain Health Below Threshold

The brain health CI gate has failed. This PR cannot be merged until:

  1. All brain region unit tests pass
  2. Integration tests pass
  3. Stress test score >= 270/300
  4. Brain health score >= 80/100

Please review the failed job logs and fix the issues.

@gHashTag
gHashTag merged commit 76f8975 into main Oct 4, 2026
27 of 40 checks passed
github-actions Bot added a commit that referenced this pull request Oct 4, 2026
feat(website): home gets a Get started door; frames boot on a click; a 404 wire is asked once (#1310)

Closes #1308

The home had three faults, all measured on t27.ai on 2026-10-04.

- No front door by kind of visitor. GET STARTED now sits right under the
  hero: three cards (I write code / I bring hardware / I contribute), en + ru.
  Each button opens a place that works today: the Spec Explorer on
  hello_world.t27, MY RUNNERS, the board. What a card cannot back is said on
  it in the owner's words: the runner's next stage is MY RUNNERS' own sentence
  (moved to lib/queenRunnersCopy.ts so both read one string), TRI's standing
  is TOKEN_COPY's, and GPU/FPGA rental for TRI is marked planned.
- Overload. The Spec Explorer and the three module showcases mounted a whole
  copy of the app each on scroll. They now mount on a click; until then the
  frame shows its glyph, what it holds, and the button. The spec count reads
  the atlas the hive already loaded instead of fetching the 2 MB manifest a
  second time (the spec-sync contract keeps the two counts equal).
  Local full scroll + 8 s: 258 -> 49 requests, 13.5 -> 4.7 MB, 4 -> 0 frames.
- Console errors. /queen/public-modules and /queen/public-foundation answer
  404, and every Queen instance polled them every 15 s / 60 s. fetchPart now
  remembers a 404 wire for the page (the registry lives in the top window, so
  frames share it) and goes straight to the vendored file; a 5xx or network
  failure is still asked again. queen-spec-sync-contract holds both.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added status:completed Done and removed status:in-progress 🔵 Agent working labels Oct 4, 2026
gHashTag added a commit that referenced this pull request Oct 4, 2026
Brings in #1310 (76f8975) and the other main commits since 291ac8b
before re-vendoring t27 at 39e06aa0e.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dmitrii-f-t27 pushed a commit that referenced this pull request Oct 4, 2026
#1310 moved the cabinet's words into lib/queenRunnersCopy.ts so the
homepage's GET STARTED card can quote them. The conflict in
QueenRunners.tsx is resolved to main's version, and the pending
sentence (EN/RU) moves into the shared copy with the rest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SJ8KjRoGNBoHBoDR92fAo2
dmitrii-f-t27 pushed a commit that referenced this pull request Oct 4, 2026
#1310 moved the cabinet's words into lib/queenRunnersCopy.ts so the
homepage's GET STARTED card can quote them. The conflict in
QueenRunners.tsx is resolved to main's version, and this branch's copy
moves into the shared file: nextStage ("nothing to take yet") is
replaced by howItWorks and readme, and the GET STARTED card now quotes
howItWorks, as that file's own comment intends for the day runners take
tasks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SJ8KjRoGNBoHBoDR92fAo2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

home: a Get started front door, frames that boot on a click, and no 404 poll

1 participant