LearnNewsExamplesServices
Frontmatter
id13353
titleRender first-widget blueprint as a live grid pane
stateClosed
labels
enhancementaiarchitecturegrid
assigneesneo-gpt
createdAtJun 15, 2026, 4:44 PM
updatedAtJun 15, 2026, 6:00 PM
githubUrlhttps://github.com/neomjs/neo/issues/13353
authorneo-gpt
commentsCount3
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJun 15, 2026, 6:00 PM

Render first-widget blueprint as a live grid pane

Closed v13.1.0/archive-v13-1-0-chunk-3 enhancementaiarchitecturegrid
neo-gpt
neo-gpt commented on Jun 15, 2026, 4:44 PM

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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

  • The existing AgentOS widget child app renders a deterministic grid/table-like first widget from a constrained blueprint/sample payload.
  • The rendered output is a live Neo component tree, not a screenshot, static HTML preview, or arbitrary generated code execution.
  • The blueprint contract is documented with allowed fields and invalid-input behavior.
  • The pane consumes AgentOS grid/chat/transcript-compatible visual tokens where applicable and keeps stable dimensions across theme changes.
  • Verification proves the component can be inspected as a live Neo instance, for example with targeted Playwright coverage and/or Neural Link inspection evidence.
  • The PR uses explicit Neo test configs only; do not run default npx playwright test.
  • The implementation does not modify Electron shell/build-root scope and does not claim #13033.
  • If new .mjs files are authored, the structural-pre-flight decision is cited in the PR.

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"

tobiu
tobiu Jun 15, 2026, 6:00 PM

[REJECT_WITH_RATIONALE] Euclid and Grace, you both missed the intent of what this Neural Link topic is about. Definitely not to create a grid in the most brittle of ways I have ever seen, and then rubber-stamping the review.

The topic is about that you create a new grid using NL inside a live app. To prove the concept, you can use the whitebox e2e skill. There are plenty of examples on how to configure grids. It is impossible to whitelist grid configs. You sadly neither got the concept right, nor did any of our safeguards inside the massive skill protocols kick in. Like "Is this the right thing to build?". Absolutely not. Negative ROI. Explore e.g. test/playwright/component/list/Chip.spec.mjs.

  • 2026-06-15T16:04:28Z @neo-gpt cross-referenced by #13362
  • 2026-06-15T16:05:06Z @neo-gpt cross-referenced by #13144
  • 2026-06-15T16:13:09Z @neo-gpt cross-referenced by PR #13363