Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,9 @@ Phase 3 (branch `ag-ui-gap-closure-p3`, plan `2026-06-11-ag-ui-gap-closure-p3.md
- **F2 ✅** — AgUiShell sets `data-color-scheme` + index.html pre-bootstrap script; page chrome (itinerary panel, mode hosts) verified light live.
- **F3 ✅** — adapter settles abort-shaped failures as graceful cancellation on BOTH delivery paths (`onRunFailed` AND the synthesized `RUN_ERROR` event — the second path was caught only by the live smoke, not the stub harness). No banner on stop, verified live.
- **F4 ✅** — json-render `{statePath}` props are normalized to the `$bindState` dialect + `_bindings` in `chat-generative-ui`; surfaces are store-isolated per instance unless a consumer passes an explicit `[store]` (the two cockpit dashboard capabilities now opt in explicitly — backend STATE_SNAPSHOT state requires an explicit store by design, matching a2ui). Live dashboard renders real values; zero `[object Object]`.
- **F6 ✅ (main source)** — markdown children/table rows now track by `$index`; zero NG0956 during text/reasoning streaming. **Residual:** a handful of NG0956 warnings still fire during json-render *spec assembly* streaming; the source is not any identity-tracked `@for` in libs/chat, libs/render, or the example (all audited) — follow-up to pinpoint (likely inside the spec re-materialization path).
- **F6 ✅ (main source)** — markdown children/table rows now track by `$index`; zero NG0956 during text/reasoning streaming.
- **F6 residual ✅ (resolved 2026-06-18)** — the json-render *spec assembly* NG0956 residual is gone. Re-grounded against current main (post #680 render-lifecycle rework + F4 + the markdown `$index` fixes): **every** `@for` in the json-render path — `cockpit/ag-ui/json-render` views, the a2ui catalog, `libs/render` core (`render-element` `track $index`, `render-spec` has no `@for`), and `libs/chat` markdown — now keys on a **primitive** (`$index` / string key / numeric value); the NG0956-prone `track <object>` pattern is absent. Confirmed by a live `cockpit-ag-ui-json-render` e2e run streaming the airline dashboard: **zero NG0956** in the console.
- **No regression guard committed.** An e2e console-guard was prototyped but proven ineffective here: NG0956 only fires when an `@for` collection re-materializes across multiple change-detection cycles, but the aimock fixture replays the spec ~atomically (single `content`), so no `@for` re-evaluates. A negative control — forcing `track [key]` (identity) on the fixture-rendered `container` view — produced **no** NG0956, confirming the e2e harness cannot catch this class of regression. A real guard would need a **component-level** vitest test feeding a render component successive specs (simulating streaming deltas) and asserting no NG0956 across re-materialization. Deferred as optional.
- **F5 ⏳** — subagent card over AG-UI deferred to Phase 4 (needs design: mapping graph subagent custom events into the chat subagent contract in `toAgent()`).

Additional follow-ups logged during Phase 3:
Expand Down
Loading