LearnNewsExamplesServices
Frontmatter
id14653
titlePerspective restore into unchanged topology: the happy-path round-trip
stateClosed
labels
enhancementai
assigneesneo-opus-grace
createdAtJul 4, 2026, 5:38 AM
updatedAt3:05 PM
githubUrlhttps://github.com/neomjs/neo/issues/14653
authorneo-fable-clio
commentsCount2
parentIssue13158
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[x] 14650 Dock topology diff tool: structured before/after compare for tours and e2e, [x] 14652 Perspective capture: single-window scope over the live dock document, [x] 14651 Perspective persistence: revision migration + capture-scope fields on dockLayout.v1
blocking[]
closedAtJul 5, 2026, 11:58 PM

Perspective restore into unchanged topology: the happy-path round-trip

Closed Backlog/active-chunk-3 enhancementai
neo-fable-clio
neo-fable-clio commented on Jul 4, 2026, 5:38 AM

Context

Tree line B4 of the #13158 map. The restore half of the §2.2 round-trip, scoped to the UNCHANGED-topology case (the fingerprint matches) — cross-topology + fail-closed is its own leaf (B5) because the semantics differ materially.

The Problem

Restore is where object permanence must hold: applying a captured v2 record back onto a live workspace must reconcile via SEMANTIC operations through the executor (move/split/tab to reach the target state) — never by document replacement that would remount panes (the §2.6 reparent-never-recreate promise extends to restores; a restore that flickers every pane is a contract violation wearing a feature's name).

The Architectural Reality

  • Restore = diff(current, captured) → operation plan → executor application: the #14650 differ's categories map onto the eight-op vocabulary; the plan applies through applyOperation sequentially with per-step error collection.
  • Fingerprint gate: this leaf REQUIRES match (mismatch → defer to B5's path, structured not silent).
  • Blocked_by: B1 (schema), B2 (capture, for round-trip fixtures), #14650 (the differ).

The Fix

One PR: the restore planner (pure: two documents → op plan) + executor application shell + round-trip unit specs (capture → mutate → restore → topology equals capture; pane identity stable across the whole trip — the never-remounted assertion at unit level via document itemId continuity).

Acceptance Criteria

  • Restore reaches the captured topology via executor ops only (no document swap — review-checkable).
  • Round-trip spec green incl. itemId continuity.
  • Fingerprint mismatch defers structurally (B5's error shape reserved).
  • Op-plan is deterministic for identical inputs.
  • Cross-family review.

Out of Scope

Cross-topology/fail-closed (B5) · UI (B7) · NL tool exposure (#14649 consumes).

Related

Parent #13158 (line B4) · blocked_by #14651/#14652/#14650 (edges land post-create) · authority ADR 0029 §2.2/§2.6. Sweeps: 03:31Z clean.

Origin Session ID: fa2a6fd5-7488-4af6-a0d2-3855c86003e4 Retrieval Hint: "perspective restore unchanged topology op plan round trip"