Context
Release classification: post-release Agent Harness product line; attach to Agent Harness Project 13, not the v13 release board.
Parent: #13349
Grandparent: #13012
ADR 0020 names conversational app creation as pillar 2: chat -> live blueprint emission into peer apps, with the canonical "build me a neo grid" demo becoming a live-mutable pane/window (learn/agentos/decisions/0020-agent-harness-concept.md:27-29). The parent H2 epic #13349 now owns that product lane, but it intentionally does not enumerate leaves.
The implementation substrate already has a widget child-app route. apps/agentos/view/Viewport.mjs:67-75 points dashboard popup launches at apps/agentos/childapps/widget/index.html, while apps/agentos/childapps/widget/view/Viewport.mjs:7-23 is currently only a themed viewport shell. The AgentOS visual contract already reserves grid-pane tokens (apps/agentos/VisualSystem.md:13-23) and child-app theme parity (apps/agentos/VisualSystem.md:5-11).
This ticket creates the first one-PR H2 leaf: render a constrained first-widget blueprint as a genuine live Neo grid/table pane inside the existing widget child app. It does not start the Electron shell/build-root lane; that remains #13033.
The Problem
The current H2 surface has product intent but no first-widget deliverable. If the next session jumps directly from chat prose to a generated artifact, it risks missing the core ADR claim: the output must become a live Neo object that can later be inspected and mutated, not a screenshot, static HTML, or arbitrary code blob.
The smallest useful proof is deliberately narrow: a deterministic grid-like widget with sample columns and rows, rendered in the existing AgentOS widget child app, styled by the AgentOS visual tokens, and verifiable as a live component instance.
The Architectural Reality
- H2 starts single-writer: no multi-writer Scenario-C semantics are introduced by this leaf, so Topological Locking remains out of scope unless implementation expands the write model.
- The existing dashboard route already targets the widget child app; this leaf consumes that route rather than adding Electron/package-shell work.
- The child widget viewport already shares AgentOS theme files; first-widget UI should extend that surface instead of inventing another app namespace.
- The first blueprint must be constrained and inspectable. It may be static/deterministic in this leaf; later H2 leaves can bind it to chat orchestration, persistence, and write-through.
The Fix
Implement the first live-widget path for the existing AgentOS widget child app:
- Define a constrained first-widget blueprint shape for a grid/table demo, with allowed fields such as title, columns, rows, and live-state metadata. The implementing PR must document the shape in JSDoc or an app-local contract note.
- Render that blueprint as a live Neo component tree in the widget child app, using the existing child route
apps/agentos/childapps/widget/index.html.
- Use AgentOS grid-pane visual tokens and stable dimensions so the pane reads as part of the harness surface in both dark and light themes.
- Add targeted verification that proves the output is a live component instance, not static markup or a screenshot.
If the implementing PR introduces any new .mjs file beyond the existing child-app scaffold, run structural-pre-flight before authoring and cite the placement decision.
Contract Ledger Matrix
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback |
Docs |
Evidence |
| First-widget blueprint payload |
#13349 + ADR 0020 |
Constrained grid/table blueprint; no arbitrary code execution |
Invalid blueprint renders a bounded empty/error state, not raw HTML |
JSDoc or app-local contract note |
Unit/app test covers valid + invalid blueprint |
AgentOSWidget.view.Viewport |
Existing child-app scaffold |
Renders the live first-widget pane from deterministic sample blueprint data |
The themed empty viewport remains reachable if no blueprint is present |
Class JSDoc / component config comments |
Playwright or Neural Link proof that a live component instance exists |
| Dashboard widget popup route |
apps/agentos/view/Viewport.mjs route |
Reuses apps/agentos/childapps/widget/index.html for the first widget |
Web/dev-server mode remains unchanged |
PR body notes no Electron-shell change |
Existing app route still boots |
| AgentOS grid visual tokens |
apps/agentos/VisualSystem.md |
Grid pane consumes shared surface/accent/state tokens |
No component-local color palette unless token gap is documented |
VisualSystem update only if a new token is required |
Screenshot or computed-style evidence |
Decision Record impact
Aligned-with ADR 0020. No ADR amendment expected; this is the first leaf proof for ADR 0020 pillar 2.
Acceptance Criteria
Out of Scope
- Chat-to-model orchestration and prompt streaming.
- Persistence/write-through to git or Memory Core.
- Multi-writer collaboration semantics.
- Electron packaging, BrowserWindow management, or Agent OS process topology; that remains #13033.
- Docking reintegration, QT-grade layout polish, or popup terminal drop behavior.
- Public performance/endurance claims.
- Partner-private or client-specific UI.
Avoided Traps / Rejected Shapes
- Artifact preview instead of live component: rejected. The leaf must prove a live Neo object.
- Arbitrary code generation as the first path: rejected. H2 starts with a constrained blueprint contract.
- Duplicate Electron work: rejected. The shell/build-root lane remains #13033.
- Second window/docking model: rejected. The first widget consumes the existing child-app/popup route.
- Bundling all H2 into one PR: rejected. Chat orchestration, persistence, and write-through are later leaves.
Related
Duplicate / Claim Sweep
Live latest-open sweep: checked the latest 20 open GitHub issues at 2026-06-15T14:43:22Z. Relevant live hits were #13349 (parent), #13012 (grandparent), and #13033 (Electron shell sibling); no dedicated first-widget blueprint/grid-pane child ticket was present.
Targeted GitHub search immediately before filing for "first Neo widget", "First Neo Widget", "chat grid", "conversational app creation", and "widget blueprint" surfaced the parent epic / adjacent historical surfaces, but no current child leaf.
A2A in-flight sweep: native list_messages / add_message tools are not exposed in this Codex surface. As a fallback, I queried the read-only Memory Core graph for the latest 30 MESSAGE nodes immediately before filing; no first-widget / chat-grid / widget-blueprint lane claim was present.
Semantic KB ticket sweep: ask_knowledge_base(query='first Neo widget chat grid conversational app creation widget blueprint duplicate ticket Agent Harness H2', type='ticket') found no defined duplicate ticket for this exact H2 leaf.
Exact repo/content sweep: rg over active/archived issues, discussions, apps/agentos, and learn/agentos found the existing widget child-app scaffold, parent H2/ADR prose, and older M2/docking references; no existing child issue or implementation contract for the constrained first-widget blueprint.
Origin Session ID: unavailable in this Codex Desktop surface.
Retrieval Hint: "Agent Harness H2 first widget constrained blueprint live grid pane AgentOSWidget child app"
Context
Release classification: post-release Agent Harness product line; attach to Agent Harness Project 13, not the v13 release board.
Parent: #13349 Grandparent: #13012
ADR 0020 names conversational app creation as pillar 2: chat -> live blueprint emission into peer apps, with the canonical "build me a neo grid" demo becoming a live-mutable pane/window (
learn/agentos/decisions/0020-agent-harness-concept.md:27-29). The parent H2 epic #13349 now owns that product lane, but it intentionally does not enumerate leaves.The implementation substrate already has a widget child-app route.
apps/agentos/view/Viewport.mjs:67-75points dashboard popup launches atapps/agentos/childapps/widget/index.html, whileapps/agentos/childapps/widget/view/Viewport.mjs:7-23is currently only a themed viewport shell. The AgentOS visual contract already reserves grid-pane tokens (apps/agentos/VisualSystem.md:13-23) and child-app theme parity (apps/agentos/VisualSystem.md:5-11).This ticket creates the first one-PR H2 leaf: render a constrained first-widget blueprint as a genuine live Neo grid/table pane inside the existing widget child app. It does not start the Electron shell/build-root lane; that remains #13033.
The Problem
The current H2 surface has product intent but no first-widget deliverable. If the next session jumps directly from chat prose to a generated artifact, it risks missing the core ADR claim: the output must become a live Neo object that can later be inspected and mutated, not a screenshot, static HTML, or arbitrary code blob.
The smallest useful proof is deliberately narrow: a deterministic grid-like widget with sample columns and rows, rendered in the existing AgentOS widget child app, styled by the AgentOS visual tokens, and verifiable as a live component instance.
The Architectural Reality
The Fix
Implement the first live-widget path for the existing AgentOS widget child app:
apps/agentos/childapps/widget/index.html.If the implementing PR introduces any new
.mjsfile beyond the existing child-app scaffold, runstructural-pre-flightbefore authoring and cite the placement decision.Contract Ledger Matrix
AgentOSWidget.view.Viewportapps/agentos/view/Viewport.mjsrouteapps/agentos/childapps/widget/index.htmlfor the first widgetapps/agentos/VisualSystem.mdDecision Record impact
Aligned-with ADR 0020. No ADR amendment expected; this is the first leaf proof for ADR 0020 pillar 2.
Acceptance Criteria
npx playwright test..mjsfiles are authored, the structural-pre-flight decision is cited in the PR.Out of Scope
Avoided Traps / Rejected Shapes
Related
Duplicate / Claim Sweep
Live latest-open sweep: checked the latest 20 open GitHub issues at 2026-06-15T14:43:22Z. Relevant live hits were #13349 (parent), #13012 (grandparent), and #13033 (Electron shell sibling); no dedicated first-widget blueprint/grid-pane child ticket was present.
Targeted GitHub search immediately before filing for
"first Neo widget","First Neo Widget","chat grid","conversational app creation", and"widget blueprint"surfaced the parent epic / adjacent historical surfaces, but no current child leaf.A2A in-flight sweep: native
list_messages/add_messagetools are not exposed in this Codex surface. As a fallback, I queried the read-only Memory Core graph for the latest 30MESSAGEnodes immediately before filing; no first-widget / chat-grid / widget-blueprint lane claim was present.Semantic KB ticket sweep:
ask_knowledge_base(query='first Neo widget chat grid conversational app creation widget blueprint duplicate ticket Agent Harness H2', type='ticket')found no defined duplicate ticket for this exact H2 leaf.Exact repo/content sweep:
rgover active/archived issues, discussions,apps/agentos, andlearn/agentosfound the existing widget child-app scaffold, parent H2/ADR prose, and older M2/docking references; no existing child issue or implementation contract for the constrained first-widget blueprint.Origin Session ID: unavailable in this Codex Desktop surface.
Retrieval Hint: "Agent Harness H2 first widget constrained blueprint live grid pane AgentOSWidget child app"