Skip to content

t27f live: the feed URL moves to the t27os batch export (refs #1717) - #1751

Open
gHashTag wants to merge 2 commits into
mainfrom
lane/feed-t27os
Open

gHashTag wants to merge 2 commits into
mainfrom
lane/feed-t27os

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

What

The t27f live page's feed constant moves from the Railway public-feed endpoint to the T27OS batch export: https://raw.githubusercontent.com/Trinity-S-AI-DNA/t27os/master/runs/queen-feed.json.

T27OS is a batch executor, so the feed is PULL, not PUSH: the t27os workflow (t27os PR: Trinity-S-AI-DNA/t27os#44) re-exports the Queen's actor events every 15 minutes as one static runs/queen-feed.json in format t27f-queen-feed-v1, and this page keeps its existing 15 s poll unchanged -- fetch, format check, seq filter, grow() down the same tick() path. The card for the workflow is t27 specs/crons/t27os-queen-feed.t27 (ID github-actions/t27os/queen-feed, refs t27#12384).

Honesty fix in the same lines: the comment above the constant claimed "seconds-level realtime"; it now states the real shape -- a 15-minute batch, seed:true until the live bus is online. The recorded-log fallback stands untouched, and until the t27os PR merges and its first run publishes, the feed fetch fails and the page runs exactly as today (that fallback path already works).

No change to the poller, the replay engine, the gx consumer, the queen lane or the fleet panel.

t27-work-report

version: 1
head_sha: e066dbef7c49159bb2be8a26df3274c4d9743f87
summary: >
  The t27f live page's feed constant moves to the T27OS batch export (static
  runs/queen-feed.json, re-exported every 15 minutes by t27os queen-feed.yml);
  the poll contract and the recorded-log fallback are unchanged, and the
  comment drops the seconds-level-realtime claim for the honest batch shape.
changes:
  - apps/website/public/t27f/live/t27f_live.js: FEED now points at the raw
   .githubusercontent URL of Trinity-S-AI-DNA/t27os master's
    runs/queen-feed.json (t27f-queen-feed-v1); refs t27#12384.
  - apps/website/public/t27f/live/t27f_live.js: the feed comment states the
    batch-pull architecture (15-minute re-export, seed:true until the live
    bus is online) instead of seconds-level realtime.
tests:
  - "node --input-type=module import check of t27f_live.js -- exit 0 (module parses and loads as ESM)"
  - "node --test apps/website/scripts/live-glue.test.mjs: 2 pass / 2 fail, byte-identical to clean origin/main (both failures pre-date this PR: the DOM stub lacks the surface the glue uses since #1743/#1744)"
  - "ASCII scan (L3): LC_ALL=C grep -c '[^ -~]' t27f_live.js -- 0"
limitations:
  - "Until Trinity-S-AI-DNA/t27os#44 merges and its first scheduled run publishes runs/queen-feed.json, the feed fetch 404s and the page uses its recorded-log fallback -- the pre-existing behavior, unchanged."
  - "The seed feed carries the recorded replay (24 events, seed:true); no live Queen events exist yet, so the page shows the same timeline it already had, now sourced from the batch export once it lands."
tags: [t27f, live_surface, queen_feed]
{
  "version": 1,
  "head_sha": "e066dbef7c49159bb2be8a26df3274c4d9743f87",
  "summary": "The t27f live page's feed constant moves to the T27OS batch export (static runs/queen-feed.json re-exported every 15 minutes); the poll contract and the recorded-log fallback are unchanged, and the comment drops the seconds-level-realtime claim for the honest batch shape.",
  "changes": [
    "apps/website/public/t27f/live/t27f_live.js: FEED now points at the raw.githubusercontent URL of Trinity-S-AI-DNA/t27os master runs/queen-feed.json (format t27f-queen-feed-v1); refs t27#12384.",
    "apps/website/public/t27f/live/t27f_live.js: the feed comment states the batch-pull architecture (15-minute re-export, seed:true until the live bus is online) instead of claiming seconds-level realtime."
  ],
  "tests": [
    {
      "command": "node --input-type=module import check of t27f_live.js",
      "result": "exit 0; the module parses and loads as ESM",
      "status": "passed",
      "evidence": "Run on the PR branch in the authoring session on 2026-10-25."
    },
    {
      "command": "node --test apps/website/scripts/live-glue.test.mjs",
      "result": "2 pass / 2 fail, identical to clean origin/main; both failures pre-date this PR (the DOM stub gap since #1743/#1744)",
      "status": "failed",
      "evidence": "Comparison run against clean origin/main in the authoring session on 2026-10-25."
    },
    {
      "command": "LC_ALL=C grep -c '[^ -~]' apps/website/public/t27f/live/t27f_live.js",
      "result": "0 non-ASCII bytes in the changed file",
      "status": "passed",
      "evidence": "ASCII scan (L3) run in the authoring session on 2026-10-25."
    }
  ],
  "limitations": [
    "Until the t27os queen-feed workflow's first scheduled run publishes runs/queen-feed.json, the feed fetch 404s and the page uses its recorded-log fallback -- pre-existing behavior, unchanged.",
    "The seed feed carries the recorded replay (24 events, seed:true); no live Queen events exist yet, so the page shows the same timeline it already had once the batch export lands."
  ],
  "tags": [
    "t27f",
    "live_surface",
    "queen_feed"
  ],
  "blog": {
    "title": "The t27f live feed moves to the T27OS batch export",
    "summary": "The Queen's actor events now arrive as a static batch export re-published every 15 minutes by the t27os workflow; the page polls it first and keeps the recorded log as its fallback.",
    "outline": [
      "What moved: the FEED constant from the Railway public-feed endpoint to the t27os batch export runs/queen-feed.json on raw.githubusercontent.",
      "Why batch and not push: T27OS is a batch executor, so the feed is pull; the export carries seed:true until the live bus is online.",
      "What did not move: the 15 s poll, the format check, the seq filter, the grow() path down tick(), and the recorded-log fallback.",
      "What lands next: t27os#44 is merged; its first scheduled run publishes the seed feed that this page will read."
    ]
  }
}

Refs #1717

Foreign-code note

This PR's one change is inside an existing foreign file (t27f_live.js): the FEED constant and its comment. Under the owner's Only-t27 law that needs the owner-approved-foreign label, which this PR carries: owner approval 2026-10-25 covers this lane (the free-fleet t27os-feed mission briefing).

…t27#12384)

The FEED constant now points at the static runs/queen-feed.json the t27os
workflow re-exports every 15 minutes (format t27f-queen-feed-v1); the
poll/pull contract is unchanged and the recorded-log fallback stands. The
comment above it drops the seconds-level-realtime claim: the feed is a
15-minute batch, seeded from the recorded replay until the live bus is
online.
@tri-claw

tri-claw Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Summary by t27-bees

The pull request switches the t27f live page's feed source from a Railway-hosted push endpoint to a static JSON file served from the t27os repository's master branch, re-exported every 15 minutes by a GitHub Actions workflow. The comment is updated to reflect the batch-pull architecture (including seed:true replay data) instead of claiming seconds-level realtime; the poll interval, replay engine, and recorded-log fallback remain unchanged.

Worth a look

  • apps/website/public/t27f/live/t27f_live.js:180 – The new FEED URL points to raw.githubusercontent.com/.../master/runs/queen-feed.json. If the t27os repository renames/deletes the master branch, moves the file, or goes private, the feed will 404 and the page will fall back to the recorded log (current behavior until t27os#44 merges and publishes).
  • apps/website/public/t27f/live/t27f_live.js:176–179 – The comment states the feed is re-exported "every 15 minutes from the recorded replay (seed:true until the live bus is online)". This means the page will show only the seeded replay events (24 events per the work report) until a live bus exists; no live Queen events will appear regardless of poll frequency.
  • apps/website/public/t27f/live/t27f_live.js:180 – The feed format is expected to be t27f-queen-feed-v1. If the t27os workflow changes the schema or version without a corresponding client update, grow() may reject or misinterpret events (the code already guards with a format check, but a silent schema drift could still drop events).
  • apps/website/public/t27f/live/t27f_live.js:180 – The URL uses the master branch directly rather than a tagged release or commit SHA. A force-push or history rewrite on t27os master could serve a corrupted or truncated queen-feed.json without notice.

Read: 1 files, +5 -3, the whole diff. Head 43fb9b8. Model: openai-compatible/nvidia/nemotron-3-ultra-550b-a55b. Commands: @t27-bees review | summary | help | pause | resume. Free for every repository.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

owner-approved-foreign Owner approved hand-written non-t27 code in this PR status:in-progress 🔵 Agent working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant