spur-board 0.8.2 → 0.9.0

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/mcp.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { j as ERRORS, s as OPERATIONS, u as renderMcpError } from "./src-g7u1onIP.mjs";
2
- import { i as CliError, n as requestOperation } from "./client-D4cveOHQ.mjs";
3
- import { a as memoryVerdictCache, r as compareCatalogs, s as loadClientConfig, t as checkCatalog } from "./config-B1fVOLzp.mjs";
1
+ import { N as ERRORS, f as renderMcpError, l as OPERATIONS } from "./src-C-NNf__4.mjs";
2
+ import { i as CliError, n as requestOperation } from "./client-Co0Pogjy.mjs";
3
+ import { a as memoryVerdictCache, r as compareCatalogs, s as loadClientConfig, t as checkCatalog } from "./config-DL_Tm7un.mjs";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { readFileSync } from "node:fs";
6
6
  import { z } from "zod";
@@ -2696,4 +2696,22 @@ var AdapterError = class extends Error {
2696
2696
  }
2697
2697
  };
2698
2698
  //#endregion
2699
- export { taskKeySchema as A, requiredSecretKeys as B, sessionFactsSchema as C, errorCodeOf as D, encodeActorId as E, DEFAULT_HTTP_PORT as F, DEFAULT_SLACK_APP_NAME as I, DEFAULT_SLACK_COMMAND as L, errorContextSchema as M, errorEnvelopeSchema as N, parseActorId as O, successEnvelopeSchema as P, RESERVED_PROJECT as R, prRefSchema as S, actorIdSchema as T, SLACK_BOT_SCOPES as V, EVENT_KINDS as _, buildCatalogSnapshot as a, SESSION_STATUSES as b, renderHttpProblem as c, SPACE_IDS as d, conversationRefSchema as f, userIdSchema as g, messageRefSchema as h, sourceCursorSchema as i, ERRORS as j, parseRef as k, renderJsonError as l, interactionRefSchema as m, batchSchema as n, roleCanUseOperation as o, inboundEventSchema as p, entityRefSchema as r, OPERATIONS as s, AdapterError as t, renderMcpError as u, eventPayloadSchemas as v, ticketFactsSchema as w, prFactsSchema as x, SESSION_HEALTH_STATES as y, configSchema as z };
2699
+ //#region ../contracts/src/systemd.ts
2700
+ /**
2701
+ * systemd user-unit policy shared by the CLI unit writer and the daemon's board tick.
2702
+ *
2703
+ * The daemon notifies systemd by spawning `systemd-notify`, so the notifying process is a child
2704
+ * of the main PID: the unit needs `NotifyAccess=all`. `WATCHDOG_MS` is three board ticks, so a
2705
+ * single slow or failed tick does not restart the daemon.
2706
+ */
2707
+ const BOARD_TICK_MS = 6e4;
2708
+ const SYSTEMD_SERVICE_SETTINGS = [
2709
+ "Type=notify",
2710
+ "NotifyAccess=all",
2711
+ `WatchdogSec=${String(3 * BOARD_TICK_MS)}ms`,
2712
+ "Restart=on-failure",
2713
+ "RestartSec=5s",
2714
+ "TimeoutStopSec=15s"
2715
+ ];
2716
+ //#endregion
2717
+ export { parseActorId as A, RESERVED_PROJECT as B, prFactsSchema as C, actorIdSchema as D, ticketFactsSchema as E, errorEnvelopeSchema as F, requiredSecretKeys as H, successEnvelopeSchema as I, DEFAULT_HTTP_PORT as L, taskKeySchema as M, ERRORS as N, encodeActorId as O, errorContextSchema as P, DEFAULT_SLACK_APP_NAME as R, SESSION_STATUSES as S, sessionFactsSchema as T, SLACK_BOT_SCOPES as U, configSchema as V, messageRefSchema as _, entityRefSchema as a, eventPayloadSchemas as b, roleCanUseOperation as c, renderJsonError as d, renderMcpError as f, interactionRefSchema as g, inboundEventSchema as h, batchSchema as i, parseRef as j, errorCodeOf as k, OPERATIONS as l, conversationRefSchema as m, SYSTEMD_SERVICE_SETTINGS as n, sourceCursorSchema as o, SPACE_IDS as p, AdapterError as r, buildCatalogSnapshot as s, BOARD_TICK_MS as t, renderHttpProblem as u, userIdSchema as v, prRefSchema as w, SESSION_HEALTH_STATES as x, EVENT_KINDS as y, DEFAULT_SLACK_COMMAND as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spur-board",
3
- "version": "0.8.2",
3
+ "version": "0.9.0",
4
4
  "license": "MIT",
5
5
  "engines": {
6
6
  "node": "^24.12.0 || ^26.0.0"
@@ -6,6 +6,6 @@ Use this when the installed package is older than the intended release. Keep com
6
6
  2. Install the newer package with the Node and user prefix visible to live Spur sessions. Verify `board --version` there. Do not reinstall a matching package.
7
7
  3. If skills are older, ask before writing agent skill folders, run `board skills install`, and verify both installed copies. Record the install time so older live sessions can be identified.
8
8
  For a local same-version trial, compare packed and installed bytes too; a matching stamp can hide old content.
9
- 4. Compare the unit's absolute Node and daemon paths with the newly selected Node and installed package. If either path changed, run the new package's `board service install`; it rewrites the unit, reloads systemd, and restarts an active service. If paths are unchanged but the daemon version changed, run `board service restart`. Do not restart twice or restart an unchanged service.
9
+ 4. Before installing, note whether `board service status` reports `active` as `active`. Then run the new package's `board service install`: it rewrites the unit only when it differs, reloads systemd, starts a stopped service, and restarts an active service only when the unit changed. Run `board service restart` only when the service was active before install, install reported `changed` as `false`, and the daemon version changed. Do not restart twice or restart an unchanged service.
10
10
  5. Run `board doctor --json` until no blocking check remains. Report live sessions that still use the older skill and ask the operator to restart those sessions. Do not assume an existing agent or MCP process reloaded updated files.
11
11
  6. Never rewrite settled config, reissue an operator token, uninstall the service, or revoke a token as part of an update.