LearnNewsExamplesServices
Frontmatter
id18645
titleThe dock guides teach the document-valued declared perspective
stateClosed
labels
documentationenhancementaidashboard
assigneesneo-fable
createdAtSep 13, 2026, 11:49 AM
updatedAtSep 13, 2026, 4:15 PM
githubUrlhttps://github.com/neomjs/neo/issues/18645
authorneo-fable
commentsCount0
parentIssue18605
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtSep 13, 2026, 4:15 PM

The dock guides teach the document-valued declared perspective

Closed v13.2.0/archive-v13-2-0-chunk-20 documentationenhancementaidashboard
neo-fable
neo-fable commented on Sep 13, 2026, 11:49 AM

Leaf of #18605 (parent linked natively). Decision Record impact: aligned-with ADR 0029 (§2.1 as amended by #18641).

Context

#18641 (merged 2026-09-13, dev@0b9178b63d) lets a perspectives value be an already-lowered neo.dock.zone.v1 document as well as zones: Authoring.isDocument discriminates by schema, Authoring.fromDocument admits the document through the checks a supplied dockModel passes, and the selection captures it as a baseline that is never registered (src/dashboard/dock/interaction/PerspectiveSelection.mjs:94, src/dashboard/dock/model/Authoring.mjs:44–56). ADR 0029 §2.1 carries the amendment; the guides do not. The panes guide's stage-two section (PR #18640, in review) says perspectives maps names to the same zones vocabulary, and the intro guide's rule 6 says "a map of names to zones" — true, and now incomplete: a host that supplies its own document can declare the arrangement it ships (perspectives: {shipped: initialDocument}), which is how the Workstation's baseline arrives under #18612.

The Problem

A consumer whose arrangement already exists as a document — a shipped snapshot, a generated document, a Group participant's saved main — reads the guides and concludes it must translate the document back into zones to declare it, or that it cannot declare at all. The guides teach one of the two admitted forms.

The Architectural Reality

  • Authoring.fromDocument(document) returns fromZones' result shape; the input is not normalized — an admitted document is its own baseline byte-for-byte.
  • PerspectiveSelection.capture() chooses per declared entry by Authoring.isDocument(value), so one map may mix both kinds.
  • A document-valued entry carries its own items; the panes catalog lowers only the zones-valued entries.
  • dock.perspective.modified compares the committed document against the declared baseline whichever kind it was (src/dashboard/dock/projection/PerspectiveState.mjs:28).

The Fix

Three documents, one clause each, no new preview, sequenced after PR #18640 lands (the same sections):

  • learn/guides/uibuildingblocks/DockLayoutsPanes.md — the stage-two section states the second admitted form beside the zones form (a neo.dock.zone.v1 document, admitted like a supplied dockModel, captured as the baseline byte-for-byte) and when a consumer reaches for it: the arrangement already exists as a document.
  • learn/guides/uibuildingblocks/DockLayouts.md rule 6 — "a map of names to zones or already-lowered documents".
  • learn/guides/uibuildingblocks/DockLayoutsAdoption.md — the Decision 5 paragraph names the shipped-document declaration as the way a document-supplying host declares its baseline.

Acceptance Criteria

  • The three passages name the document-valued form, its admission rule (validated like a supplied dockModel, never registered, byte-for-byte baseline) and the discriminator (the record's schema), with no ticket, PR or Discussion id in any guide.
  • A receipt in the unit runtime, written before the sentences: a workspace declaring {shipped: <document>, focus: <zones>} publishes {active: 'shipped', modified: false} at construction, reads modified: true after one committed change, and switches to focus through activePerspective.
  • The PR Refs #18605 and Resolves this leaf only; it branches from dev after PR #18640 lands.

Out of Scope

A new live preview; the Workstation's own declaration (#18612); the ADR (amended by #18641); the Neural Link tool descriptions (they name no declaration form).

Related

#18605 · #18641 / PR #18643 · #18614 / PR #18640 · #18612.

Live latest-open sweep: checked the latest 20 open issues at 2026-09-13T09:48:02Z; no equivalent. A2A claim window 09:14–09:48Z: one guide claim (#18036, the styling guide — disjoint). Memory Core rationale sweep: no prior decision on teaching the document form (the design-round notes name perspectives as arrangements over the same panes; the document form arrived with #18641). Own open tickets: #18605, #18614, #18617, #15252 — none covers it. Content grep for "lowered document", "document-valued", "fromDocument" over resources/content: none.

Origin Session ID: 512526ae-1663-4f19-b10f-99aea6bdc864 Retrieval Hint: "dock guides document-valued declared perspective Authoring.fromDocument shipped initialDocument"

🪢 Mnemosyne (Claude Fable 5.1, Claude Code) · session 512526ae-1663-4f19-b10f-99aea6bdc864