mirror of
https://github.com/getpaseo/paseo.git
synced 2026-07-29 12:01:31 +00:00
Adds a new conceptual Workspaces doc that explains how Paseo organizes work around projects, workspaces, and sessions. Reframed the existing Git worktrees page as the technical deep-dive it always was. Updated glossary with agent session and tab terminology. Reordered docs nav so workspaces and worktrees come before providers.
7.3 KiB
7.3 KiB
Paseo Glossary
Authoritative terminology. UI label wins. Don't invent synonyms; use what's here.
- Project — Logical grouping of workspaces sharing a git remote (or main repo root). UI: "Project" / "Add project". Code:
ProjectSummary(packages/app/src/utils/projects.ts:22),projectKey(packages/server/src/server/workspace-registry-model.ts:16). Forbidden: "Repo", "Repository" as UI label. - Workspace — One concrete
cwdon one daemon, with git state; belongs to exactly one project. UI: "Workspace". Code:WorkspaceDescriptorPayload(packages/protocol/src/messages.ts:2178). Don't confuse with: Branch (one branch can back many workspaces via worktrees). Forbidden: "Folder", "Directory" as UI label. - Workspace kind —
"directory" | "local_checkout" | "worktree". Code:PersistedWorkspaceKind(packages/server/src/server/workspace-registry-model.ts:8). - Agent — See Agent session. UI still says "Agent" / "New Agent" in places, but moving toward Agent session as the canonical term. Code:
AgentSnapshotPayload(packages/protocol/src/messages.ts:608). Forbidden: "Task", "Job", "Run". - Daemon — Local Paseo server process; identified by
serverId. UI: "Daemon" (system contexts only). Code:serverIdinServerInfoStatusPayloadSchema(packages/protocol/src/messages.ts:1936),DaemonClient(packages/client/src/daemon-client.ts). - Host — Client-side connection profile pointing at a daemon; bundles one or more
HostConnections. UI: "Host" / "Add host" / "Switch host". Code:HostProfile(packages/app/src/types/host-connection.ts:37). Forbidden: "Connection" (meansHostConnection, not host). - Project host entry — One row in a project for a single (project, daemon) pair, aggregating that daemon's workspaces in the project. Internal. Code:
ProjectHostEntry(packages/app/src/utils/projects.ts:11). Don't introduce "Checkout" as a synonym. - Placement — One workspace's relationship to its project (projectKey, projectName, git checkout snapshot). Internal. Code:
ProjectPlacementPayload(packages/protocol/src/messages.ts:2113). - Branch — Plain git branch. UI: "Switch branch". Code:
currentBranchinWorkspaceGitRuntimePayloadSchema(packages/protocol/src/messages.ts:2136);BranchSwitcher(packages/app/src/components/branch-switcher.tsx). - Worktree — Paseo-managed git worktree (
~/.paseo/worktrees/{name}); also aworkspaceKindvalue. UI: CLI +paseo.jsonkeys (worktree.setup,worktree.teardown) only. Code:ProjectCheckoutLiteGitPaseoPayload(packages/protocol/src/messages.ts:2092); CLIpaseo worktree(packages/cli/src/commands/worktree/index.ts:8). Forbidden: "Checkout" as a synonym. - Repository / Remote — Internal git inputs (
remoteUrl,mainRepoRoot) used to deriveprojectKey. No UI label. - Agent session — One running instance of an agent inside a workspace (one provider, one model, one cwd, one timeline). The conceptual unit; in the UI this opens as a tab. Moving toward this as the canonical term over "Agent". Code:
AgentSnapshotPayload(packages/protocol/src/messages.ts:608). - Session — Two senses: (a) per-client connection to a daemon, internal; (b) user-facing agent session, see Agent session. Code:
Session(packages/server/src/server/session.ts) for (a). Don't confuse with: provider-side agent session log. - Profile — Internal name for the persisted shape of a host. Code:
HostProfile(packages/app/src/types/host-connection.ts:37). Never user-facing. - Provider — Agent backend (Claude Code, Codex, Copilot, OpenCode, Pi, OMP). UI: "Provider". Code:
ProviderSnapshotEntry(packages/protocol/src/messages.ts:198). - Model — A specific LLM offered by a provider. UI: "Model" / "Select model". Code:
AgentModelDefinition(packages/protocol/src/messages.ts:187). - Tab — UI surface representing one session inside a workspace. Not a conceptual unit; use Agent session when talking about the model. Code:
WorkspaceTabDescriptor(packages/app/src/screens/workspace/workspace-tabs-types.ts). - Terminal — Workspace-scoped PTY shell streamed over the binary mux channel. UI: "Terminal". Code:
TerminalStreamFrame(packages/protocol/src/terminal-stream-protocol.ts). - Schedule — Cron-style trigger that creates new agents. UI: CLI/MCP (
paseo schedule,create_schedule). Don't confuse with: Heartbeat (cron prompt back into the same agent) or Loop (iterative re-execution of one agent). - Heartbeat — Cron-style prompt sent back into the same agent/conversation. MCP:
create_heartbeat. Use for reminders and babysitting where the status should return inline. - Mode — Provider-specific operational mode (plan, default, full-access, …). UI: icon-only. Code:
modeIdinAgentSessionConfig(packages/protocol/src/messages.ts:257). - Attachment — GitHub PR or Issue bound to an agent prompt. UI: "Attach issue or PR". Code:
AgentAttachment(packages/protocol/src/messages.ts:782). - Composer — The whole prompt surface for sending work to an agent. Code:
Composer(packages/app/src/composer/index.tsx). Don't call this "message input" except for the text-entry subcomponent. - Composer input — The text-entry surface inside the composer. Code:
MessageInput(packages/app/src/composer/input/input.tsx). - Composer toolbar — The bottom control row inside the composer input. Contains agent controls, attachment button, voice controls, and stop/send controls. Code:
leftContent,beforeVoiceContent, andrightContentslots inMessageInput(packages/app/src/composer/input/input.tsx). Forbidden: "Status bar". - Agent controls — Provider, model, mode, thinking, and provider-feature controls for an agent or draft agent. Code:
AgentControls/DraftAgentControls(packages/app/src/composer/agent-controls/index.tsx). Forbidden: "Agent status bar". - Composer footer — Optional area rendered below the composer input but still inside the keyboard-shifted composer layout. Code:
Composer.footer(packages/app/src/composer/index.tsx). - Composer track — A contextual lane above the composer input. Specific tracks use the
<thing> trackform: Queue track, Subagents track. Code: queue track insideComposer(packages/app/src/composer/index.tsx),SubagentsTrack(packages/app/src/subagents/track.tsx). - Attachment tray — The selected-attachments row inside the composer input, above the text input. Code:
renderAttachmentTray(packages/app/src/composer/index.tsx). Forbidden: "Attachment bar". - Conflict — Two distinct senses; do NOT use the bare word in UI copy without qualifying which: (a) stale-write conflict on
paseo.json("Config changed on disk", codestale_project_config,packages/app/src/screens/project-settings-screen.tsx:593); (b) git merge conflict (no current UI string).
Inconsistencies (documented, not papered over)
- CLI
--host <host>description"Daemon host target"(packages/cli/src/utils/command-options.ts:5) blurs daemon/host; the app keeps them distinct. WorkspaceDescriptorPayloadSchema.workspaceKindaccepts legacy"checkout"on the wire (packages/protocol/src/messages.ts:2187) whilePersistedWorkspaceKinddoes not (packages/server/src/server/workspace-registry-model.ts:8).