snipara-companion 3.5.7 → 3.5.8

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/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  Release notes for `snipara-companion`, newest first.
4
4
 
5
+ ## New In 3.5.8
6
+
7
+ - Preserves the exact collaboration actor identity on hosted lease heartbeat
8
+ and release requests, preventing owner-authenticated cleanup from falling
9
+ back to the API-key actor and returning a false `403`.
10
+
5
11
  ## New In 3.5.7
6
12
 
7
13
  - Bounds the best-effort hosted judgment lookup in `run` to 8 seconds instead
package/dist/index.d.ts CHANGED
@@ -1471,7 +1471,7 @@ declare class RLMClient {
1471
1471
  resources?: CollaborationResource[];
1472
1472
  metadata?: Record<string, unknown>;
1473
1473
  }): Promise<CollaborationLeaseResponse>;
1474
- updateCollaborationLease(leaseId: string, args: {
1474
+ updateCollaborationLease(leaseId: string, args: CollaborationActorPayload & {
1475
1475
  action?: "heartbeat" | "release" | "override";
1476
1476
  reason?: string;
1477
1477
  }): Promise<CollaborationLeaseUpdateResponse>;
package/dist/index.js CHANGED
@@ -12285,6 +12285,79 @@ function uniqueStrings12(values) {
12285
12285
  return [...new Set(values.map((value) => value.trim()).filter(Boolean))];
12286
12286
  }
12287
12287
 
12288
+ // ../project-intelligence-contracts/src/why-capture-confidence-v1.json
12289
+ var why_capture_confidence_v1_default = {
12290
+ version: "why-capture-confidence-v1",
12291
+ base: 0.72,
12292
+ decisionRationaleBonus: 0.1,
12293
+ nonManualSourceBonus: 0.04,
12294
+ maximum: 0.9,
12295
+ decimalPlaces: 2,
12296
+ validatedExecutionOutcomes: ["completed"],
12297
+ vectors: [
12298
+ {
12299
+ candidateType: "CONTEXT",
12300
+ hasDecision: false,
12301
+ hasRationale: false,
12302
+ sourceKind: "manual",
12303
+ executionOutcome: "completed",
12304
+ expected: 0.72
12305
+ },
12306
+ {
12307
+ candidateType: "DECISION",
12308
+ hasDecision: true,
12309
+ hasRationale: true,
12310
+ sourceKind: "manual",
12311
+ executionOutcome: "completed",
12312
+ expected: 0.82
12313
+ },
12314
+ {
12315
+ candidateType: "DECISION",
12316
+ hasDecision: true,
12317
+ hasRationale: true,
12318
+ sourceKind: "phase_commit",
12319
+ executionOutcome: "completed",
12320
+ expected: 0.86
12321
+ },
12322
+ {
12323
+ candidateType: "DECISION",
12324
+ hasDecision: true,
12325
+ hasRationale: true,
12326
+ sourceKind: "phase_commit",
12327
+ executionOutcome: "partial",
12328
+ expected: 0.76
12329
+ },
12330
+ {
12331
+ candidateType: "DECISION",
12332
+ hasDecision: true,
12333
+ hasRationale: true,
12334
+ sourceKind: "phase_commit",
12335
+ executionOutcome: "blocked",
12336
+ expected: 0.76
12337
+ },
12338
+ {
12339
+ candidateType: "DECISION",
12340
+ hasDecision: true,
12341
+ hasRationale: true,
12342
+ sourceKind: "phase_commit",
12343
+ executionOutcome: "abandoned",
12344
+ expected: 0.76
12345
+ },
12346
+ {
12347
+ candidateType: "DECISION",
12348
+ hasDecision: true,
12349
+ hasRationale: false,
12350
+ sourceKind: "final_commit",
12351
+ executionOutcome: "completed",
12352
+ expected: 0.76
12353
+ }
12354
+ ]
12355
+ };
12356
+
12357
+ // ../project-intelligence-contracts/src/why-capture-confidence.ts
12358
+ var WHY_CAPTURE_CONFIDENCE_VERSION = why_capture_confidence_v1_default.version;
12359
+ var WHY_CAPTURE_CONFIDENCE_TEST_VECTORS = why_capture_confidence_v1_default.vectors;
12360
+
12288
12361
  // src/commands/decision-requests.ts
12289
12362
  var fs12 = __toESM(require("fs"));
12290
12363
  var path11 = __toESM(require("path"));
@@ -16659,7 +16732,12 @@ async function heartbeatHostedLeases(context, leaseIds) {
16659
16732
  }
16660
16733
  try {
16661
16734
  const data = await Promise.all(
16662
- leaseIds.map((leaseId) => client.updateCollaborationLease(leaseId, { action: "heartbeat" }))
16735
+ leaseIds.map(
16736
+ (leaseId) => client.updateCollaborationLease(leaseId, {
16737
+ ...context.actor,
16738
+ action: "heartbeat"
16739
+ })
16740
+ )
16663
16741
  );
16664
16742
  return { status: "ok", data };
16665
16743
  } catch (error) {
@@ -16675,6 +16753,7 @@ async function releaseHostedLeases(context, leaseIds, input) {
16675
16753
  const data = await Promise.all(
16676
16754
  leaseIds.map(
16677
16755
  (leaseId) => client.updateCollaborationLease(leaseId, {
16756
+ ...context.actor,
16678
16757
  action: "release",
16679
16758
  reason: input.reason
16680
16759
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "snipara-companion",
3
- "version": "3.5.7",
3
+ "version": "3.5.8",
4
4
  "description": "Local-first CLI that asks your repo what breaks before an AI coding agent edits it.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {