@rynx-ai/server 0.1.11-beta.34 → 0.1.11-beta.36
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/dist/control-api.d.ts
CHANGED
|
@@ -182,6 +182,7 @@ export declare function createControlRouter(opts: {
|
|
|
182
182
|
* and (codex-native live mode) bring up + inject into a session's forwarder. */
|
|
183
183
|
runnerManager?: {
|
|
184
184
|
stopRunner(localThreadId: string): void;
|
|
185
|
+
terminateLiveSession?(localThreadId: string): Promise<boolean>;
|
|
185
186
|
interruptLiveSession?(localThreadId: string): Promise<boolean>;
|
|
186
187
|
ensureLiveSession?(localThreadId: string, opts: {
|
|
187
188
|
workspace: SessionWorkspaceSnapshot;
|
package/dist/control-api.js
CHANGED
|
@@ -3778,7 +3778,15 @@ export function createControlRouter(opts) {
|
|
|
3778
3778
|
ctx.body = { error: "session_resource_cleanup_failed" };
|
|
3779
3779
|
return;
|
|
3780
3780
|
}
|
|
3781
|
-
runnerManager?.
|
|
3781
|
+
if (runnerManager?.terminateLiveSession) {
|
|
3782
|
+
await runnerManager.terminateLiveSession(id).catch((error) => {
|
|
3783
|
+
console.warn(`[control-api] session=${id} live teardown failed during deletion; continuing best-effort: ${error instanceof Error ? error.message : String(error)}`);
|
|
3784
|
+
return false;
|
|
3785
|
+
});
|
|
3786
|
+
}
|
|
3787
|
+
else {
|
|
3788
|
+
runnerManager?.stopRunner(id);
|
|
3789
|
+
}
|
|
3782
3790
|
sessionBus?.close(id);
|
|
3783
3791
|
deps.removeSessionMeta(id);
|
|
3784
3792
|
// Hard-delete the transcript too — the session list is meta ∪ log, so
|
|
@@ -96,6 +96,9 @@ export interface MachineSessionRunnerPort {
|
|
|
96
96
|
injectMessage(sessionId: string, input: RuntimeUserInput | string, options?: RuntimeTurnOptions): Promise<InjectResult>;
|
|
97
97
|
updateCollaborationMode?(sessionId: string, mode: SessionCollaborationMode): Promise<void>;
|
|
98
98
|
stopRunner(sessionId: string): void;
|
|
99
|
+
/** Full native teardown. Completion proves the runner child and its tmux/app-server
|
|
100
|
+
* descendants have exited before durable Session identity is removed. */
|
|
101
|
+
terminateLiveSession?(sessionId: string): Promise<boolean>;
|
|
99
102
|
resolveInteraction(sessionId: string, interactionId: string, resolution: SessionInteractionResolution): Promise<{
|
|
100
103
|
disposition: ControlSessionInteractionResolveDisposition;
|
|
101
104
|
}>;
|
|
@@ -1053,7 +1053,19 @@ export class MachineSessionService {
|
|
|
1053
1053
|
throw new MachineSessionServiceFailure("failed_precondition", "Session-owned resources could not be fenced before deletion", error instanceof Error ? error.message : String(error));
|
|
1054
1054
|
}
|
|
1055
1055
|
this.cancelledPendingDeliveries.add(sessionId);
|
|
1056
|
-
this.ports.execution?.runner
|
|
1056
|
+
const runner = this.ports.execution?.runner;
|
|
1057
|
+
if (runner?.terminateLiveSession) {
|
|
1058
|
+
try {
|
|
1059
|
+
await runner.terminateLiveSession(sessionId);
|
|
1060
|
+
}
|
|
1061
|
+
catch (error) {
|
|
1062
|
+
console.warn(`[machine-session] session=${sessionId} live teardown failed during deletion; continuing best-effort: ${error instanceof Error ? error.message : String(error)}`);
|
|
1063
|
+
runner.stopRunner(sessionId);
|
|
1064
|
+
}
|
|
1065
|
+
}
|
|
1066
|
+
else {
|
|
1067
|
+
runner?.stopRunner(sessionId);
|
|
1068
|
+
}
|
|
1057
1069
|
this.ports.events.close?.(sessionId);
|
|
1058
1070
|
await this.ports.pendingMessages?.delete(sessionId);
|
|
1059
1071
|
this.ports.pendingInputs?.deleteSession(sessionId);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rynx-ai/server",
|
|
3
|
-
"version": "0.1.11-beta.
|
|
3
|
+
"version": "0.1.11-beta.36",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/rynx-ai/rynx.git",
|
|
@@ -27,15 +27,15 @@
|
|
|
27
27
|
"@koa/router": "^15.4.0",
|
|
28
28
|
"koa": "^3.2.0",
|
|
29
29
|
"ws": "^8.21.0",
|
|
30
|
-
"@rynx-ai/core": "0.1.11-beta.
|
|
31
|
-
"@rynx-ai/plugin-sdk": "0.1.11-beta.
|
|
32
|
-
"@rynx-ai/protocol": "0.1.11-beta.
|
|
33
|
-
"@rynx-ai/remote-runtime-e2ee": "0.1.11-beta.
|
|
34
|
-
"@rynx-ai/runtime": "0.1.11-beta.
|
|
30
|
+
"@rynx-ai/core": "0.1.11-beta.36",
|
|
31
|
+
"@rynx-ai/plugin-sdk": "0.1.11-beta.36",
|
|
32
|
+
"@rynx-ai/protocol": "0.1.11-beta.36",
|
|
33
|
+
"@rynx-ai/remote-runtime-e2ee": "0.1.11-beta.36",
|
|
34
|
+
"@rynx-ai/runtime": "0.1.11-beta.36"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@types/ws": "^8.18.1",
|
|
38
|
-
"@rynx-ai/control-web": "0.1.11-beta.
|
|
38
|
+
"@rynx-ai/control-web": "0.1.11-beta.36"
|
|
39
39
|
},
|
|
40
40
|
"scripts": {
|
|
41
41
|
"build": "rm -rf dist && tsc -p tsconfig.json && mkdir -p dist/control-web && cp -R ../control-web/dist/. dist/control-web/",
|