LearnNewsExamplesServices
Frontmatter
id14826
titleRemove the constrained-blueprint create spine from apps/agentos
stateClosed
labels
enhancementairefactoring
assigneesneo-fable
createdAt5:40 AM
updatedAt6:40 AM
githubUrlhttps://github.com/neomjs/neo/issues/14826
authorneo-fable
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAt6:40 AM

Remove the constrained-blueprint create spine from apps/agentos

Closed Backlog/active-chunk-4 enhancementairefactoring
neo-fable
neo-fable commented on 5:40 AM

Context

Operator ruling, 2026-07-05 (damage-control step 3 of 3): the constrained-blueprint/keeper creation line is superseded — the full ruling and disposition are recorded on #13349 (comment 4884691993). Steps 1–2 executed the same day: PRs #14819/#14820/#14821 closed unmerged; tickets #14644/#14762/#14763/#14764/#14765/#14766/#14767/#14734/#14815/#13445 and the pillar epic #13349 closed as superseded. This ticket is the code retraction: remove the landed funnel from dev.

The operator's words, which are the spec: "NL enables you to combine neo widgets in any way, permute them in any way (vdom, styles, css selectors). save outputs. it was NEVER my intent to do shit like this." And: "analyze apps/agentos on the dev branch, create one ticket to REMOVE this uber brittle madness. AFTERWARDS we can start over the planning."

The Problem

apps/agentos carries a landed creation funnel — a blueprint schema registry with config-key allowlists, a deterministic request/mutation grammar, a materializer/accept path, and a created-instance registry — that gates a boundary the platform already holds. The Neural Link wire boundary is the safety contract: configs are data, functions cannot cross, only registered classes instantiate. The funnel therefore closes zero new risk and pays for it with the product: it constrains what a frontier model can build to a vocabulary of pre-approved shapes, which inverts the pillar (a user reasons with a model in a chat view; the model builds by driving the NL verb surface — any widget, any composition, vdom/style/CSS permutation — against a CSS-based design system, with outputs saved). This is removal, not repair: the direction was wrong at the spec level, so no fragment of the funnel should remain as an attractor.

The Architectural Reality

Enumerated from git ls-tree -r origin/dev plus full in-edge greps on 2026-07-05 (this section is the structure-map output for the affected folder):

Removal set A — the create module. Never mounted in the shell; the in-edge grep found ZERO code references outside the module itself (the only non-test mentions are design-doc prose and resources/content/** graph mirrors, which the data-sync pipeline owns):

  • apps/agentos/view/create/CreateSurface.mjs, CreateSurfaceController.mjs, CreationStateProvider.mjs
  • apps/agentos/view/create/model/CreatedInstance.mjs, apps/agentos/view/create/store/CreatedInstances.mjs
  • apps/agentos/view/create/util/acceptPath.mjs, blueprintSchema.mjs, creationFlowState.mjs, requestRoute.mjs
  • Unit specs: test/playwright/unit/apps/agentos/create/ — all six (acceptPath, createSurface, createdInstances, creationFlowState, creationStateProvider, requestRoute)

Removal set B — the first-widget childapp (the v1 grammar; the contamination source the create module generalized):

  • apps/agentos/childapps/widget/ — entire tree (app.mjs, index.html, neo-config.json, util/{blueprintEvidence, createdGridEvidence, firstWidgetEditModel, parseEditRequest, validateRequest}.mjs, view/{EvidencePane, RequestIntake, Viewport, ViewportController}.mjs)
  • Unit specs: test/playwright/unit/apps/agentos/childapps/widget/ — all seven
  • E2E specs (funnel-only, delete): test/playwright/e2e/FirstWidgetChatIntake.spec.mjs, FirstWidgetEditGrammar.spec.mjs, FirstWidgetEvidenceNeuralLink.spec.mjs, FirstWidgetEvidencePane.spec.mjs

Detachment edits (every code in-edge, verified):

  • apps/agentos/view/Accounts.mjs:56-58, apps/agentos/view/FleetSettingsPanel.mjs:50-52, apps/agentos/view/Viewport.mjs:66popupUrl members pointing at childapps/widget/index.html; remove the members and their launch affordances.
  • .gitignore:16-17 and .npmignore:19-20 — the two childapps/widget un-ignore lines in each.
  • test/playwright/e2e/NeuralLinkChildappConnect.spec.mjs — proves the PLATFORM childapp-connect capability and only uses the widget childapp as its fixture. Re-point to apps/colors/childapps/widget (exists on dev) or an equivalent childapp; the capability coverage MUST survive — only the fixture changes.

Survivors (do NOT touch): apps/agentos/design/*.html including chat-creation-plan.html (design SSOTs are drawings, not funnel code — re-planning consumes/amends them), resources/tokens.css + agentos-components.css + fleet-components.css, model/AgentDefinition.mjs + store/AgentDefinitions.mjs, view/fleet/**, view/Accounts.mjs / FleetSettingsPanel.mjs / DockPreview.mjs / Viewport.mjs (minus the detachment lines above), TOKENS.md / CARD-CONTRACT.md / VisualSystem.md, test/playwright/e2e/AgentOSCockpit.spec.mjs.

Contract Ledger

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
apps/agentos/view/create/** (unmounted module) #13349 supersession ruling Delete entirely None needed — zero external code in-edges (grep-verified 2026-07-05) No docs reference it In-edge grep in this body
Widget-childapp popup affordances (3 views) Same Remove popupUrl members + affordances UI loses a funnel-demo popup button; no product behavior depends on it None git grep -n "childapps/widget" lines cited above
NeuralLinkChildappConnect e2e Platform capability (NL childapp connect) Fixture re-point, assertions preserved n/a — coverage must not drop The spec itself apps/colors/childapps/widget exists on dev

Decision Record impact

none — the funnel was never ADR-recorded. ADR 0020 names the H2 pillar (conversational app creation), which survives; the ruling that governs this removal is the recorded supersession on #13349 (comment 4884691993).

Acceptance Criteria

  • Removal sets A and B deleted exactly as enumerated (9 module files + childapp tree, 13 unit specs, 4 first-widget e2e specs).
  • The three popupUrl detachments land; git grep -E "view/create|agentos/childapps/widget" -- apps/ test/ src/ returns nothing (design-HTML prose and resources/content/** mirrors excluded — the data-sync pipeline owns the mirrors; they are historical record, not code).
  • .gitignore / .npmignore widget un-ignore lines removed.
  • NeuralLinkChildappConnect.spec.mjs green against a non-widget childapp fixture — the connect capability keeps its coverage.
  • Full unit suite green; e2e suite green minus the four deleted specs.
  • The agentos shell boots clean (dev server, no console errors, Accounts/Fleet views render).

Out of Scope

  • Re-planning the conversational-creation pillar — that starts AFTER this removal lands, operator-gated, on the NL-native premise (successor epic minted then).
  • Design-system / conformance work (#14805, #14807, #14780 own those lanes).
  • Neural Link verb-surface changes (#14783 owns the capability matrix).
  • Any salvage of funnel fragments "for later" — delete means delete; history survives in git and the graph mirrors.

Avoided Traps

  • Partial salvage ("keep CreatedInstances as provenance"): rejected. Re-planning re-introduces what it needs against the NL-native shape; keeping funnel fragments leaves an attractor for re-growth — the childapp grammar becoming the create module's "precedent" is exactly how the funnel propagated once already.
  • Deleting NeuralLinkChildappConnect wholesale: rejected — it proves a platform capability; only its fixture is funnel-tainted.
  • Treating design/chat-creation-plan.html as removal-set: rejected — the chat view is confirmed product direction ("a harness has a chat view, where users can reason with you about what to build"); the drawing outlives the wrong implementation.

Related

Supersession record: #13349 comment 4884691993 · closed PRs #14819 #14820 #14821 · closed tickets #14644 #14762 #14763 #14764 #14765 #14766 #14767 #14734 #14815 #13445 · merged spine PRs whose code this removes: #14678 #14682 #14710 #14712 #14716 #14719 #14727 · #14781 (integration journeys — its creation journey gets re-cut at re-planning, not here).

Live latest-open sweep: latest 20 open issues checked 2026-07-05T03:39Z, no equivalent found; A2A in-flight claim scan clean (newest message >4h old, pre-dating the ruling).

Origin Session ID: b9b95ac6-42f5-47a3-b58f-6071f79657e8 Retrieval Hint: "create-spine supersession damage control removal" · #13349 comment 4884691993

Authored by Mnemosyne (Claude Fable 5, Claude Code).

tobiu referenced in commit 8edfaea - "refactor(agentos): remove the constrained-blueprint create spine (#14826) (#14828) on 6:40 AM
tobiu closed this issue on 6:40 AM