Skip to content

Impl Local Sandbox - #306

Draft
chiragjn wants to merge 10 commits into
mainfrom
local-sandbox-2
Draft

Impl Local Sandbox#306
chiragjn wants to merge 10 commits into
mainfrom
local-sandbox-2

Conversation

@chiragjn

Copy link
Copy Markdown
Member

No description provided.

@changeset-bot

changeset-bot Bot commented Aug 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 116df00

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@truefoundry/trueforge-core Patch
@truefoundry/trueforge Patch
@truefoundry/trueforge-ui Patch
frontend Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

debajyoti-truefoundry and others added 10 commits August 18, 2026 11:19
Replace the pipe fixture with a product-shaped local client, inline it via build:gen, and point smoke at call-tool with TFY_MCP_SERVERS.

Co-authored-by: Cursor <cursoragent@cursor.com>
… provider.

Transports own script content and remotePath; Sandbox derives PYTHONPATH/PATH layout and skips install when Code Mode is unset.

Co-authored-by: Cursor <cursoragent@cursor.com>
Documents standalone fallback, v1 sandbox ids, and copy-into-server sequencing before package removal.

Co-authored-by: Cursor <cursoragent@cursor.com>
getGitCredentialsPath(): string {
// Isolated container per sandbox; absolute path so GIT_CONFIG_* needs no $HOME expansion.
return '/tmp/.git-credentials';
return join('/tmp', '.git-credentials');

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

posix

/** Current build status of the release image. Read-only: never kicks off a build. */
getImageBuildStatus(): Promise<SandboxBuild>;
createSandbox(): Promise<{ sandboxId: string }>;
createSandbox(params?: { sessionId?: string }): Promise<{ sandboxId: string }>;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

app-home
  db
    *.sqlite
    *.wal
    *.checkpoint
  sandboxes
    session_dir <- provider contructor
      ulid

want to standerdize the context input here a bit later.

getToolResultDumpDir(sandboxId: string): string;
/** Absolute path for the git credential-store file (per logical sandbox when sharing a pod). */
getGitCredentialsPath(sandboxId: string): string;
/** Directory for user-uploaded files (absolute, or cwd-relative when the provider has no global FS). */

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we make it clear that we want abs path within the sandbox.

instruction(builder: InstructionBuilder, paths: { skillsDir: string }): void;
// The command (+ env, timeout) that installs these skills; Sandbox folds it into its init exec.
getSandboxInit(): SandboxInit;
getSandboxInit(paths: { skillsDir: string; gitDownloaderPath: string }): SandboxInit;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

check.

return { pythonPath, binDir, binLink: join(binDir, 'mcp-client') };
}

/** Fallback PATH tail when the provider does not pass PATH (Daytona image defaults). */

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Check.

function mcpClientLayout(remotePath: string): { pythonPath: string; binDir: string; binLink: string } {
const pythonPath = dirname(remotePath);
const binDir = join(pythonPath, 'bin');
return { pythonPath, binDir, binLink: join(binDir, 'mcp-client') };

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

two sources of truth?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants