@awak-app/simy-cli 0.7.34 → 0.7.35

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awak-app/simy-cli",
3
- "version": "0.7.34",
3
+ "version": "0.7.35",
4
4
  "description": "Local SIMY executor for non-coding Local Tasks and Agentic Loop runs.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -14,7 +14,7 @@ import {
14
14
  } from "./durable-local-task-steps-contract.js";
15
15
  import { buildExecutionCapabilityContract } from "./execution-capability-contract.js";
16
16
 
17
- export const CLI_VERSION = "0.7.34";
17
+ export const CLI_VERSION = "0.7.35";
18
18
  export const CLI_API_CONTRACT_VERSION = 10;
19
19
 
20
20
  export function narrativeImageCapabilityMetadata() {
@@ -7,7 +7,7 @@ import { execFile } from 'node:child_process';
7
7
  import { promisify } from 'node:util';
8
8
  import { webApiHeaders, webApiUrl } from './web-api.js';
9
9
  // Keep this leaf module package-safe: hooks load it before the full CLI contract.
10
- const CLI_VERSION = '0.7.34';
10
+ const CLI_VERSION = '0.7.35';
11
11
 
12
12
  const STORE = 'cli-observability-state.json';
13
13
  const LEGACY_CONFIG = 'cli-observability.json';
@@ -82,9 +82,9 @@ import {
82
82
  } from "./desktop-process-lock.js";
83
83
 
84
84
  const silentLogger = { log() {}, error() {} };
85
- // Match the native DesktopStatusFrames limit: 200 conversation summaries can
86
- // exceed 128 KiB, including after a signed runtime handoff.
87
- const MAX_DESKTOP_FRAME_BYTES = 8 * 1024 * 1024;
85
+ // Match the native DesktopStatusFrames limit for full retained histories,
86
+ // including after a signed runtime handoff. Native delivery remains bounded.
87
+ const MAX_DESKTOP_FRAME_BYTES = 64 * 1024 * 1024;
88
88
 
89
89
  async function withReadCancellation(signal, work) {
90
90
  signal.throwIfAborted();
@@ -18,7 +18,10 @@ export async function createOwnerTransport({ root, nonce, allowedActions, dispat
18
18
  let latest;
19
19
  const send = (peer, frame) => {
20
20
  if (peer.destroyed) return;
21
- if (frame.type !== 'status' && peer.writableLength > 8 * 1024 * 1024) { peer.destroy(); return; }
21
+ // A valid full-history status can already occupy up to 64 MiB of the
22
+ // socket queue. Preserve room for bounded control receipts rather than
23
+ // disconnecting the viewer as soon as it requests a result behind it.
24
+ if (frame.type !== 'status' && peer.writableLength > (64 + 8) * 1024 * 1024) { peer.destroy(); return; }
22
25
  writers.get(peer).write(JSON.stringify(frame) + '\n', frame.type === 'status');
23
26
  };
24
27
  const server = createServer(peer => {
@@ -9,7 +9,7 @@ import { compareSessionWork } from './work-state.js';
9
9
  import { manualAcceptanceCommand, matchesManualAcceptanceControls, manualAcceptanceContinuation } from './manual-acceptance-command.js';
10
10
  import { remoteHostRecovery } from './remote-host-recovery.js';
11
11
 
12
- const MAX_FRAME = 8 * 1024 * 1024;
12
+ const MAX_FRAME = 64 * 1024 * 1024;
13
13
  const MAX_HOSTS = 8;
14
14
  const aliasPattern = /^[a-zA-Z0-9][a-zA-Z0-9._@-]{0,127}$/;
15
15
  // Resolve the saved alias on every connection. A user's multiplexed SSH master