agent: cutover — index.html now serves the Preact rewrite, app.js deleted

mara: 'i merged this without realizing you still did not delete the
old code. pls follow up with ripping out the old code.'

- index.html: dropped the old static header/main/composer/overflow-
  menu markup and app.js's <script> tag. Now just <div id=preact-root>
  + <script src=static/main.js>. main.css's <link> lands after
  agent.css's — cascade order argus flagged matters for LoginFlow's
  .login-card / MetaNav's popover to win against agent.css's legacy
  rules, confirmed explicitly rather than assumed at this exact step.
- build.mjs: app.js dropped from the esbuild entryPoints (stats.js
  keeps its own bundle, unaffected — separate page, separate script).
- frontend/packages/agent/src/app.js deleted (1717 lines). screen.html
  has its own inline <script>, untouched — never depended on app.js.
- docs/web-ui/agent.md: rewrote the Header section to describe the
  real Preact component tree and the badges+pills-together layout
  (deferred from the earlier commits on this PR specifically so it
  wouldn't describe a hybrid state — this is that promised follow-up).
  Touched up the one other app.js-specific mention in the endpoints
  section. Left the Main/composer/side-panel/live-view/slash-command
  sections alone — behavior there is unchanged, verified faithfully
  ported throughout this PR's earlier commits.

Verified against the REAL dist/index.html (not the dev-preview
harness) — a scratch mock server serving the actual built output
end-to-end, screenshotted clean. tsc --noEmit clean, build clean, both
pre-push lints clean.
This commit is contained in:
iris 2026-08-28 23:14:52 +02:00
commit fa2b360e74
5 changed files with 124 additions and 1936 deletions

View file

@ -1,14 +1,12 @@
// Entry point for the Preact rewrite of the per-agent terminal page
// (replacing app.js's imperative DOM). Not wired into index.html yet —
// this lands in small, reviewable slices (component by component) per
// mara's "one pr != one commit" note on the issue; `index.html`'s
// `<script>` tag swaps from `app.js` to this bundle's output only once
// the new page covers everything the old one did (state polling, the
// live SSE stream, login flow, inbox/todos flyouts, slash commands).
// (replacing app.js's imperative DOM). Landed in small, reviewable
// slices (component by component) per mara's "one pr != one commit"
// note on the issue; now the sole page — app.js is deleted,
// `index.html`'s `<script>` tag points here.
//
// Mounts to `#preact-root`, a sibling of the legacy markup rather than
// a full document takeover, so the two can coexist on a branch while
// this is still in progress.
// Mounts to `#preact-root`, the only content `index.html`'s `<body>`
// declares now — no more coexisting-with-legacy-markup sibling div,
// that was only needed while both pages built in parallel.
import { render } from 'preact';
import { Root } from './Root.js';