LearnNewsExamplesServices
Frontmatter
id14884
titleAccounts setup copy uses product language
stateClosed
labels
enhancementdeveloper-experienceai
assigneesneo-gpt
createdAt12:37 PM
updatedAt12:53 PM
githubUrlhttps://github.com/neomjs/neo/issues/14884
authorneo-gpt
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAt12:53 PM

Accounts setup copy uses product language

Closed Backlog/active-chunk-4 enhancementdeveloper-experienceai
neo-gpt
neo-gpt commented on 12:37 PM

Context

The Fleet Manager Accounts keeper-view currently exposes the right fail-closed credential boundary, but its visible copy still speaks implementation plumbing: Submit to Bridge, Connect Harness (NL-MCP), and bridge/protocol status messages. That copy is called out by the broader Fleet Manager surfaces:

  • #14614 owns the broad connect/add-agent onboarding surface.
  • #14807 defines the account/configuration model and explicitly requires product language: operator intent, never transport labels.
  • #14805 is the wider agentos design-conformance epic, where plumbing words in product copy are a review finding.

This ticket is the narrow one-PR leaf for the already-isolated Accounts visible-copy slice. It does not close the broader onboarding/model/design work.

Final duplicate sweep before create: checked latest 20 open GitHub issues at 2026-07-06T10:36Z; no equivalent one-PR Accounts-copy leaf found. Nearby broader issues were #14614, #14807, #14805, and #14809. A2A in-flight sweep checked latest 30 messages at 2026-07-06T10:36Z; no competing claim on this exact slice surfaced, only the existing #14614 lane claim by @neo-gpt.

The Problem

The UI labels and status strings expose Brain-side transport details to the human operator. That is not only rough copy; it hides the product action behind the implementation path. The operator action is adding an agent or connecting a harness. The bridge/NL-MCP details are implementation and can remain in internal method names, comments, or future tooltip/docs surfaces, but should not be primary button/status text.

The Architectural Reality

apps/agentos/view/Accounts.mjs already has the important security boundary:

  • PAT values are submitted only through the injected Fleet Registry bridge.
  • The password field is cleared after each attempt.
  • createPublicAgentDefinition() strips credentials before writing to AgentDefinitions.
  • connectExternalHarnessBridge() carries only the {action:'start'} request, no credential.

So this leaf should not rewrite the flow or the model. It should preserve the bridge method names and fail-closed behavior while changing only visible copy to product language.

Structure-map gate: npm run --silent ai:structure-map -- --files --loc ran at 2026-07-06T10:36Z; owning surface is the existing apps/agentos/view/Accounts.mjs with focused unit coverage in test/playwright/unit/apps/agentos/Accounts.spec.mjs. No new .mjs file or substrate placement decision is needed.

The Fix

Update visible Accounts action/status copy:

  • Submit to Bridge -> Add agent
  • Edit Sample -> Use sample
  • Connect Harness (NL-MCP) -> Connect harness
  • replace user-facing bridge/protocol status messages with product-language equivalents while preserving fail-closed/no-browser-secret wording.

Add a focused unit/source guard in Accounts.spec.mjs to pin the product labels and reject the old bridge/protocol labels.

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback Docs / Tests Evidence
Accounts visible action labels #14807 product-language rule; apps/agentos/view/Accounts.mjs Buttons speak user intent: Add agent, Use sample, Connect harness Internal bridge method names remain unchanged test/playwright/unit/apps/agentos/Accounts.spec.mjs source guard L2 unit/source guard
Accounts fail-closed status copy Existing credential boundary in Accounts.mjs User-facing copy stays product-level while saying no PAT/browser connection state is stored Bridge/protocol details stay in implementation comments/JSDoc Existing credential-boundary tests plus new copy guard L2 unit/source guard
Broad onboarding surface #14614 This ticket only fixes visible copy; #14614 remains open for operable-cold flow work Link as related, not close-target PR body Related: #14614 Scope audit

Decision Record impact

None. This is an app-level copy/guard leaf aligned with existing Fleet Manager product-language direction; no ADR or durable schema changes.

Acceptance Criteria

  • Accounts action buttons use product labels: Add agent, Use sample, and Connect harness.
  • User-facing status messages no longer say Submit to Bridge, Fleet Registry bridge unavailable in dev-server mode. Submit fails closed, Connect Harness (NL-MCP), or External harness connected through the Neural Link bridge.
  • Fail-closed security wording remains visible: dev-server add/connect failures still say no PAT/browser connection state is stored.
  • Focused Accounts unit/source coverage pins the new labels and rejects the old transport labels.

Out of Scope

The full #14614 add-agent/connect onboarding flow; the #14807 multi-agent configuration model; design-token styling/layout conformance from #14805/#14809; Brain-side bridge implementation; NL-MCP connection semantics.

Related

#14614 · #14807 · #14805 · #14809 · #14560

Origin Session ID: e0af78f0-80e9-485d-ae00-654ce902178d Retrieval Hint: "Accounts add-agent product language Submit to Bridge Connect Harness NL-MCP visible copy"

tobiu referenced in commit 7c1301b - "fix(agentos): use product language for account setup (#14884) (#14887)" on 12:53 PM
tobiu closed this issue on 12:53 PM