@code-yeongyu/senpi-codemode 2026.9.30 → 2026.10.1-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -12,6 +12,30 @@
12
12
 
13
13
  ### Removed
14
14
 
15
+ ## [2026.10.1-2] - 2026-10-01
16
+
17
+ ### Breaking Changes
18
+
19
+ ### Added
20
+
21
+ ### Changed
22
+
23
+ ### Fixed
24
+
25
+ ### Removed
26
+
27
+ ## [2026.10.1] - 2026-10-01
28
+
29
+ ### Breaking Changes
30
+
31
+ ### Added
32
+
33
+ ### Changed
34
+
35
+ ### Fixed
36
+
37
+ ### Removed
38
+
15
39
  ## [2026.9.30] - 2026-09-30
16
40
 
17
41
  ### Breaking Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-yeongyu/senpi-codemode",
3
- "version": "2026.9.30",
3
+ "version": "2026.10.1-2",
4
4
  "description": "Source-only senpi extension package for codemode evaluation tools",
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
@@ -30,14 +30,14 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@babel/parser": "8.0.4",
33
- "@earendil-works/pi-ai": "npm:@code-yeongyu/senpi-ai@2026.9.30",
33
+ "@earendil-works/pi-ai": "npm:@code-yeongyu/senpi-ai@2026.10.1-2",
34
34
  "typebox": "1.3.34"
35
35
  },
36
36
  "peerDependencies": {
37
- "@code-yeongyu/senpi": "2026.9.30"
37
+ "@code-yeongyu/senpi": "2026.10.1-2"
38
38
  },
39
39
  "devDependencies": {
40
- "@code-yeongyu/senpi": "2026.9.30"
40
+ "@code-yeongyu/senpi": "2026.10.1-2"
41
41
  },
42
42
  "keywords": [
43
43
  "senpi",
@@ -1,4 +1,4 @@
1
- import type { ExtensionContext } from "@code-yeongyu/senpi";
1
+ import { type ExtensionContext, withBundledBunCommands } from "@code-yeongyu/senpi";
2
2
  import type { AgentExecuteTool } from "../bridges/agent-bridge.ts";
3
3
  import type { EvalSchemaToolInfo } from "../bridges/schema-bridge.ts";
4
4
  import type { CompletionRequest, CompletionResult } from "../completion/handler.ts";
@@ -67,7 +67,7 @@ export async function createRuntime(
67
67
  const executeTool = createExecuteTool(pi, activeTools);
68
68
  const create = options.createSessionManager ?? createCodemodeSessionManager;
69
69
  const sessionId = sessionIdFrom(event);
70
- const sessionEnv = sessionEnvironmentFrom(ctx);
70
+ const sessionEnv = { ...sessionEnvironmentFrom(ctx), ...bundledBunPathEntry() };
71
71
  const configuredPoolWidth = settings.parallelPoolWidth;
72
72
  const parallelPoolWidth = Number.isFinite(configuredPoolWidth) ? Math.max(1, Math.trunc(configuredPoolWidth)) : 1;
73
73
  const manager = await create({
@@ -105,6 +105,17 @@ export function createExecuteTool(pi: CodemodeRuntimeAPI, activeTools?: Readonly
105
105
  });
106
106
  }
107
107
 
108
+ // In a compiled executable, Bun Shell runs `bun` as this executable unless PATH has one, which booted
109
+ // a second agent from `bun test` in a cell (omo#9362). Kernel children get the same bundled `bun`
110
+ // directory the bash tool's PATH carries.
111
+ function bundledBunPathEntry(): Record<string, string> {
112
+ const env = withBundledBunCommands(process.env);
113
+ if (env === process.env) return {};
114
+ const pathKey = Object.keys(env).find((key) => key.toLowerCase() === "path") ?? "PATH";
115
+ const value = env[pathKey];
116
+ return value === undefined ? {} : { [pathKey]: value };
117
+ }
118
+
108
119
  function sessionIdFrom(event: unknown): string {
109
120
  if (typeof event === "object" && event !== null && "sessionId" in event && typeof event.sessionId === "string") {
110
121
  return event.sessionId;