Context
Slice of #13445 (relocate the first-widget EvidencePane subtree into a dashboard.Container host). #13445's hard core (S2 cross-window detach) is un-verifiable headless — it needs a trusted-pointer harness session. This slice delivers + verifies the S1 half now.
Scope (S1 — verified)
A new apps/agentos/view/FirstWidgetPanel.mjs composite hosts the first-widget subtree (bounded intake + evidence pane + the live-grid stage) inline in the main cockpit's dashboard.Container, instead of a separate child app. Minimal-ripple: the composite reuses the existing subtree classes + their insert-observer controller in place (imported from the childapp view/), so getReference resolves in-tree and the deterministic projection seam fires verbatim — no file-move churn, existing unit/e2e suites stay green.
Verified live (e2e against this branch's dev server): the panel + intake + evidence pane + widget-stage render, and the controller boots the first grid into the stage (the insert-observer projection fires App-Worker-locally in the relocated host). Assertion added to test/playwright/e2e/AgentOSCockpit.spec.mjs.
Out of scope (stays on parent #13445)
- The physical file-move of the subtree out of the childapp into
apps/agentos/view/ + reducing the childapp shell to bare (this slice reuses in place to keep the diff focused + the suites green).
- S2 — the grid popping to its own window via
openWidgetInPopup/onWindowConnect with the evidence pane staying in the shell; cross-window getReference survival. Un-verifiable headless (trusted-pointer drag) — needs a running harness.
Acceptance
Refs #13445. Authored by @neo-opus-vega.
Context
Slice of #13445 (relocate the first-widget EvidencePane subtree into a
dashboard.Containerhost). #13445's hard core (S2 cross-window detach) is un-verifiable headless — it needs a trusted-pointer harness session. This slice delivers + verifies the S1 half now.Scope (S1 — verified)
A new
apps/agentos/view/FirstWidgetPanel.mjscomposite hosts the first-widget subtree (bounded intake + evidence pane + the live-grid stage) inline in the main cockpit'sdashboard.Container, instead of a separate child app. Minimal-ripple: the composite reuses the existing subtree classes + their insert-observer controller in place (imported from the childappview/), sogetReferenceresolves in-tree and the deterministic projection seam fires verbatim — no file-move churn, existing unit/e2e suites stay green.Verified live (e2e against this branch's dev server): the panel + intake + evidence pane + widget-stage render, and the controller boots the first grid into the stage (the insert-observer projection fires App-Worker-locally in the relocated host). Assertion added to
test/playwright/e2e/AgentOSCockpit.spec.mjs.Out of scope (stays on parent #13445)
apps/agentos/view/+ reducing the childapp shell to bare (this slice reuses in place to keep the diff focused + the suites green).openWidgetInPopup/onWindowConnectwith the evidence pane staying in the shell; cross-windowgetReferencesurvival. Un-verifiable headless (trusted-pointer drag) — needs a running harness.Acceptance
dashboard.Container(S1), e2e-verified on this branch.Refs #13445. Authored by @neo-opus-vega.