Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
3bfda10
fix(runtime): allow bounded Apple Git startup
Dante-dan Sep 13, 2026
7894f8b
fix(runtime): tighten Apple toolchain grants
Dante-dan Sep 14, 2026
d7ceeb1
fix(runtime): require Apple signer for developer roots
Dante-dan Sep 17, 2026
de5757c
docs: register Apple signer platform test
Dante-dan Sep 17, 2026
5957562
chore: merge main and refresh Windows test inventory
Dante-dan Sep 18, 2026
78f2785
test(runtime): cover bounded Apple toolchain probes
Dante-dan Sep 19, 2026
c6d7549
chore: merge main and refresh Windows test inventory
Dante-dan Sep 22, 2026
54e7219
chore: merge main and refresh Windows test inventory
Dante-dan Sep 26, 2026
dca830e
chore: sync latest main
Dante-dan Sep 26, 2026
02489b5
chore: sync latest main
Dante-dan Sep 26, 2026
24fd9fc
chore: sync latest main
Dante-dan Sep 26, 2026
ab11ad1
fix(runtime): keep Apple toolchain roots within selected bundle
Dante-dan Sep 28, 2026
9f8d3d7
chore: sync latest main
Dante-dan Sep 28, 2026
d5ffe03
chore: sync current main and regenerate Windows test inventory
Dante-dan Sep 30, 2026
22af4d5
fix(runtime): await Apple toolchain verification without blocking
Dante-dan Sep 30, 2026
5b15444
chore: merge main and regenerate Windows test inventory
Dante-dan Oct 3, 2026
5e99752
fix(runtime): bound Apple toolchain probes and accept Xcode bundles
Dante-dan Oct 4, 2026
57229ba
fix(runtime): explain failed Apple toolchain discovery
Dante-dan Oct 4, 2026
213c4ad
fix(runtime): deduplicate Apple toolchain diagnostics
Dante-dan Oct 4, 2026
5ab3b10
chore: merge main and refresh Windows test inventory
Dante-dan Oct 12, 2026
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: 3 additions & 2 deletions docs/windows-test-inventory.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ Locations intentionally omit line numbers so unrelated edits do not invalidate t
|---|---:|
| windows-backend-gap | 27 |
| portable-candidate | 56 |
| platform-contract | 48 |
| platform-contract | 49 |

Total Windows-excluded declarations: **131**
Total Windows-excluded declarations: **132**

## Inventory

Expand Down Expand Up @@ -86,6 +86,7 @@ Total Windows-excluded declarations: **131**
| platform-contract | `packages/runtime/src/__tests__/filesystem-worker-process-runner.test.ts` filesystem worker rejects boundedly when a detached descendant retains stdout | `process.platform === 'win32' ? 'POSIX detached process-group semantics required' : false` |
| platform-contract | `packages/runtime/src/__tests__/filesystem-worker-smoke.test.ts` macOS filesystem worker smoke | `process.platform !== 'darwin'` |
| platform-contract | `packages/runtime/src/__tests__/glob-search.test.ts` both Glob paths report permission failures and recover after permissions are restored | `process.platform === 'win32' \|\| process.getuid?.() === 0` |
| platform-contract | `packages/runtime/src/__tests__/macos-command-paths.test.ts` Apple signer validation | `process.platform !== 'darwin'` |
| portable-candidate | `packages/runtime/src/__tests__/node-pty-write-lifecycle.test.ts` does not carry queued Unix PTY writes past native exit | `process.platform === 'win32' ? 'Unix PTY file-descriptor lifecycle only' : false` |
| platform-contract | `packages/runtime/src/__tests__/owned-child-process.test.ts` POSIX cancellation delivers SIGTERM exactly once to the owned command | `process.platform === 'win32' ? 'POSIX detached process-group semantics required' : false` |
| platform-contract | `packages/runtime/src/__tests__/owned-child-process.test.ts` supervisor mirrors a command that dies from ${signal} | `process.platform === 'win32' ? 'POSIX detached process-group semantics required' : false` |
Expand Down
65 changes: 65 additions & 0 deletions packages/runtime/src/__tests__/builtin-tools.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1534,6 +1534,71 @@ describe('builtin Bash streaming output', () => {
}
});

test('does not turn Git config references into host-discovered sandbox grants', async () => {
const root = await mkdtemp(join(tmpdir(), 'maka-bash-no-git-config-scan-'));
try {
const config = join(root, 'outside.config');
await writeFile(config, `[include]\n\tpath = ${join(root, 'included.config')}\n`);
let input: Parameters<ShellRunLauncher['runForegroundBash']>[0] | undefined;
const shellRuns: ShellRunLauncher = {
async runForegroundBash(value) {
input = value;
return {
kind: 'terminal',
cwd: value.cwd,
cmd: value.command,
status: 'completed',
exitCode: 0,
output: {
mode: 'pipes',
stdout: '',
stderr: '',
stdoutTruncated: false,
stderrTruncated: false,
redacted: false,
},
};
},
async runBackgroundBash() {
throw new Error('not used');
},
};
const bash = buildBuiltinTools({
shellRuns,
shellEnvironment: { GIT_CONFIG_GLOBAL: config },
permissionProfile: createWorkspaceWritePermissionProfile(),
sandboxManager: new SandboxManager([new MacosSeatbeltBackend()]),
sandboxPlatform: 'darwin',
}).find((candidate) => candidate.name === 'Bash');
if (!bash) throw new Error('Bash tool missing');

await bash.impl(
{ command: '/usr/bin/git status --short' },
{
sessionId: 'session-1',
turnId: 'turn-1',
toolCallId: 'tool-1',
cwd: root,
permissionMode: 'ask',
abortSignal: new AbortController().signal,
emitOutput: () => {},
},
);

assert.ok(input?.argv);
assert.equal(
input.argv.some((argument) => argument.includes(config)),
false,
);
assert.equal(
input.argv.some((argument) => argument.includes('RUNTIME_READABLE_FILE')),
false,
);
} finally {
await rm(root, { recursive: true, force: true });
}
});

test('Read treats runtime background task refs as whole resources', async () => {
const calls: unknown[] = [];
const runtimeResources = {
Expand Down
Loading
Loading