LearnNewsExamplesServices
Frontmatter
id13413
titleFirst-widget evidence pane + deterministic grid render-together
stateClosed
labels
enhancementaiarchitecture
assigneesneo-opus-ada
createdAtJun 16, 2026, 9:34 AM
updatedAtJun 16, 2026, 10:32 AM
githubUrlhttps://github.com/neomjs/neo/issues/13413
authorneo-opus-ada
commentsCount0
parentIssue13349
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtJun 16, 2026, 10:32 AM

First-widget evidence pane + deterministic grid render-together

Closed v13.1.0/archive-v13-1-0-chunk-3 enhancementaiarchitecture
neo-opus-ada
neo-opus-ada commented on Jun 16, 2026, 9:34 AM

Context

Split from #13355 per the #13409 cross-family review (close-target remediation, pr-review/references/close-target-remediation.md). #13355 was re-scoped to consume the #13362/#13363 Neural-Link-created grid path; PR #13409 delivered the deterministic half — the safe evidence-pane UI + a local blueprint-driven grid render-together — but NOT the NL-create-path provenance integration. This leaf is the fully-delivered close-target for that deterministic slice; #13355 stays open for the NL-created-grid provenance residual.

Release classification: post-release Agent Harness product line → boardless.

The Problem

H2 needs the visible evidence/provenance surface (request + response + accepted-blueprint metadata) rendered safely, alongside a live grid, as a deterministic + smoke-testable slice — independent of the harder NL-create-path provenance integration. Delivering this slice as its own leaf lets it close truthfully while the NL-provenance integration (#13355's residual) is designed separately, rather than overclaiming #13355's full re-scoped intent.

The Architectural Reality

  • apps/agentos/childapps/widget/util/blueprintEvidence.mjs — the safe allowlist projection (scalar metadata only, fail-closed).
  • apps/agentos/childapps/widget/view/EvidencePane.mjs — request/response/metadata via safe vdom text nodes (no html/innerHTML).
  • apps/agentos/childapps/widget/view/Viewport.mjs — mounts the EvidencePane + a Neo.grid.Container from ONE shared deterministic blueprint.
  • Tests: blueprintEvidence.spec.mjs + view/EvidencePane.spec.mjs (safe-render source assertion) + test/playwright/e2e/FirstWidgetEvidencePane.spec.mjs (render-together).
  • Distinct from #13362/#13363 (the NL-create-path proof, which targets examples/grid/bigData).

The Fix

Delivered by PR #13409 (re-pointed to this leaf):

  • The safe blueprint-evidence projection (allowlist, fail-closed).
  • The EvidencePane (safe vdom text, fail-closed on invalid blueprint).
  • The Viewport wiring: EvidencePane + a deterministic-blueprint grid (render-together), one shared blueprint = the provenance link.
  • Unit coverage (valid/invalid/safe-render source) + a render-together e2e.

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
Evidence pane (request/response/metadata) #13349, ADR 0020, #13018 Safe vdom text only; deterministic request + response + accepted-blueprint metadata invalid blueprint → bounded rejected-state text JSDoc/@summary unit + e2e (shipped green)
Blueprint-evidence projection #13355 blueprint contract scalar metadata only (schema/title/col-count/row-count); allowlist unknown keys/malformed → fail closed JSDoc/@summary unit, 4 tests (shipped)
Deterministic grid render-together ADR 0020 one shared blueprint drives both the evidence pane + a live grid n/a (deterministic) JSDoc render-together e2e (shipped)

Decision Record impact

Aligned with ADR 0020. Split from #13355 (does NOT supersede it — #13355 retains the NL-create-path provenance scope).

Acceptance Criteria

  • Evidence pane renders deterministic request + response + accepted-blueprint metadata via safe vdom text (no unsafe HTML).
  • Invalid evidence fails closed to a bounded visible state.
  • A live grid renders alongside, driven by the SAME deterministic blueprint (render-together).
  • Unit coverage: valid/invalid evidence + safe-render source assertion.
  • Render-together e2e: evidence pane + grid render together.

(all delivered by PR #13409)

Out of Scope

  • The NL-create-path grid provenance integration (tying the evidence pane to a grid created via the #13362/#13363 create_component seam) — stays on #13355.
  • LLM / streaming / persistence / git-write / Electron.

Related

  • Parent epic: #13349
  • Split from: #13355 (retains the NL-provenance residual)
  • Delivered by: PR #13409
  • Distinct foundation: #13362 / #13363 (NL-create-path proof)

Origin Session ID: 47b6dbc0-7673-4ad3-a9f5-bef3b606c56b

tobiu closed this issue on Jun 16, 2026, 10:32 AM
tobiu referenced in commit c8255b1 - "feat(agentos): first-widget evidence pane + live grid render-together (#13355) (#13409) on Jun 16, 2026, 10:32 AM