teamshare-bridge 0.21.51 → 0.21.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.
@@ -126,7 +126,27 @@ async function cmdPlan(flags) {
126
126
  log = (0, utils_1.makeLog)(reporter);
127
127
  (0, utils_1.applyOpenCodeKey)(agentId, log, settings);
128
128
  let summary = '';
129
+ let claimedTaskId;
130
+ let claimRenewalTimer;
129
131
  try {
132
+ // Claim the task so the frontend banner shows "Agent is working" during planning.
133
+ try {
134
+ const claim = await api.claimTask(taskId);
135
+ claimedTaskId = taskId;
136
+ log(`[claim] task ${taskId} claimed - lease until ${claim.claimExpiresAt}`);
137
+ claimRenewalTimer = setInterval(() => {
138
+ if (!claimedTaskId)
139
+ return;
140
+ void api.renewClaim(claimedTaskId).catch(() => {
141
+ log(`[claim] renewal failed for ${claimedTaskId} — claim may have expired`, 'stderr');
142
+ claimedTaskId = undefined;
143
+ });
144
+ }, 5 * 60 * 1000);
145
+ }
146
+ catch (err) {
147
+ const e = err;
148
+ log(`[claim] warning: could not claim task ${taskId}: ${e.message ?? e.code}`, 'stderr');
149
+ }
130
150
  await (0, brief_1.reportStatus)(api, agentId, 'working', taskId, sessionId);
131
151
  // Plan-run tracking (2026-09): count the pass on the hub + stamp the start.
132
152
  await api
@@ -195,6 +215,13 @@ async function cmdPlan(flags) {
195
215
  process.exitCode = 1;
196
216
  }
197
217
  finally {
218
+ // Release the claim so the frontend banner clears.
219
+ if (claimRenewalTimer)
220
+ clearInterval(claimRenewalTimer);
221
+ if (claimedTaskId) {
222
+ await api.releaseTask(claimedTaskId).catch(() => undefined);
223
+ log(`[claim] task ${claimedTaskId} released`);
224
+ }
198
225
  // Plan-run tracking (2026-09): always report the pass outcome. A successful
199
226
  // pass sets the definitive `plannedAt` marker on the hub; a failure stores
200
227
  // the reason. Best-effort - never masks the real exit code.
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/cli/commands/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/cli/commands/plan.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,14 @@ export interface HarnessSessionRecord {
15
15
  attempts: number;
16
16
  lastError?: string;
17
17
  }
18
- /** Load a record when valid for this harness + cwd; otherwise null (fresh). */
18
+ /**
19
+ * Load a record when valid for this harness + cwd; otherwise null (fresh).
20
+ *
21
+ * Session continuity (2026-09): when loading for `build` mode and no build
22
+ * session exists, fall back to the `plan` session so the build harness resumes
23
+ * the planning context (the agent already explored the codebase, wrote a plan,
24
+ * and left breadcrumbs — starting fresh would lose that work).
25
+ */
19
26
  export declare function loadHarnessSession(agentId: string, taskId: string, mode: string, harness: string, cwd: string): HarnessSessionRecord | null;
20
27
  /** Persist a record (best-effort). */
21
28
  export declare function saveHarnessSession(rec: HarnessSessionRecord): void;
@@ -23,8 +23,31 @@ const STORE_DIR = (0, node_path_1.join)((0, node_os_1.homedir)(), '.teamshare',
23
23
  function recordPath(agentId, taskId, mode) {
24
24
  return (0, node_path_1.join)(STORE_DIR, agentId, `${taskId}.${mode}.json`);
25
25
  }
26
- /** Load a record when valid for this harness + cwd; otherwise null (fresh). */
26
+ /**
27
+ * Load a record when valid for this harness + cwd; otherwise null (fresh).
28
+ *
29
+ * Session continuity (2026-09): when loading for `build` mode and no build
30
+ * session exists, fall back to the `plan` session so the build harness resumes
31
+ * the planning context (the agent already explored the codebase, wrote a plan,
32
+ * and left breadcrumbs — starting fresh would lose that work).
33
+ */
27
34
  function loadHarnessSession(agentId, taskId, mode, harness, cwd) {
35
+ const rec = loadRecord(agentId, taskId, mode, harness, cwd);
36
+ if (rec)
37
+ return rec;
38
+ // Build-mode fallback: resume the plan session if no build session exists.
39
+ if (mode === 'build') {
40
+ const planRec = loadRecord(agentId, taskId, 'plan', harness, cwd);
41
+ if (planRec) {
42
+ // Mutate the mode so the caller sees it as a build session (the
43
+ // saveHarnessSession call after resume will persist it under `build`).
44
+ planRec.mode = 'build';
45
+ return planRec;
46
+ }
47
+ }
48
+ return null;
49
+ }
50
+ function loadRecord(agentId, taskId, mode, harness, cwd) {
28
51
  try {
29
52
  const raw = (0, node_fs_1.readFileSync)(recordPath(agentId, taskId, mode), 'utf8');
30
53
  const rec = JSON.parse(raw);
@@ -1 +1 @@
1
- {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../src/lib/harness/session-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../src/lib/harness/session-store.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,11 @@ const ERROR_CORRECTION_MAP = {
16
16
  quartile: 'Q',
17
17
  high: 'H',
18
18
  };
19
+ const HEX_RE = /^#[0-9a-fA-F]{6}$/;
20
+ /** Validate and normalise a hex colour; falls back to the provided default. */
21
+ function sanitiseHex(raw, fallback) {
22
+ return HEX_RE.test(raw) ? raw.toLowerCase() : fallback;
23
+ }
19
24
  class QrGeneratorTool {
20
25
  key = 'qr-generator';
21
26
  async run(params) {
@@ -25,8 +30,8 @@ class QrGeneratorTool {
25
30
  }
26
31
  const width = params.width ? Number(params.width) : 300;
27
32
  const errorCorrection = ERROR_CORRECTION_MAP[String(params.errorCorrection ?? 'medium')] ?? 'M';
28
- const foreground = String(params.foreground ?? '#000000');
29
- const background = String(params.background ?? '#ffffff');
33
+ const foreground = sanitiseHex(String(params.foreground ?? ''), '#000000');
34
+ const background = sanitiseHex(String(params.background ?? ''), '#ffffff');
30
35
  const margin = params.margin !== undefined ? Number(params.margin) : 4;
31
36
  // Validate dimensions
32
37
  if (width < 100 || width > 2000) {
@@ -1 +1 @@
1
- {"version":3,"file":"qr-generator.js","sourceRoot":"","sources":["../../../src/lib/tools/qr-generator.ts"],"names":[],"mappings":";;;;;;AAAA;;;;GAIG;AACH,oDAA4B;AAG5B,MAAM,oBAAoB,GAA0C;IAClE,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,GAAG;CACV,CAAC;AAEF,MAAa,eAAe;IAC1B,GAAG,GAAG,cAAc,CAAC;IAErB,KAAK,CAAC,GAAG,CAAC,MAA+B;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC;QACnE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACxD,MAAM,eAAe,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,IAAI,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC;QAChG,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvE,sBAAsB;QACtB,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;YAChC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,2CAA2C,EAAE,CAAC;QAC7E,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,gBAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC5C,IAAI,EAAE,KAAK;YACX,KAAK;YACL,oBAAoB,EAAE,eAAe;YACrC,MAAM;YACN,KAAK,EAAE;gBACL,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,UAAU;aAClB;SACF,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,MAAM;oBACN,QAAQ,EAAE,aAAa;oBACvB,IAAI,EAAE,WAAW;iBAClB;aACF;YACD,GAAG,EAAE;gBACH,mBAAmB;gBACnB,YAAY,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE;gBAC1E,SAAS,KAAK,IAAI,KAAK,IAAI;gBAC3B,qBAAqB,eAAe,EAAE;gBACtC,YAAY,UAAU,OAAO,UAAU,EAAE;aAC1C;SACF,CAAC;IACJ,CAAC;CACF;AAhDD,0CAgDC"}
1
+ {"version":3,"file":"qr-generator.js","sourceRoot":"","sources":["../../../src/lib/tools/qr-generator.ts"],"names":[],"mappings":";;;;;;AAAA;;;;GAIG;AACH,oDAA4B;AAG5B,MAAM,oBAAoB,GAA0C;IAClE,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,GAAG;CACV,CAAC;AAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC;AAEnC,+EAA+E;AAC/E,SAAS,WAAW,CAAC,GAAW,EAAE,QAAgB;IAChD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AACzD,CAAC;AAED,MAAa,eAAe;IAC1B,GAAG,GAAG,cAAc,CAAC;IAErB,KAAK,CAAC,GAAG,CAAC,MAA+B;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC;QACnE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACxD,MAAM,eAAe,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,IAAI,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC;QAChG,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvE,sBAAsB;QACtB,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;YAChC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,2CAA2C,EAAE,CAAC;QAC7E,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,gBAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC5C,IAAI,EAAE,KAAK;YACX,KAAK;YACL,oBAAoB,EAAE,eAAe;YACrC,MAAM;YACN,KAAK,EAAE;gBACL,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,UAAU;aAClB;SACF,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,MAAM;oBACN,QAAQ,EAAE,aAAa;oBACvB,IAAI,EAAE,WAAW;iBAClB;aACF;YACD,GAAG,EAAE;gBACH,mBAAmB;gBACnB,YAAY,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE;gBAC1E,SAAS,KAAK,IAAI,KAAK,IAAI;gBAC3B,qBAAqB,eAAe,EAAE;gBACtC,YAAY,UAAU,OAAO,UAAU,EAAE;aAC1C;SACF,CAAC;IACJ,CAAC;CACF;AAhDD,0CAgDC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "teamshare-bridge",
3
- "version": "0.21.51",
3
+ "version": "0.21.53",
4
4
  "description": "Local bridge for TeamShare agents - CLI session runner, auto-wake WebSocket daemon, and teamshare:// protocol handler.",
5
5
  "type": "commonjs",
6
6
  "license": "MIT",