Skip to content

feat(fleet): P-FLEET.L20 - close a spoke from its orbit node or its banner (ADR-0402) - #391

Merged
mlcyclops merged 2 commits into
masterfrom
feat/fleet-l20-spoke-close
Sep 26, 2026
Merged

mlcyclops merged 2 commits into
masterfrom
feat/fleet-l20-spoke-close

Conversation

@emertins

Copy link
Copy Markdown
Collaborator

Owner request: on the spoke view, clicking opens the spoke in the composer (unchanged), and there is now a close option right there.

  • Orbit node: an X in the head, hidden until hover (always visible on a stopped card). The grid's two-step (P-FLEET.L10): a live spoke stops and stays with Respawn; a stopped spoke dismisses and falls back into the hub. Routed before the card's takeover click, so the X never opens the spoke.
  • Takeover banner: an X beside Switch that runs the same step and returns the composer to Main. A refusal keeps the composer where it is and says why.
  • One pure spokeClose(status) (orbit_layout.ts) decides act, label and tip; dismiss detaches the composer before the remove (fleet_grid's dismissLane order).
  • FleetOrbitDeps gains fleetStop/fleetRemove.

Verified live on a source engine (:5392, headless Chrome, two real lanes): hover reveals the X; click stopped the lane, kept the orbit open, relabelled to Dismiss; second click removed the lane from the engine and the node from the DOM; banner X stopped the driven lane and released the composer. orbit_layout.test.ts 13 pass, renderer suite 1304 pass, desktop tsc clean, make demo-P-FLEET.L20, served /app.js and /styles.css carry the new markers.

ADR-0402, PROGRESS entry included.

…anner (ADR-0402)

The orbit node keeps click-to-open and gains an X that takes the grid's
two-step: a live spoke stops (card stays, Respawn revives it), a stopped
spoke dismisses and falls back into the hub. The takeover banner gains an X
beside Switch that runs the same step and returns the composer to Main.
One pure spokeClose(status) decides act, label and tip; dismiss detaches
the composer before the remove; refusals show on the node or in a toast.

Verified live on a source engine with two real lanes; orbit tests 13 pass,
renderer suite 1304 pass, desktop tsc clean, make demo-P-FLEET.L20.

@mlcyclops mlcyclops left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified on an integration branch with #389/#392/#393 (tsc clean in root/desktop/server, full bun suite 5881 pass / 0 fail, make demo-P-FLEET.L20 passes). Driven live on an isolated engine: the takeover banner X stopped the driven spoke and returned the composer to Main while Main's own turn kept running; the orbit node X on the stopped spoke read Dismiss and removed the lane from the engine and the node from the DOM. Served /app.js and /styles.css carry orbit-node-x and spoke-close-btn.

@mlcyclops
mlcyclops merged commit 185d9e6 into master Sep 26, 2026
7 checks passed
@mlcyclops
mlcyclops deleted the feat/fleet-l20-spoke-close branch September 26, 2026 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants