LearnNewsExamplesServices
Frontmatter
titlefeat(agentos): add dense workstation showcase (#15099)
authorneo-gpt-emmy
stateOpen
createdAt7:08 PM
updatedAt9:21 PM
closedAt
mergedAt
branchesdevcodex/15099-dense-workstation-demo
urlhttps://github.com/neomjs/neo/pull/15133
contentTrust
projected
quarantined0
signals[]
Open
neo-gpt-emmy
neo-gpt-emmy commented on 7:08 PM

Related: #15099

Demo C adds the v13.2 dense-workstation proof: twenty dock items at 2560x1440, a renderer-rich 100,000-row Store<Model> grid, a capped batched 10-records/sec feed, two source-owned rails, real tab overflow, split-and-return choreography, and both AgentOS themes. The signature holds under live transformation: the content never stops living while the workspace moves.

Evidence: L3 (local 2560x1440 Chromium + Neural Link + Canvas Worker journey) → L3 required (AC1-5 and AC8-10). Residual: AC6 [#15099] — attach the final recording and receive operator visual acceptance before ready-for-review.

Deltas from ticket

The ticket's cached-pane composition remains the authority, but live falsification sharpened its mechanism. Demo C stages the next dock shell under the real closest common parent, silently transfers pane ownership with keepMounted, and performs one updateDepth = -1 reconciliation so Neo emits DOM moves instead of remove/reinsert cycles. The trace exposed an override-signature gap in Neo.tab.BodyContainer / Neo.tab.Container; this PR forwards the existing four-argument atomic-remove contract and adds direct, delegated, and negative-control unit coverage.

The operator visual pass produced a bounded presentation repair at head 7ecac3c83: both Sparkline columns now use DevIndex-sized 160×50 cell geometry with contained canvases; smooth bounded series replace wraparound spikes; the header now has one action-labelled theme toggle and a coherent story/progress zone; start, row-action, overflow, grid, hover, pressed, and ripple states consume the AgentOS palette in both themes; progress paints exactly once per settled beat; and coarse replacement chrome no longer replays entry effects.

Two deeper contracts were deliberately not hidden inside this demo PR. #15135 owns a reusable TourRunner.stepSettled event that will replace Demo C's temporary log-settlement adapter. #15136 owns identity-preserving tab-container/header/strip/overflow reconciliation so the local replacement-chrome containment can be removed. Both tickets are unassigned and carry v13.2 project/milestone metadata.

Test Evidence

  • Exact rebased head: NEO_E2E_PORT=18148 npx playwright test agentos/DemoCDenseWorkstationNL -c test/playwright/playwright.config.e2e.mjs --workers=1 --reporter=line — 1/1 passed at 7ecac3c83 after rebasing onto origin/dev 1ca158c7d.
  • Visual-repair capture: the same targeted journey with video enabled at 2560×1440 — 1/1 passed; fresh light/dark frames were visually inspected. The recording is ready for operator review while this PR remains draft.
  • Presentation oracles added to the whitebox journey: exact 160×50 Sparkline fit with canvas content containment; one theme toggle; no generic-primary button/ripple leakage; exact progress sequence [0…9] with no regression; replacement chrome sampled with zero running entry-effect frames; zero page/runtime errors.
  • Focused composition: npm run test-unit -- apps/agentos/childapps/dockdemo/DemoCWorkspace.spec.mjs — 2/2 passed, including renderer geometry and bounded synthetic series.
  • Pre-commit gate: npm run agent-preflight -- --no-fix <7 changed files> — all requested gates passed; commit-time lint-staged passed whitespace, shorthand, JSDoc types, ticket archaeology, block alignment, parse, and AiConfig mutation checks.
  • Broader composition + consumed seams from the initial implementation: focused Demo C, TourRunner, DockLayoutAdapter, Overflow, and BodyContainer matrix — 44/44 passed; post-fast-forward critical subset — 7/7 passed.
  • AgentOS theme ownership: npm run check-agentos-theme — parity, token-only, and completeness passed.

Post-Merge Validation

  • None. Runtime and visual acceptance are pre-merge; the draft stays blocked on AC6/operator visual acceptance.

Evolution

The first implementation treated cached pane re-projection as destroy-free ownership bookkeeping. The live Canvas falsifier showed that a tab override dropped keepMounted, causing an otherwise invisible mounted true→false transition and invalidating transferred OffscreenCanvas ownership. Tobi's common-parent update model supplied the correct invariant: silent source/target mutation plus one closest-common-parent reconciliation. The visual pass then caught a second boundary: pane permanence does not imply chrome permanence. This patch contains the visible defect; #15136 records the identity-level repair instead of inflating the draft.

Does this PR resolve an issue?

Draft-only relationship above; this becomes Resolves #15099 only after AC6/operator visual acceptance.

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Code style update
  • Refactor
  • Build-related changes
  • Other, please describe:

Does this PR introduce a breaking change?

  • Yes
  • No

The PR fulfills this requirement:

  • It's submitted to the dev branch, not the main branch

If adding a new feature, the PR's description includes:

  • A convincing reason for adding this feature

Authored by Emmy (GPT-5.6 Sol, Codex). Session f95e01ff-ba36-409a-98af-573263fab247.