antechamber 1.0.14 → 1.0.15

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
@@ -7,6 +7,14 @@ and this project uses [Semantic Versioning](https://semver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.0.15] - 2026-10-23
11
+
12
+ ### Fixed
13
+
14
+ - Stop reaping a session while detached eval cells are still running: idle eviction killed the agent process and
15
+ every cell in its kernels once the session had been quiet for `ANTECHAMBER_IDLE_TIMEOUT_MS`. A session now stays
16
+ live while senpi-codemode reports detached cells, and its idle window restarts when the last one settles.
17
+
10
18
  ## [1.0.14] - 2026-10-22
11
19
 
12
20
  ### Fixed
package/dist/lifecycle.js CHANGED
@@ -56,6 +56,7 @@ export class SessionLifecycle {
56
56
  !s.hasPendingInteraction() &&
57
57
  !s.hasRunningChildren() &&
58
58
  !s.hasBackgroundWork?.() &&
59
+ !s.hasWakeSources?.() &&
59
60
  s.piSessionId !== undefined &&
60
61
  s.piPath !== undefined);
61
62
  }
@@ -73,6 +73,8 @@ export interface ManagedSession extends ThinkingState {
73
73
  hasRunningChildren: () => boolean;
74
74
  /** Live OmO background work (monitors) that keeps the agent process from idle eviction. */
75
75
  hasBackgroundWork?: () => boolean;
76
+ /** Live wake sources OmO publishes over RPC (detached eval cells), which also block idle eviction. */
77
+ hasWakeSources?: () => boolean;
76
78
  }
77
79
  type EventSink = (directory: string, event: OCEvent | TodoUpdated) => void;
78
80
  export declare class SessionManager {
package/dist/sessions.js CHANGED
@@ -149,6 +149,7 @@ export class SessionManager {
149
149
  published = true;
150
150
  this.subagents.wire(managed);
151
151
  this.monitors.wire(managed);
152
+ this.workStatus.wire(managed);
152
153
  this.lifecycle.touch(managed);
153
154
  this.wirePi(managed, pi);
154
155
  if (options.model !== undefined)
@@ -1414,6 +1415,7 @@ export class SessionManager {
1414
1415
  this.createdSessions.set(sc.piSessionId, sc.directory);
1415
1416
  this.subagents.wire(managed);
1416
1417
  this.monitors.wire(managed);
1418
+ this.workStatus.wire(managed);
1417
1419
  return managed;
1418
1420
  }
1419
1421
  /** Resolve a bare session id (e.g. deep link after restart) via known directories. */
@@ -70,6 +70,8 @@ export declare class WorkStatusBridge {
70
70
  private readonly work;
71
71
  constructor(monitors: MonitorSessions);
72
72
  private state;
73
+ /** Evicting the agent process would kill its detached eval cells, so a live wake source keeps it. */
74
+ wire(s: ManagedSession): void;
73
75
  observe(s: ManagedSession, ev: Record<string, unknown>): void;
74
76
  /** The agent process exited: its in-process wake sources and timers died with it. */
75
77
  stopParent(sessionID: string): void;
@@ -138,6 +138,10 @@ export class WorkStatusBridge {
138
138
  }
139
139
  return work;
140
140
  }
141
+ /** Evicting the agent process would kill its detached eval cells, so a live wake source keeps it. */
142
+ wire(s) {
143
+ s.hasWakeSources = () => (this.work.get(s.info.id)?.wakeSources.size ?? 0) > 0;
144
+ }
141
145
  observe(s, ev) {
142
146
  if (ev.name === WAKE_SOURCE_STATE_EVENT) {
143
147
  const source = parseWakeSource(ev.data);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antechamber-omo-compat",
3
- "version": "1.0.14",
3
+ "version": "1.0.15",
4
4
  "description": "OpenChamber extension: displays OmO tool calls the way OmO means them when OpenChamber runs on antechamber",
5
5
  "private": true,
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antechamber-omo-graph",
3
- "version": "1.0.14",
3
+ "version": "1.0.15",
4
4
  "description": "OpenChamber extension: live, interactive graph of the OmO sub-agents behind the current session",
5
5
  "private": true,
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antechamber-omo-work",
3
- "version": "1.0.14",
3
+ "version": "1.0.15",
4
4
  "description": "OpenChamber 2.x Work Status section: OmO todo phases, monitors, eval cells and background work of the current session",
5
5
  "private": true,
6
6
  "type": "module",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antechamber",
3
- "version": "1.0.14",
3
+ "version": "1.0.15",
4
4
  "description": "OpenCode-compatible HTTP/SSE server that lets OpenChamber drive the pi coding agent (and OmO) over RPC",
5
5
  "type": "module",
6
6
  "license": "MIT",