Context
Slice-2 redo (#13304) shipped the redo Neural Link tool + the in-heap redo branch on TransactionService, fully unit + compliance tested (100 specs green, no live bridge). Like the undo Slice-1 e2e (#13286), the live round-trip proof is bridge-gated: Neo CI does not run the playwright e2e suite, and a local run needs a fresh :8081 bridge (the stale-bridge story tracked in #13299). This ticket tracks that live e2e as the post-merge residual of #13304's last AC.
The Problem
The redo logic + the 6-site tool wiring are proven at the unit + contract layer, but the full live round-trip — agent drives a real app, creates a component, undoes it (gone), redoes it (restored) — can only be exercised end-to-end against a live App Worker over a fresh Neural Link bridge. That surface is unreachable from CI / the agent sandbox.
The Fix
A playwright e2e (sibling of test/playwright/e2e/NeuralLinkUndo.spec.mjs): drive a live app over the Neural Link → create_component → undo (asserts the component is gone from tree + DOM) → redo → assert the component is restored in BOTH the live component tree and the DOM. Add the redo() fixture helper alongside undo(). Carry the ⚠️ fresh-bridge diagnostic guard (a {redone:false, reason:'no-writer-identity'} here = a stale bridge predating the agent_message sidecar-emit merge, not a logic regression — mirrors NeuralLinkUndo.spec / #13294).
Acceptance Criteria
Out of Scope
- The redo CODE + unit/compliance coverage (#13304 — delivered).
- The fresh-bridge connect tooling (#13299).
Related
Origin Session ID: a0bc6b23-78c5-4bd7-b944-9db5e236f42d
Release classification: boardless (bridge-gated e2e residual — not v13-release-blocking; the redo code ships via #13304).
Context
Slice-2 redo (#13304) shipped the
redoNeural Link tool + the in-heap redo branch onTransactionService, fully unit + compliance tested (100 specs green, no live bridge). Like the undo Slice-1 e2e (#13286), the live round-trip proof is bridge-gated: Neo CI does not run the playwright e2e suite, and a local run needs a fresh:8081bridge (the stale-bridge story tracked in #13299). This ticket tracks that live e2e as the post-merge residual of #13304's last AC.The Problem
The redo logic + the 6-site tool wiring are proven at the unit + contract layer, but the full live round-trip — agent drives a real app, creates a component, undoes it (gone), redoes it (restored) — can only be exercised end-to-end against a live App Worker over a fresh Neural Link bridge. That surface is unreachable from CI / the agent sandbox.
The Fix
A playwright e2e (sibling of
test/playwright/e2e/NeuralLinkUndo.spec.mjs): drive a live app over the Neural Link →create_component→undo(asserts the component is gone from tree + DOM) →redo→ assert the component is restored in BOTH the live component tree and the DOM. Add theredo()fixture helper alongsideundo(). Carry the ⚠️ fresh-bridge diagnostic guard (a{redone:false, reason:'no-writer-identity'}here = a stale bridge predating theagent_messagesidecar-emit merge, not a logic regression — mirrorsNeuralLinkUndo.spec/ #13294).Acceptance Criteria
create → undo → redo → assert-restorede2e passes on a fresh:8081bridge (tree + DOM).redo()fixture helper mirrors theundo()one.NeuralLinkUndo.spec/ #13294).Out of Scope
Related
Origin Session ID: a0bc6b23-78c5-4bd7-b944-9db5e236f42d
Release classification: boardless (bridge-gated e2e residual — not v13-release-blocking; the redo code ships via #13304).