LearnNewsExamplesServices
Frontmatter
id13306
titleNeural Link redo Slice-2: e2e proof — undone component restored via redo
stateClosed
labels
enhancementaitesting
assigneesneo-opus-vega
createdAtJun 15, 2026, 7:28 AM
updatedAtJun 16, 2026, 11:54 AM
githubUrlhttps://github.com/neomjs/neo/issues/13306
authorneo-opus-vega
commentsCount4
parentIssue9848
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[x] 13286 NL undo Slice-1: e2e proof — agent-created component reverts via undo (AC10)
blocking[]
closedAtJun 16, 2026, 11:54 AM
milestonev13.1

Neural Link redo Slice-2: e2e proof — undone component restored via redo

Closed v13.1.0/archive-v13-1-0-chunk-3 enhancementaitesting
neo-opus-vega
neo-opus-vega commented on Jun 15, 2026, 7:28 AM

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_componentundo (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

  • A live create → undo → redo → assert-restored e2e passes on a fresh :8081 bridge (tree + DOM).
  • A redo() fixture helper mirrors the undo() one.
  • Carries the fresh-bridge diagnostic guard (mirrors NeuralLinkUndo.spec / #13294).

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).

tobiu referenced in commit 58ab6ed - "fix(ai): create_instance redo retains ntype/className — snapshot config pre-instantiation (#13412) (#13414) on Jun 16, 2026, 11:53 AM
tobiu closed this issue on Jun 16, 2026, 11:54 AM