Home

giogio / goko

public
Overview Code History Branches Pull requestsIssuesInsights
main
HomeOverview Code PRsIssues

feat: multiple Claude/Codex accounts, sub-agent indicator, and a working spinner

4 days ago

d834dbf
Authored
asta-nguyen11/9/2026, 2:43:44 AM
Accounts (Settings > Accounts, header chip switcher): a named account runs its agent through
/usr/bin/env CLAUDE_CONFIG_DIR=... or CODEX_HOME=...; the Default account launches as before.
Usage is read per account (UsageSnapshot.accounts). Adding an account starts the agent's own login
(claude auth login / codex login) in a terminal session, and shared settings, skills, plugins, and
projects are symlinked from the default folder; credentials are never shared or read by Goko.

Sub-agent indicator: an additive SessionInfo.pid lets the app find agent CLIs (claude, codex,
opencode, devin) running under a session, by polling ps every 2 s, and show them on the session row.

The agent 'working' marker is a spinning accent ring instead of a pulsing yellow dot.

Includes real-daemon end-to-end tests, wiki and ARCHITECTURE.md updates, and the archived change
records.

Parente2b66da

52 files changed
  • ARCHITECTURE.md+31−6
  • apps/desktop/src-tauri/src/accounts.rs+1585−0
  • apps/desktop/src-tauri/src/activity.rs+65−2
  • apps/desktop/src-tauri/src/agents.rs+239−14
  • apps/desktop/src-tauri/src/commands.rs+18−6
  • apps/desktop/src-tauri/src/commands/tests.rs+316−1
  • apps/desktop/src-tauri/src/lib.rs+21−1
  • apps/desktop/src-tauri/src/subagents.rs
+583
−0
  • apps/desktop/src-tauri/src/usage.rs+708−46
  • apps/desktop/src-tauri/src/wiring_tests.rs+5−0
  • apps/desktop/src/App.test.tsx+5−4
  • apps/desktop/src/features/accounts/AccountUsageSummary.tsx+32−0
  • apps/desktop/src/features/accounts/queries.ts+88−0
  • apps/desktop/src/features/sessions/SessionItems.test.tsx+158−1
  • apps/desktop/src/features/sessions/SessionItems.tsx+35−0
  • apps/desktop/src/features/sessions/SessionLaunch.test.tsx+114−0
  • apps/desktop/src/features/sessions/SessionLaunch.tsx+23−7
  • apps/desktop/src/features/sessions/StateBadge.test.tsx+17−3
  • apps/desktop/src/features/sessions/StateBadge.tsx+8−2
  • apps/desktop/src/features/settings/AccountsSection.test.tsx+367−0
  • apps/desktop/src/features/settings/AccountsSection.tsx+295−0
  • apps/desktop/src/features/settings/SettingsPage.test.tsx+67−0
  • apps/desktop/src/features/settings/SettingsPage.tsx+21−2
  • apps/desktop/src/features/subagents/queries.test.tsx+78−0
  • apps/desktop/src/features/subagents/queries.ts+18−0
  • apps/desktop/src/features/usage/UsageChips.test.tsx+106−0
  • apps/desktop/src/features/usage/UsageChips.tsx+121−29
  • apps/desktop/src/features/usage/queries.test.tsx+1−0
  • apps/desktop/src/queryClient.ts+2−0
  • apps/desktop/src/services/accounts.test.ts+78−0
  • apps/desktop/src/services/accounts.ts+80−0
  • apps/desktop/src/services/subagents.ts+13−0
  • apps/desktop/src/services/sync.test.tsx+28−5
  • apps/desktop/src/services/sync.ts+4−0
  • apps/desktop/src/services/types.ts+2−0
  • apps/desktop/src/services/usage.ts+9−0
  • apps/desktop/src/stores/ui.test.tsx+37−0
  • apps/desktop/src/stores/ui.ts+13−0
  • crates/daemon/src/session.rs+2−1
  • crates/daemon/tests/session_manager.rs+30−0
  • crates/protocol/src/message.rs+1−0
  • crates/protocol/src/session.rs+47−0
  • docs/agent-devkit/INDEX.md+2−0
  • docs/agent-devkit/changes/archive/2026-11-08-multi-account/delta.md+44−0
  • docs/agent-devkit/changes/archive/2026-11-08-multi-account/design.md+212−0
  • docs/agent-devkit/changes/archive/2026-11-08-multi-account/tasks.md+183−0
  • docs/agent-devkit/changes/archive/2026-11-08-subagent-indicator/design.md+102−0
  • docs/agent-devkit/changes/archive/2026-11-08-subagent-indicator/tasks.md+98−0
  • docs/llm/INDEX.md+3−1
  • docs/llm/architecture/overview.md+54−20
  • docs/llm/domains/agent-accounts.md+138−0
  • docs/llm/domains/desktop-settings.md+48−5