@code-yeongyu/senpi-codemode 2026.8.20 → 2026.8.21-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 +38 -0
- package/package.json +5 -5
- package/src/extension/session-manager.ts +8 -3
package/CHANGELOG.md
CHANGED
|
@@ -12,6 +12,44 @@
|
|
|
12
12
|
|
|
13
13
|
### Removed
|
|
14
14
|
|
|
15
|
+
## [2026.8.21-2] - 2026-08-21
|
|
16
|
+
|
|
17
|
+
### Breaking Changes
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- `js` eval cells now accept `local://` paths in `read()` and `write()` like every other kernel. The session manager computed the session local root only after its `language === "js"` early return, so the JavaScript kernel was constructed without `localRoots` or `artifactsDir` and every `local://` helper call failed with `Protocol paths are not supported by write()`, even though the JavaScript prelude documents `local://` as the session local root. `py`/`rb`/`jl` behavior is unchanged.
|
|
26
|
+
|
|
27
|
+
### Removed
|
|
28
|
+
|
|
29
|
+
## [2026.8.21] - 2026-08-21
|
|
30
|
+
|
|
31
|
+
### Breaking Changes
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
### Fixed
|
|
38
|
+
|
|
39
|
+
### Removed
|
|
40
|
+
|
|
41
|
+
## [2026.8.20-2] - 2026-08-20
|
|
42
|
+
|
|
43
|
+
### Breaking Changes
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
|
|
47
|
+
### Changed
|
|
48
|
+
|
|
49
|
+
### Fixed
|
|
50
|
+
|
|
51
|
+
### Removed
|
|
52
|
+
|
|
15
53
|
## [2026.8.20] - 2026-08-20
|
|
16
54
|
|
|
17
55
|
### Breaking Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-yeongyu/senpi-codemode",
|
|
3
|
-
"version": "2026.8.
|
|
3
|
+
"version": "2026.8.21-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.8.
|
|
34
|
-
"typebox": "1.3.
|
|
33
|
+
"@earendil-works/pi-ai": "npm:@code-yeongyu/senpi-ai@2026.8.21-2",
|
|
34
|
+
"typebox": "1.3.16"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
|
-
"@code-yeongyu/senpi": "2026.8.
|
|
37
|
+
"@code-yeongyu/senpi": "2026.8.21-2"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@code-yeongyu/senpi": "2026.8.
|
|
40
|
+
"@code-yeongyu/senpi": "2026.8.21-2"
|
|
41
41
|
},
|
|
42
42
|
"keywords": [
|
|
43
43
|
"senpi",
|
|
@@ -196,19 +196,24 @@ class DefaultCodemodeSessionManager implements CodemodeSessionManager {
|
|
|
196
196
|
if (!bridge) throw new Error("codemode bridge server is not running");
|
|
197
197
|
const configuredPoolWidth = this.#options.settings.parallelPoolWidth;
|
|
198
198
|
const parallelPoolWidth = Number.isFinite(configuredPoolWidth) ? Math.max(1, Math.trunc(configuredPoolWidth)) : 1;
|
|
199
|
+
// localRoots must be computed BEFORE the js branch: the JS kernel resolves local://
|
|
200
|
+
// from its worker init connection exactly like the subprocess kernels resolve it from
|
|
201
|
+
// theirs. Computing it after the early return left js cells with no local root at all.
|
|
202
|
+
const localRoots =
|
|
203
|
+
this.#options.localRoots ??
|
|
204
|
+
(this.#options.artifactsDir ? { local: join(this.#options.artifactsDir, "local") } : undefined);
|
|
199
205
|
if (language === "js") {
|
|
200
206
|
return new JavaScriptKernel({
|
|
201
207
|
sessionId: this.#options.sessionId,
|
|
202
208
|
cwd: this.#options.cwd,
|
|
203
209
|
parallelPoolWidth,
|
|
204
210
|
onMessage,
|
|
211
|
+
...(localRoots ? { localRoots: { ...localRoots } } : {}),
|
|
212
|
+
...(this.#options.artifactsDir ? { artifactsDir: this.#options.artifactsDir } : {}),
|
|
205
213
|
});
|
|
206
214
|
}
|
|
207
215
|
const detected = this.#options.availability[language].detected;
|
|
208
216
|
if (!detected.ok) throw new Error(`No ${language} interpreter is available`);
|
|
209
|
-
const localRoots =
|
|
210
|
-
this.#options.localRoots ??
|
|
211
|
-
(this.#options.artifactsDir ? { local: join(this.#options.artifactsDir, "local") } : undefined);
|
|
212
217
|
const connection = {
|
|
213
218
|
port: bridge.port,
|
|
214
219
|
token: bridge.token,
|