remote-codex 0.11.44 → 0.11.45

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 (28) hide show
  1. package/README.md +9 -0
  2. package/apps/relay-server/dist/index.js +17 -1
  3. package/apps/supervisor-api/dist/index.js +2178 -1795
  4. package/apps/supervisor-web/dist/assets/index-BO9S3vTX.css +1 -0
  5. package/apps/supervisor-web/dist/assets/index-GqVDOqbI.js +22 -0
  6. package/apps/supervisor-web/dist/assets/{thread-ui-Dmrigdek.js → thread-ui-BWC_ljvN.js} +11 -11
  7. package/apps/supervisor-web/dist/index.html +3 -3
  8. package/bin/remote-codex.mjs +426 -35
  9. package/docs/windows.md +81 -0
  10. package/package.json +14 -3
  11. package/packages/claude/src/runtimeAdapter.test.ts +2 -2
  12. package/packages/claude/src/runtimeAdapter.ts +10 -19
  13. package/packages/codex/src/appServerManager.test.ts +47 -0
  14. package/packages/codex/src/appServerManager.ts +6 -2
  15. package/packages/codex/src/runtimeAdapter.test.ts +9 -2
  16. package/packages/opencode/src/historyItems.ts +7 -6
  17. package/packages/opencode/src/runtimeAdapter.ts +7 -11
  18. package/packages/process-runtime/src/index.test.ts +132 -0
  19. package/packages/process-runtime/src/index.ts +253 -0
  20. package/packages/shared/src/index.ts +12 -0
  21. package/scripts/service-manager.mjs +112 -4
  22. package/scripts/verify-relay-supervisor-smoke.mjs +262 -0
  23. package/scripts/windows/install-relay-supervisor-task.ps1 +44 -0
  24. package/scripts/windows/relay-smoke.ps1 +16 -0
  25. package/scripts/windows/uninstall-relay-supervisor-task.ps1 +27 -0
  26. package/scripts/windows/validate-real-codex.mjs +680 -0
  27. package/apps/supervisor-web/dist/assets/index-BcCLYWAf.css +0 -1
  28. package/apps/supervisor-web/dist/assets/index-CO8cU7a0.js +0 -21
package/README.md CHANGED
@@ -25,6 +25,11 @@ home or office workstation through an inbound port.
25
25
  - iOS IPA: [RemoteCodex.ipa](https://github.com/dufangshi/remoteCodex/releases/latest/download/RemoteCodex.ipa)
26
26
  - npm CLI: `npm install -g remote-codex`
27
27
 
28
+ Native Windows Relay Supervisor support targets Windows 11 x64 with Node.js 22
29
+ and Codex. The Terminal plugin is not available on Windows. See
30
+ [Native Windows support](docs/windows.md) for setup, background management, and
31
+ the current compatibility boundary.
32
+
28
33
  ### Why Remote Codex
29
34
 
30
35
  | Capability | What it means in practice |
@@ -279,6 +284,10 @@ Remote Codex 支持本机、Tailscale/LAN 和公网 Relay 三种访问方式。R
279
284
  - iOS IPA: [RemoteCodex.ipa](https://github.com/dufangshi/remoteCodex/releases/latest/download/RemoteCodex.ipa)
280
285
  - npm CLI: `npm install -g remote-codex`
281
286
 
287
+ 原生 Windows Relay Supervisor 首版支持 Windows 11 x64、Node.js 22 和 Codex;
288
+ Windows 暂不提供 Terminal 插件。安装、后台运行方法和兼容范围见
289
+ [原生 Windows 支持说明](docs/windows.md)。
290
+
282
291
  ### 为什么使用 Remote Codex
283
292
 
284
293
  | 能力 | 实际价值 |
@@ -367,6 +367,9 @@ var RelayStore = class _RelayStore {
367
367
  path.join(resolvedDataDir, "relay-store.json")
368
368
  );
369
369
  }
370
+ close() {
371
+ this.sqlite.close();
372
+ }
370
373
  seedAdmin(input) {
371
374
  const existing = this.getUsers().find((user2) => user2.role === "admin");
372
375
  if (existing) {
@@ -3888,6 +3891,8 @@ var WEBVIEW_CORS_ALLOW_METHODS = [
3888
3891
  "DELETE",
3889
3892
  "OPTIONS"
3890
3893
  ].join(", ");
3894
+ var RELAY_HTTP_BODY_LIMIT_MB = 50;
3895
+ var RELAY_HTTP_BODY_LIMIT_BYTES = RELAY_HTTP_BODY_LIMIT_MB * 1024 * 1024;
3891
3896
  var RELAY_REQUEST_HEADER_BLOCKLIST = /* @__PURE__ */ new Set([
3892
3897
  "authorization",
3893
3898
  "connection",
@@ -3941,7 +3946,10 @@ var RELAY_RESPONSE_HEADER_BLOCKLIST = /* @__PURE__ */ new Set([
3941
3946
  "upgrade"
3942
3947
  ]);
3943
3948
  function buildRelayServer(config2, options = {}) {
3944
- const app2 = Fastify({ logger: false });
3949
+ const app2 = Fastify({
3950
+ logger: false,
3951
+ bodyLimit: RELAY_HTTP_BODY_LIMIT_BYTES
3952
+ });
3945
3953
  app2.addContentTypeParser(
3946
3954
  "*",
3947
3955
  { parseAs: "buffer" },
@@ -4884,6 +4892,7 @@ function buildRelayServer(config2, options = {}) {
4884
4892
  app2.addHook("onClose", () => {
4885
4893
  hostedSandboxService.close();
4886
4894
  hostedSandboxReconciler.close();
4895
+ store.close();
4887
4896
  });
4888
4897
  app2.setErrorHandler((error, _request, reply) => {
4889
4898
  if (error instanceof RelayStoreError) {
@@ -4893,6 +4902,13 @@ function buildRelayServer(config2, options = {}) {
4893
4902
  });
4894
4903
  return;
4895
4904
  }
4905
+ if (isObject(error) && error.code === "FST_ERR_CTP_BODY_TOO_LARGE") {
4906
+ reply.status(413).send({
4907
+ code: "bad_request",
4908
+ message: `Relay uploads must be ${RELAY_HTTP_BODY_LIMIT_MB} MB or smaller.`
4909
+ });
4910
+ return;
4911
+ }
4896
4912
  if (error instanceof z.ZodError) {
4897
4913
  const firstIssue = error.issues[0];
4898
4914
  const field = firstIssue?.path[0];