Skip to content
Open
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,11 @@ npx @waishnav/devspace config set publicBaseUrl https://devspace.example.com
| `DEVSPACE_WORKTREE_ROOT` | Directory for managed Git worktrees. Defaults to `~/.devspace/worktrees`. |
| `DEVSPACE_STATE_DIR` | Directory for SQLite state. Defaults to `~/.local/share/devspace`. |

DevSpace uses stateless Streamable HTTP for MCP requests. Each HTTP request gets
a fresh MCP transport/server pair, while durable workspace, process, OAuth, and
review state remains in DevSpace's own stores. There is therefore no retained
MCP transport-session pool to tune or prune.

## Native Artifact Download

Native-file download is disabled by default. Enable it when ChatGPT needs to hand
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"dev": "node scripts/dev-server.mjs",
"postinstall": "node scripts/fix-node-pty-permissions.mjs",
"start": "node dist/cli.js serve",
"test": "tsx src/config.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/mcp-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts",
"test": "tsx src/config.test.ts && tsx src/request-meta.test.ts && tsx src/incoming-artifacts.test.ts && tsx src/artifact-download.test.ts && tsx src/ui/card-types.test.ts && tsx src/ui/patch-display.test.ts && tsx src/ui/tool-display.test.ts && tsx src/apply-patch.test.ts && tsx src/process-platform.test.ts && tsx src/process-sessions.test.ts && tsx src/server-shutdown.test.ts && tsx src/local-agent-runtime.test.ts && tsx src/local-agent-adapters.test.ts && tsx src/local-agent-availability.test.ts && tsx src/local-agent-profiles.test.ts && tsx src/local-agent-targets.test.ts && tsx src/local-agent-store.test.ts && tsx src/roots.test.ts && tsx src/skills.test.ts && tsx src/workspaces.test.ts && tsx src/workspace-conversation.test.ts && tsx src/review-checkpoints.test.ts && tsx src/server.test.ts && tsx src/stateless-mcp-http.test.ts && tsx src/oauth-store.test.ts && tsx src/cli.test.ts",
"typecheck": "tsc -p tsconfig.json --noEmit"
},
"keywords": [],
Expand Down
6 changes: 4 additions & 2 deletions src/artifact-tools.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ export interface ArtifactToolRegistrationOptions {
config: ServerConfig;
workspaces: WorkspaceRegistry;
incomingArtifactAdapters?: readonly IncomingArtifactAdapter[];
trackActivity?: <T>(operation: () => Promise<T>) => Promise<T>;
}

export interface DownloadIncomingArtifactInput {
Expand Down Expand Up @@ -88,6 +89,7 @@ export function registerArtifactTools(
config,
workspaces,
incomingArtifactAdapters = [],
trackActivity = (operation) => operation(),
}: ArtifactToolRegistrationOptions,
): void {
const incomingRegistry = new IncomingArtifactAdapterRegistry(incomingArtifactAdapters);
Expand Down Expand Up @@ -116,7 +118,7 @@ export function registerArtifactTools(
_meta: { "openai/fileParams": ["file"] },
annotations: ARTIFACT_WRITE_ANNOTATIONS,
},
async (input) => executeArtifactTool(config, input, async () => {
async (input) => trackActivity(() => executeArtifactTool(config, input, async () => {
const workspace = workspaces.getWorkspace(input.workspaceId);
const downloaded = await downloadIncomingArtifact({
registry: incomingRegistry,
Expand All @@ -130,7 +132,7 @@ export function registerArtifactTools(
publicResult: { path: downloaded.path },
logResult: downloaded,
};
}),
})),
);
}

Expand Down
86 changes: 0 additions & 86 deletions src/mcp-sessions.test.ts

This file was deleted.

87 changes: 0 additions & 87 deletions src/mcp-sessions.ts

This file was deleted.

Loading