feat: workspaces own their sessions; desktop parity; sidebar and settings cleanup
Workspace sessions (docs/plans/desktop-parity, phases 1-5 and 7): - sessions.lane_id: a workspace lists only the sessions its panes held, stamped by bindRunSession (first writer wins, nested `claude -p` excluded); GET /api/sessions?lane=&archived= - session row state dot, double-click rename, archive (sessions.archived_at, hides only); the activity bar's duplicate Sessions tab removed - Fork beside Resume (--fork-session, Claude only), Ctrl/Cmd+click a live session opens it in a second pane, a diff line's comment is pasted into the workspace's last-focused pane (lib/panePaste.ts) dashboard_runs stability: - a pane's previous run is archived as <pane>@<started_at> instead of being overwritten by INSERT OR REPLACE - a run is flagged abandoned only once its tmux session is gone, at boot and on the run-heal beat (panes outlive a server restart) UI: - sidebar: no footer, language or theme block; small collapse button in the brand corner; version + update check in the connection details modal, a status-bar dot while a release is out; language in Settings -> General - one Switch component for every switch, the themed Checkbox for every checkbox (no native checkboxes) Also: AI Tools catalog trimmed to 10 built-ins (custom-file prompt modes tested through fixtures), and the workspace plans under docs/plans/ (the multi-user server plan lives in the AgentHub-Server repo).
This commit is contained in:
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"id": "aider",
|
||||
"label": "Aider",
|
||||
"detect": [
|
||||
"aider"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"bypass": [
|
||||
"--yes-always"
|
||||
],
|
||||
"homepageUrl": "https://aider.chat/docs/"
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"id": "amp",
|
||||
"label": "Amp",
|
||||
"detect": [
|
||||
"amp"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"bypass": [
|
||||
"--dangerously-allow-all"
|
||||
],
|
||||
"homepageUrl": "https://ampcode.com/manual#install",
|
||||
"faviconDomain": "ampcode.com",
|
||||
"install": {
|
||||
"kind": "npm",
|
||||
"package": "@sourcegraph/amp"
|
||||
},
|
||||
"update": {
|
||||
"kind": "npm"
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"id": "ante",
|
||||
"label": "Ante",
|
||||
"detect": [
|
||||
"ante"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"bypass": [
|
||||
"--yolo"
|
||||
],
|
||||
"homepageUrl": "https://github.com/AntigmaLabs/ante-preview",
|
||||
"faviconDomain": "antigma.ai"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"id": "aug",
|
||||
"label": "Auggie",
|
||||
"detect": [
|
||||
"auggie"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"homepageUrl": "https://docs.augmentcode.com/cli/overview",
|
||||
"faviconDomain": "augmentcode.com"
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"id": "autohand",
|
||||
"label": "Autohand Code",
|
||||
"detect": [
|
||||
"autohand"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"bypass": [
|
||||
"--unrestricted"
|
||||
],
|
||||
"homepageUrl": "https://github.com/autohandai/code-cli",
|
||||
"faviconDomain": "autohand.ai"
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"id": "cline",
|
||||
"label": "Cline",
|
||||
"detect": [
|
||||
"cline"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"bypass": [
|
||||
"--auto-approve",
|
||||
"true"
|
||||
],
|
||||
"homepageUrl": "https://docs.cline.bot/cline-cli/overview",
|
||||
"faviconDomain": "cline.bot"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"id": "codebuff",
|
||||
"label": "Codebuff",
|
||||
"detect": [
|
||||
"codebuff"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"homepageUrl": "https://www.codebuff.com/docs/help/quick-start",
|
||||
"faviconDomain": "codebuff.com"
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"id": "command-code",
|
||||
"label": "Command Code",
|
||||
"detect": [
|
||||
"command-code"
|
||||
],
|
||||
"args": [
|
||||
"--trust"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "argv"
|
||||
},
|
||||
"bypass": [
|
||||
"--yolo"
|
||||
],
|
||||
"homepageUrl": "https://commandcode.ai/docs/quickstart"
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"id": "continue",
|
||||
"label": "Continue",
|
||||
"detect": [
|
||||
"cn"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"bypass": [
|
||||
"--allow",
|
||||
"*"
|
||||
],
|
||||
"homepageUrl": "https://docs.continue.dev/guides/cli",
|
||||
"faviconDomain": "continue.dev"
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"id": "crush",
|
||||
"label": "Charm Crush",
|
||||
"detect": [
|
||||
"crush"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"bypass": [
|
||||
"--yolo"
|
||||
],
|
||||
"homepageUrl": "https://github.com/charmbracelet/crush",
|
||||
"faviconDomain": "charm.sh"
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"id": "cursor",
|
||||
"label": "Cursor",
|
||||
"label": "Cursor CLI",
|
||||
"detect": [
|
||||
"cursor-agent"
|
||||
],
|
||||
@@ -10,6 +10,9 @@
|
||||
"model": {
|
||||
"flag": "--model"
|
||||
},
|
||||
"resume": [
|
||||
"--continue"
|
||||
],
|
||||
"bypass": [
|
||||
"--yolo"
|
||||
],
|
||||
@@ -20,7 +23,10 @@
|
||||
"url": "https://cursor.com/install"
|
||||
},
|
||||
"update": {
|
||||
"kind": "script"
|
||||
"kind": "self",
|
||||
"args": [
|
||||
"update"
|
||||
]
|
||||
},
|
||||
"config": [
|
||||
{
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"id": "devin",
|
||||
"label": "Devin",
|
||||
"detect": [
|
||||
"devin"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"bypass": [
|
||||
"--permission-mode",
|
||||
"bypass",
|
||||
"--respect-workspace-trust",
|
||||
"false"
|
||||
],
|
||||
"homepageUrl": "https://devin.ai/cli",
|
||||
"faviconDomain": "devin.ai"
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"id": "droid",
|
||||
"label": "Droid",
|
||||
"detect": [
|
||||
"droid"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "argv"
|
||||
},
|
||||
"bypass": [
|
||||
"--auto",
|
||||
"high"
|
||||
],
|
||||
"homepageUrl": "https://docs.factory.ai/cli/getting-started/quickstart"
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"id": "goose",
|
||||
"label": "Goose",
|
||||
"detect": [
|
||||
"goose"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"bypassEnv": {
|
||||
"GOOSE_MODE": "auto"
|
||||
},
|
||||
"homepageUrl": "https://block.github.io/goose/docs/quickstart/",
|
||||
"faviconDomain": "goose-docs.ai"
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"id": "grok",
|
||||
"label": "Grok",
|
||||
"detect": [
|
||||
"grok"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "argv",
|
||||
"separator": "--"
|
||||
},
|
||||
"bypass": [
|
||||
"--permission-mode",
|
||||
"bypassPermissions"
|
||||
],
|
||||
"homepageUrl": "https://x.ai/cli",
|
||||
"faviconDomain": "x.ai"
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"id": "kilo",
|
||||
"label": "Kilocode",
|
||||
"detect": [
|
||||
"kilo"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"homepageUrl": "https://kilo.ai/docs/cli"
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"id": "kimi",
|
||||
"label": "Kimi",
|
||||
"detect": [
|
||||
"kimi",
|
||||
"kimi-code"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"bypass": [
|
||||
"--yolo"
|
||||
],
|
||||
"homepageUrl": "https://www.kimi.com/code/docs/en/kimi-code-cli/getting-started.html",
|
||||
"faviconDomain": "moonshot.cn"
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"id": "kiro",
|
||||
"label": "Kiro",
|
||||
"detect": [
|
||||
"kiro-cli"
|
||||
],
|
||||
"args": [
|
||||
"chat",
|
||||
"--tui"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"bypass": [
|
||||
"--trust-all-tools"
|
||||
],
|
||||
"homepageUrl": "https://kiro.dev/docs/cli/"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"id": "mimo-code",
|
||||
"label": "MiMo Code",
|
||||
"detect": [
|
||||
"mimo"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "flag",
|
||||
"flag": "--prompt"
|
||||
},
|
||||
"homepageUrl": "https://mimo.xiaomi.com/coder",
|
||||
"faviconDomain": "mimo.xiaomi.com"
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"id": "mistral-vibe",
|
||||
"label": "Mistral Vibe",
|
||||
"detect": [
|
||||
"vibe",
|
||||
"mistral-vibe"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"bypass": [
|
||||
"--agent",
|
||||
"auto-approve"
|
||||
],
|
||||
"homepageUrl": "https://github.com/mistralai/mistral-vibe",
|
||||
"faviconDomain": "mistral.ai"
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"id": "muse",
|
||||
"label": "Muse",
|
||||
"detect": [
|
||||
"muse"
|
||||
],
|
||||
"args": [
|
||||
"--trust-workspace"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"bypass": [
|
||||
"--yolo"
|
||||
],
|
||||
"homepageUrl": "https://dev.meta.ai/docs/muse-code",
|
||||
"faviconDomain": "dev.meta.ai"
|
||||
}
|
||||
@@ -7,5 +7,12 @@
|
||||
"prompt": {
|
||||
"mode": "argv"
|
||||
},
|
||||
"homepageUrl": "https://omp.sh"
|
||||
"homepageUrl": "https://omp.sh",
|
||||
"install": {
|
||||
"kind": "script",
|
||||
"url": "https://omp.sh/install"
|
||||
},
|
||||
"update": {
|
||||
"kind": "script"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"id": "openclaude",
|
||||
"label": "OpenClaude",
|
||||
"detect": [
|
||||
"openclaude"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "argv"
|
||||
},
|
||||
"bypass": [
|
||||
"--dangerously-skip-permissions"
|
||||
],
|
||||
"homepageUrl": "https://openclaude.gitlawb.com/"
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"id": "opencode2",
|
||||
"label": "OpenCode 2",
|
||||
"detect": [
|
||||
"opencode2"
|
||||
],
|
||||
"args": [
|
||||
"--standalone"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "flag",
|
||||
"flag": "--prompt"
|
||||
},
|
||||
"homepageUrl": "https://opencode.ai/v2/docs/"
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"id": "pi",
|
||||
"label": "Pi",
|
||||
"detect": [
|
||||
"pi"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "argv"
|
||||
},
|
||||
"homepageUrl": "https://pi.dev"
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"id": "prime-agent",
|
||||
"label": "Prime Agent",
|
||||
"detect": [
|
||||
"prime-agent"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "argv",
|
||||
"separator": "--"
|
||||
},
|
||||
"homepageUrl": "https://github.com/PrimeIntellect-ai/prime-agent",
|
||||
"faviconDomain": "primeintellect.ai"
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
{
|
||||
"id": "qwen-code",
|
||||
"label": "Qwen Code",
|
||||
"detect": [
|
||||
"qwen"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"model": {
|
||||
"flag": "--model"
|
||||
},
|
||||
"bypass": [
|
||||
"--approval-mode",
|
||||
"yolo"
|
||||
],
|
||||
"homepageUrl": "https://github.com/QwenLM/qwen-code",
|
||||
"faviconDomain": "qwenlm.github.io",
|
||||
"install": {
|
||||
"kind": "npm",
|
||||
"package": "@qwen-code/qwen-code"
|
||||
},
|
||||
"update": {
|
||||
"kind": "npm"
|
||||
},
|
||||
"config": [
|
||||
{
|
||||
"path": "~/.qwen/settings.json",
|
||||
"format": "jsonc"
|
||||
},
|
||||
{
|
||||
"path": "~/.qwen/QWEN.md"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"id": "rovo",
|
||||
"label": "Rovo Dev",
|
||||
"detect": [
|
||||
"rovo"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"bypass": [
|
||||
"--yolo"
|
||||
],
|
||||
"homepageUrl": "https://support.atlassian.com/rovo/docs/install-and-run-rovo-dev-cli-on-your-device/",
|
||||
"faviconDomain": "atlassian.com"
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"id": "trae",
|
||||
"label": "Trae",
|
||||
"detect": [
|
||||
"traecli"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "argv",
|
||||
"separator": "--"
|
||||
},
|
||||
"bypass": [
|
||||
"--yolo"
|
||||
],
|
||||
"homepageUrl": "https://docs.trae.cn/cli_get-started-with-trae-cli",
|
||||
"faviconDomain": "www.trae.cn"
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"id": "zcode",
|
||||
"label": "ZCode",
|
||||
"detect": [
|
||||
"zcode"
|
||||
],
|
||||
"prompt": {
|
||||
"mode": "after-start",
|
||||
"delayMs": 3000
|
||||
},
|
||||
"bypass": [
|
||||
"--mode",
|
||||
"yolo"
|
||||
],
|
||||
"homepageUrl": "https://zcode.z.ai/en/docs",
|
||||
"faviconDomain": "zcode.z.ai"
|
||||
}
|
||||
Reference in New Issue
Block a user