@rynx-ai/server 0.1.11-beta.52 → 0.1.11-beta.53

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.
Files changed (2) hide show
  1. package/dist/server.js +16 -4
  2. package/package.json +7 -7
package/dist/server.js CHANGED
@@ -604,10 +604,6 @@ export async function startServer({ config = loadConfig(), control, sessionLog,
604
604
  webSocketServers.push(attachEmulatorTouchWs(server, { emulator: control.emulator }));
605
605
  }
606
606
  startupWebSocketServers = webSocketServers;
607
- // Plugin recovery fences and revokes any product-owned Portal authority.
608
- // Do not expose the listener until every enabled Plugin got its serialized
609
- // startup attempt; startPluginRuntimes absorbs individual failures.
610
- await (pluginRuntime?.startPluginRuntimes() ?? Promise.resolve());
611
607
  if (sessionPortalConfig) {
612
608
  sessionPortalServer = await startSessionPortal({
613
609
  host: config.RYNX_SESSION_PORTAL_HOST,
@@ -619,6 +615,22 @@ export async function startServer({ config = loadConfig(), control, sessionLog,
619
615
  shutdownSignal: controlShutdown.signal,
620
616
  });
621
617
  }
618
+ // Plugin activation must not gate Control readiness: the management
619
+ // endpoint is how a failed plugin is repaired or uninstalled. The daemon
620
+ // fences persisted embedded writable Portal grants before startServer;
621
+ // that host-owned barrier does not depend on plugin recovery succeeding.
622
+ if (pluginRuntime) {
623
+ void Promise.resolve().then(() => {
624
+ if (!controlShutdown.signal.aborted)
625
+ return pluginRuntime.startPluginRuntimes();
626
+ }).catch((error) => {
627
+ console.error(JSON.stringify({
628
+ level: "error",
629
+ event: "plugin-runtime-startup-failed",
630
+ message: asError(error).message,
631
+ }));
632
+ });
633
+ }
622
634
  resolve(bindServerLifecycle(server, {
623
635
  fence: () => {
624
636
  controlShutdown.abort(new Error("Rynx server is shutting down"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rynx-ai/server",
3
- "version": "0.1.11-beta.52",
3
+ "version": "0.1.11-beta.53",
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/plugin-sdk": "0.1.11-beta.52",
31
- "@rynx-ai/remote-runtime-e2ee": "0.1.11-beta.52",
32
- "@rynx-ai/protocol": "0.1.11-beta.52",
33
- "@rynx-ai/core": "0.1.11-beta.52",
34
- "@rynx-ai/runtime": "0.1.11-beta.52"
30
+ "@rynx-ai/core": "0.1.11-beta.53",
31
+ "@rynx-ai/plugin-sdk": "0.1.11-beta.53",
32
+ "@rynx-ai/protocol": "0.1.11-beta.53",
33
+ "@rynx-ai/remote-runtime-e2ee": "0.1.11-beta.53",
34
+ "@rynx-ai/runtime": "0.1.11-beta.53"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/ws": "^8.18.1",
38
- "@rynx-ai/control-web": "0.1.11-beta.52"
38
+ "@rynx-ai/control-web": "0.1.11-beta.53"
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/",