Skip to content

feat(fdc3): Desktop Agent selection in Terminal + per-user agent config - #67

Open
griffithtp wants to merge 5 commits into
mainfrom
chore/fdc3-updates
Open

griffithtp wants to merge 5 commits into
mainfrom
chore/fdc3-updates

Conversation

@griffithtp

Copy link
Copy Markdown
Owner

Summary

  • Fix: widgets showed "no agent connection" while the Desktop Agent was running. With no fdc3 section in terminal.config.json, the Terminal injected an empty agent URL, which fdc3-plugin reads as "FDC3 off". A missing key now falls back to ws://localhost:7891/fdc3. "" still turns FDC3 off. Error messages now name the config key to set.
  • Desktop Agent per-user config: agent.config.json in the user's config dir (e.g. ~/Library/Application Support/one-terminal/) layers between the bundled file and OT_* env vars. Partial files are allowed, unknown keys are warned about, and every setting is logged at startup with its source.
  • Terminal agent selection:
    • Configure agents with fdc3.agents[] and fdc3.defaultAgent. Users switch from App Menu → Desktop Agent, the header badge, or the command palette.
    • The choice is saved and kept across restarts. OT_FDC3_AGENT_URL overrides it and makes the picker read-only.
    • Switching recreates panel webviews in place, with no restart, and channels are kept.
    • OpenFin, interop.io and Finsemble agents are listed but disabled until their connectors exist.
  • Docs: new docs/fdc3.md covering how widgets connect, choosing an agent, connector kinds, and Desktop Agent config. Code comments and the README point to it.
  • Broker: implemented GetCurrentContext, FindIntent, FindIntentsForContext, GetRegisteredApps and intent raising in the Desktop Agent and ot-fdc3.
  • Scaffolder: migration 0.1.14.

No breaking config changes.

Test plan

  • cargo test (12 new tests), clippy, tsc, ESLint and vite build are clean
  • Smoke-tested Desktop Agent and Terminal startup with a scratch HOME: each setting showed the right source, and a saved agent that was removed from config fell back to the default with a notice
  • Manual: switch agents with several widgets open (stacked and kept-alive) and confirm they all reconnect with channels kept
  • Manual: restart and confirm the choice is kept; with OT_FDC3_AGENT_URL set, the picker is read-only

@griffithtp griffithtp self-assigned this Oct 27, 2026
@griffithtp griffithtp added documentation Improvements or additions to documentation enhancement New feature or request labels Oct 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant