@gcunharodrigues/wrxn 0.13.0 → 0.13.2

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": "@gcunharodrigues/wrxn",
3
- "version": "0.13.0",
3
+ "version": "0.13.2",
4
4
  "description": "WRXN Kernel — installable AI operating system. Two profiles (project | workspace), pull-based updates, managed/seeded/state file classes.",
5
5
  "bin": {
6
6
  "wrxn": "bin/wrxn.cjs"
@@ -16,7 +16,7 @@
16
16
  "test": "node --test --require ./test/setup.cjs"
17
17
  },
18
18
  "dependencies": {
19
- "recon-wrxn": "6.0.0-wrxn.7"
19
+ "recon-wrxn": "6.0.0-wrxn.8"
20
20
  },
21
21
  "engines": {
22
22
  "node": ">=20"
@@ -66,11 +66,14 @@ function readBaton(root) {
66
66
  // ── the SessionEnd-synth hold (auto-memory-03) ──────────────────────────────────
67
67
  // When a session ends, memory-synth-spawn.cjs raises a `.pending-handoff` marker and launches the synth
68
68
  // detached; the synth writes the baton then clears the marker. So a back-to-back /clear could start
69
- // BEFORE the fresh baton exists. We hold: poll the marker until it clears (synth done), bounded by a
70
- // crash safety-cap so a SIGKILLed synth (marker never cleared) can never hang start forever. The
71
- // poll-decision is pure and the loop takes an injected clock, so it is unit-tested with no wall sleep.
69
+ // BEFORE the fresh baton exists. We hold: poll the marker until it clears (synth done) so the new session
70
+ // ALWAYS resumes on the freshly-written handoff not the previous one. The cap is a crash backstop only
71
+ // (a SIGKILLed synth that never clears the marker must not hang start forever), NOT a budget for a healthy
72
+ // synth. The poll-decision is pure and the loop takes an injected clock, so it is unit-tested with no wall sleep.
72
73
  const HANDOFF_MARKER_REL = ['.wrxn', 'continuity', '.pending-handoff'];
73
- const HOLD_CAP_MS = 60000; // crash safety-cap: never wait past this for an in-flight synth.
74
+ // 3 min: a heavy HITL-session synth takes >1min to write its baton; 60s abandoned it mid-write and the
75
+ // next session resumed on the PREVIOUS baton (operator-set 2026-06-21). Crash backstop only — never a budget.
76
+ const HOLD_CAP_MS = 180000;
74
77
  const HOLD_POLL_MS = 250; // poll cadence (the real sleep step; tests inject their own).
75
78
 
76
79
  // A synchronous sleep for the real poll loop (the hook must finish before it emits; tests inject their
@@ -173,4 +176,4 @@ if (require.main === module) {
173
176
  }
174
177
  }
175
178
 
176
- module.exports = { holdDecision, holdForHandoff };
179
+ module.exports = { holdDecision, holdForHandoff, HOLD_CAP_MS };
package/payload/.mcp.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "recon-wrxn": {
4
4
  "command": "npx",
5
- "args": ["-y", "recon-wrxn@6.0.0-wrxn.7", "serve"]
5
+ "args": ["-y", "recon-wrxn@6.0.0-wrxn.8", "serve"]
6
6
  }
7
7
  }
8
8
  }