Skip to content

fix: onboarding UX — auth hint + default MCP channels - #146

Merged
aterrylu merged 2 commits into
mainfrom
terry/onboarding-fixes
Apr 15, 2026
Merged

fix: onboarding UX — auth hint + default MCP channels#146
aterrylu merged 2 commits into
mainfrom
terry/onboarding-fixes

Conversation

@aterrylu

Copy link
Copy Markdown
Owner

Summary

Two P0 onboarding fixes that unblock new users:

  • Auth dead-end (fix: terminal UX — scroll, focus, and mobile keyboard #25): Login page now tells users where to find their token — server console output or ~/.autonomos/token. Also fixes a pre-existing bug where network errors showed "Invalid token" instead of "Cannot reach server".

  • Missing MCP tools (feat: pinned sessions, drag-to-reorder, Codicon icons #26): Default channels ["server:autonomos"] now applied in getSettings() instead of only in the API response layer. Previously, createSession() saw undefined channels when no settings.json existed, so agents spawned from the UI never got --mcp-config or --dangerously-load-development-channels.

Changes

File What
packages/dashboard/src/App.tsx Help text on login page + network vs auth error distinction
packages/server/src/settings.ts Default channels in getSettings(), warn on malformed settings
packages/server/src/routes/settings.ts Remove redundant fallback (now handled upstream)

Test plan

  • Start server without ~/.autonomos/settings.json — verify login page shows token location hint
  • Submit wrong token — verify "Invalid token" error
  • Stop server, submit token — verify "Cannot reach server" error
  • Create agent from UI without prior settings config — verify it gets MCP tools (send, list_agents, etc.)
  • Explicitly set channels: [] in settings — verify agents spawn without MCP tools (opt-out works)

Closes #25, closes #26

🤖 Generated with Claude Code

@nox-0x nox-0x left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM — clean fix. The res.ok narrowing and channels defaulting are both correct and well-reasoned. Ship it.

aterrylu and others added 2 commits April 14, 2026 21:06
Two P0 onboarding fixes for new users:

1. Auth dead-end (#25): Login page now shows where to find the auth
   token (server console or ~/.autonomos/token). Also distinguishes
   network errors ("Cannot reach server") from invalid tokens.

2. Missing MCP tools (#26): Default channels ["server:autonomos"] now
   applied in getSettings() instead of only in the API response layer.
   This ensures createSession() always injects the channel server and
   MCP config, so agents created from the UI get autonomOS tools
   out of the box.

Closes #25, closes #26

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add 12 unit tests covering getSettings() default channel behavior:
  no file, missing key, null channels, explicit empty array, custom
  channels, invalid JSON shapes, and updateSettings round-trips
- Fix channels: null edge case (use == null to catch both null and undefined)
- Warn on valid-JSON-but-wrong-shape settings file
- Distinguish network errors from invalid tokens on login page

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@aterrylu
aterrylu force-pushed the terry/onboarding-fixes branch from 3188ae9 to efb4365 Compare April 15, 2026 04:06
@aterrylu
aterrylu marked this pull request as ready for review April 15, 2026 04:07

@nox-0x nox-0x left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM ✅ — auth error distinction is correct, default channels in getSettings() is the right fix, comprehensive test coverage.

@aterrylu
aterrylu merged commit dea0be9 into main Apr 15, 2026
1 check passed
@aterrylu
aterrylu deleted the terry/onboarding-fixes branch April 15, 2026 04:55
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.

2 participants