crewly 1.20.392 → 1.20.394

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.
Files changed (155) hide show
  1. package/config/constants.ts +16 -0
  2. package/config/index.ts +2 -0
  3. package/config/skills/agent/core/complete-task/SKILL.md +18 -0
  4. package/config/skills/agent/core/complete-task/execute.sh +16 -2
  5. package/config/skills/agent/core/complete-task/execute.test.sh +18 -0
  6. package/config/skills/agent/core/get-my-active-work/execute.sh +1 -1
  7. package/config/skills/agent/core/get-my-context/SKILL.md +5 -0
  8. package/config/skills/agent/core/get-my-context/execute.sh +11 -1
  9. package/config/skills/agent/core/get-my-tasks/SKILL.md +2 -1
  10. package/config/skills/agent/core/get-my-tasks/execute.sh +18 -4
  11. package/config/skills/team-leader/verify-output/execute.sh +6 -0
  12. package/config/skills/team-leader/verify-output/execute.test.sh +9 -0
  13. package/config/sops/common/blocker-handling.md +5 -0
  14. package/config/sops/common/communication-protocol.md +5 -0
  15. package/config/sops/common/dev-process-tiers.md +5 -0
  16. package/config/sops/common/mid-flight-milestone-surface.md +5 -0
  17. package/config/sops/common/owner-facing-communication.md +5 -0
  18. package/config/sops/common/writing-for-agents.md +5 -0
  19. package/config/sops/developer/coding-standards.md +5 -0
  20. package/config/sops/developer/debugging.md +5 -0
  21. package/config/sops/developer/git-workflow.md +5 -0
  22. package/config/sops/developer/testing-requirements.md +5 -0
  23. package/config/sops/pm/progress-tracking.md +5 -0
  24. package/config/sops/pm/task-decomposition.md +5 -0
  25. package/config/sops/qa/testing-procedures.md +5 -0
  26. package/dist/backend/backend/src/constants.d.ts +39 -0
  27. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  28. package/dist/backend/backend/src/constants.js +43 -0
  29. package/dist/backend/backend/src/constants.js.map +1 -1
  30. package/dist/backend/backend/src/controllers/active-work/active-work.controller.d.ts +1 -1
  31. package/dist/backend/backend/src/controllers/active-work/active-work.controller.js +1 -1
  32. package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts.map +1 -1
  33. package/dist/backend/backend/src/controllers/memory/memory.controller.js +11 -2
  34. package/dist/backend/backend/src/controllers/memory/memory.controller.js.map +1 -1
  35. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -1
  36. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +5 -0
  37. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -1
  38. package/dist/backend/backend/src/index.d.ts.map +1 -1
  39. package/dist/backend/backend/src/index.js +21 -1
  40. package/dist/backend/backend/src/index.js.map +1 -1
  41. package/dist/backend/backend/src/scripts/check-rule-metadata.d.ts +91 -0
  42. package/dist/backend/backend/src/scripts/check-rule-metadata.d.ts.map +1 -0
  43. package/dist/backend/backend/src/scripts/check-rule-metadata.js +214 -0
  44. package/dist/backend/backend/src/scripts/check-rule-metadata.js.map +1 -0
  45. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  46. package/dist/backend/backend/src/services/ai/prompt-builder.service.js +14 -9
  47. package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  48. package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts +4 -0
  49. package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts.map +1 -1
  50. package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js +13 -1
  51. package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js.map +1 -1
  52. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.d.ts +1 -1
  53. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
  54. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js +17 -22
  55. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
  56. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
  57. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +3 -1
  58. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
  59. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +4 -0
  60. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  61. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js +6 -1
  62. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  63. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts +6 -0
  64. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts.map +1 -1
  65. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js +3 -1
  66. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js.map +1 -1
  67. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  68. package/dist/backend/backend/src/services/slack/slack-initializer.js +33 -5
  69. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  70. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts +17 -0
  71. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts.map +1 -1
  72. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js +12 -0
  73. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js.map +1 -1
  74. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  75. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +25 -0
  76. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  77. package/dist/backend/backend/src/services/slack/slack.service.d.ts +3 -1
  78. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  79. package/dist/backend/backend/src/services/slack/slack.service.js +17 -0
  80. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  81. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.d.ts +27 -0
  82. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.d.ts.map +1 -1
  83. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.js +54 -0
  84. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.js.map +1 -1
  85. package/dist/backend/backend/src/services/task-pool/verified-spot-check.service.d.ts +145 -0
  86. package/dist/backend/backend/src/services/task-pool/verified-spot-check.service.d.ts.map +1 -0
  87. package/dist/backend/backend/src/services/task-pool/verified-spot-check.service.js +254 -0
  88. package/dist/backend/backend/src/services/task-pool/verified-spot-check.service.js.map +1 -0
  89. package/dist/backend/backend/src/services/trace/turn-origin.d.ts +16 -4
  90. package/dist/backend/backend/src/services/trace/turn-origin.d.ts.map +1 -1
  91. package/dist/backend/backend/src/services/trace/turn-origin.js +27 -9
  92. package/dist/backend/backend/src/services/trace/turn-origin.js.map +1 -1
  93. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  94. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +7 -2
  95. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  96. package/dist/backend/backend/src/types/slack.types.d.ts +14 -0
  97. package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
  98. package/dist/backend/backend/src/types/slack.types.js.map +1 -1
  99. package/dist/backend/backend/src/types/sop.types.d.ts +11 -0
  100. package/dist/backend/backend/src/types/sop.types.d.ts.map +1 -1
  101. package/dist/backend/backend/src/types/sop.types.js.map +1 -1
  102. package/dist/backend/build-info.json +2 -2
  103. package/dist/backend/config/constants.d.ts +20 -0
  104. package/dist/backend/config/constants.d.ts.map +1 -1
  105. package/dist/backend/config/constants.js +15 -0
  106. package/dist/backend/config/constants.js.map +1 -1
  107. package/dist/backend/config/index.d.ts +2 -2
  108. package/dist/backend/config/index.d.ts.map +1 -1
  109. package/dist/backend/config/index.js +2 -2
  110. package/dist/backend/config/index.js.map +1 -1
  111. package/dist/cli/backend/src/constants.d.ts +39 -0
  112. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  113. package/dist/cli/backend/src/constants.js +43 -0
  114. package/dist/cli/backend/src/constants.js.map +1 -1
  115. package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  116. package/dist/cli/backend/src/services/ai/prompt-builder.service.js +14 -9
  117. package/dist/cli/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  118. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts +4 -0
  119. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.d.ts.map +1 -1
  120. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js +13 -1
  121. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js.map +1 -1
  122. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts +1 -1
  123. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
  124. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js +17 -22
  125. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
  126. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +4 -0
  127. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  128. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +6 -1
  129. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  130. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  131. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +25 -0
  132. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  133. package/dist/cli/backend/src/services/slack/slack.service.d.ts +3 -1
  134. package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
  135. package/dist/cli/backend/src/services/slack/slack.service.js +17 -0
  136. package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
  137. package/dist/cli/backend/src/services/trace/turn-origin.d.ts +16 -4
  138. package/dist/cli/backend/src/services/trace/turn-origin.d.ts.map +1 -1
  139. package/dist/cli/backend/src/services/trace/turn-origin.js +27 -9
  140. package/dist/cli/backend/src/services/trace/turn-origin.js.map +1 -1
  141. package/dist/cli/backend/src/types/slack.types.d.ts +14 -0
  142. package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
  143. package/dist/cli/backend/src/types/slack.types.js.map +1 -1
  144. package/dist/cli/backend/src/types/sop.types.d.ts +11 -0
  145. package/dist/cli/backend/src/types/sop.types.d.ts.map +1 -1
  146. package/dist/cli/backend/src/types/sop.types.js.map +1 -1
  147. package/dist/cli/config/constants.d.ts +20 -0
  148. package/dist/cli/config/constants.d.ts.map +1 -1
  149. package/dist/cli/config/constants.js +15 -0
  150. package/dist/cli/config/constants.js.map +1 -1
  151. package/dist/cli/config/index.d.ts +2 -2
  152. package/dist/cli/config/index.d.ts.map +1 -1
  153. package/dist/cli/config/index.js +2 -2
  154. package/dist/cli/config/index.js.map +1 -1
  155. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"completion-evidence.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/task-pool/completion-evidence.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completion-evidence.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/task-pool/completion-evidence.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import type { ComponentLogger } from '../core/logger.service.js';
2
+ import type { WorkItem } from '../../types/v2/work-item.types.js';
3
+ import { type ArtifactDiscrepancy } from './completion-evidence.service.js';
4
+ /** One sampled WorkItem whose artifact is no longer where it was. */
5
+ export interface SpotCheckDiscrepancy extends ArtifactDiscrepancy {
6
+ workItemId: string;
7
+ title: string;
8
+ }
9
+ /** The outcome of one run. */
10
+ export interface SpotCheckResult {
11
+ /** When the run happened (ISO) */
12
+ at: string;
13
+ /** Verified items completed within the window that named an artifact */
14
+ candidates: number;
15
+ /** How many of them were re-checked */
16
+ sampled: number;
17
+ discrepancies: SpotCheckDiscrepancy[];
18
+ }
19
+ /** Hooks the service needs; tests pass fakes. */
20
+ export interface VerifiedSpotCheckDeps {
21
+ /** Every WorkItem in the pool */
22
+ getItems: () => Promise<WorkItem[]>;
23
+ /** One plain notice to the owner; resolves true when delivered */
24
+ notifyOwner: (notice: {
25
+ title: string;
26
+ message: string;
27
+ urgent: boolean;
28
+ }) => Promise<boolean>;
29
+ /** State file (under CREWLY_HOME) */
30
+ stateFile: string;
31
+ /** Re-check one WorkItem's artifacts (defaults to the evidence service's check) */
32
+ recheck?: (workItem: WorkItem) => Promise<ArtifactDiscrepancy[]>;
33
+ now?: () => Date;
34
+ logger?: ComponentLogger;
35
+ }
36
+ /**
37
+ * Whether a WorkItem is a candidate: verified, completed within the window,
38
+ * and naming at least one artifact in its evidence.
39
+ *
40
+ * @param wi - The WorkItem
41
+ * @param nowMs - Clock
42
+ * @param windowMs - How far back a completion may be
43
+ * @returns True for a candidate
44
+ */
45
+ export declare function isSpotCheckCandidate(wi: WorkItem, nowMs: number, windowMs: number): boolean;
46
+ /**
47
+ * Pick the items to re-check: all candidates when there are few, otherwise
48
+ * an even spread over the window (newest first) so one busy hour does not
49
+ * take every slot. Deterministic — the same pool gives the same sample.
50
+ *
51
+ * @param items - The pool
52
+ * @param nowMs - Clock
53
+ * @param options - Window and sample size
54
+ * @returns The candidates and the sample drawn from them
55
+ */
56
+ export declare function sampleVerified(items: readonly WorkItem[], nowMs: number, options?: {
57
+ windowMs: number;
58
+ sampleSize: number;
59
+ }): {
60
+ candidates: WorkItem[];
61
+ sample: WorkItem[];
62
+ };
63
+ /**
64
+ * The one line the owner reads, with the discrepancies listed under it when
65
+ * there are any. Zero is stated.
66
+ *
67
+ * @param result - A run's result
68
+ * @returns Markdown lines
69
+ */
70
+ export declare function spotCheckLine(result: SpotCheckResult): string;
71
+ /**
72
+ * Re-check a sample of verified WorkItems. Pure apart from the file checks
73
+ * `recheck` performs.
74
+ *
75
+ * @param items - The pool
76
+ * @param now - Clock
77
+ * @param recheck - Re-checks one WorkItem's artifacts
78
+ * @param options - Window and sample size
79
+ * @returns The run's result
80
+ */
81
+ export declare function runSpotCheck(items: readonly WorkItem[], now: Date, recheck: (workItem: WorkItem) => Promise<ArtifactDiscrepancy[]>, options?: {
82
+ windowMs: number;
83
+ sampleSize: number;
84
+ }): Promise<SpotCheckResult>;
85
+ /**
86
+ * Runs the spot check once a day and keeps the latest result for the digest.
87
+ */
88
+ export declare class VerifiedSpotCheckService {
89
+ private static instance;
90
+ private readonly deps;
91
+ private timer;
92
+ private bootTimer;
93
+ private state;
94
+ private running;
95
+ /**
96
+ * @param deps - Hooks
97
+ */
98
+ constructor(deps: VerifiedSpotCheckDeps);
99
+ /** @returns The process-wide instance, if one was set */
100
+ static getInstance(): VerifiedSpotCheckService | null;
101
+ /**
102
+ * Set (or clear) the process-wide instance.
103
+ *
104
+ * @param service - The instance
105
+ */
106
+ static setInstance(service: VerifiedSpotCheckService | null): void;
107
+ /**
108
+ * Start the daily loop: a first check after the boot delay, then every
109
+ * {@link VERIFIED_SPOT_CHECK_CONSTANTS.CHECK_INTERVAL_MS} it asks whether
110
+ * today's run is still owed.
111
+ */
112
+ start(): void;
113
+ /** Stop the loop. */
114
+ stop(): void;
115
+ /**
116
+ * Run today's check unless it already ran today.
117
+ *
118
+ * @returns The result, or null when today's run was already done
119
+ */
120
+ runIfDue(): Promise<SpotCheckResult | null>;
121
+ /**
122
+ * Run the check now, record it as today's run, and tell the owner about
123
+ * any discrepancy.
124
+ *
125
+ * @returns The result
126
+ */
127
+ runOnce(): Promise<SpotCheckResult>;
128
+ /** @returns The latest result, or null before the first run */
129
+ latest(): Promise<SpotCheckResult | null>;
130
+ /**
131
+ * The digest line for a given day: today's result as one line, or null
132
+ * when no run happened that day (the digest then says nothing about it).
133
+ *
134
+ * @param now - Clock
135
+ * @returns The line, or null
136
+ */
137
+ digestLine(now: Date): Promise<string | null>;
138
+ /** @returns The clock */
139
+ private now;
140
+ /** @returns The state, read once */
141
+ private loadState;
142
+ /** Persist the state; a failure is logged, never thrown. */
143
+ private saveState;
144
+ }
145
+ //# sourceMappingURL=verified-spot-check.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verified-spot-check.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/task-pool/verified-spot-check.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,254 @@
1
+ /**
2
+ * Daily spot check of verified work (crewly#1315).
3
+ *
4
+ * Once a WorkItem is `verified`, nothing looked at it again: the evidence
5
+ * check only confirmed an artifact existed at completion time. This service
6
+ * samples a few verified items from the last day and re-checks that every
7
+ * artifact they named still exists. It never mutates a WorkItem.
8
+ *
9
+ * - Runs once per local day (state file under CREWLY_HOME remembers the day
10
+ * and the result, so a restart does not re-run or re-report it).
11
+ * - The result is one line, "N re-checked, M discrepancies", in the evening
12
+ * ticket digest the owner already reads — zero is stated, not omitted.
13
+ * - A discrepancy also goes to the owner at once through the owner-alert
14
+ * notifier, with the WorkItem id and the missing artifact.
15
+ *
16
+ * Phase 1: artifacts only. Re-running `command` entries marked replayable is
17
+ * a later phase.
18
+ *
19
+ * @module services/task-pool/verified-spot-check.service
20
+ */
21
+ import { VERIFIED_SPOT_CHECK_CONSTANTS } from '../../constants.js';
22
+ import { validateCompletionEvidence } from '../../types/v2/completion-evidence.types.js';
23
+ import { atomicWriteJson, safeReadJson } from '../../utils/file-io.utils.js';
24
+ import { localDateKey } from '../project-tickets/ticket-autopilot-decision.js';
25
+ import { recheckArtifacts } from './completion-evidence.service.js';
26
+ const C = VERIFIED_SPOT_CHECK_CONSTANTS;
27
+ /**
28
+ * Whether a WorkItem is a candidate: verified, completed within the window,
29
+ * and naming at least one artifact in its evidence.
30
+ *
31
+ * @param wi - The WorkItem
32
+ * @param nowMs - Clock
33
+ * @param windowMs - How far back a completion may be
34
+ * @returns True for a candidate
35
+ */
36
+ export function isSpotCheckCandidate(wi, nowMs, windowMs) {
37
+ if (wi.status !== 'verified')
38
+ return false;
39
+ const completed = Date.parse(wi.completedAt ?? '');
40
+ if (Number.isNaN(completed) || nowMs - completed > windowMs || completed > nowMs)
41
+ return false;
42
+ const v = validateCompletionEvidence(wi.output?.['evidence']);
43
+ return v.ok && v.evidence.some((e) => e.type === 'artifact');
44
+ }
45
+ /**
46
+ * Pick the items to re-check: all candidates when there are few, otherwise
47
+ * an even spread over the window (newest first) so one busy hour does not
48
+ * take every slot. Deterministic — the same pool gives the same sample.
49
+ *
50
+ * @param items - The pool
51
+ * @param nowMs - Clock
52
+ * @param options - Window and sample size
53
+ * @returns The candidates and the sample drawn from them
54
+ */
55
+ export function sampleVerified(items, nowMs, options = { windowMs: C.WINDOW_MS, sampleSize: C.SAMPLE_SIZE }) {
56
+ const candidates = items
57
+ .filter((wi) => isSpotCheckCandidate(wi, nowMs, options.windowMs))
58
+ .sort((a, b) => Date.parse(b.completedAt ?? '') - Date.parse(a.completedAt ?? '') || a.id.localeCompare(b.id));
59
+ if (candidates.length <= options.sampleSize || options.sampleSize <= 0) {
60
+ return { candidates, sample: options.sampleSize <= 0 ? [] : candidates };
61
+ }
62
+ const step = candidates.length / options.sampleSize;
63
+ const sample = [];
64
+ for (let i = 0; i < options.sampleSize; i++) {
65
+ const wi = candidates[Math.floor(i * step)];
66
+ if (wi)
67
+ sample.push(wi);
68
+ }
69
+ return { candidates, sample };
70
+ }
71
+ /**
72
+ * The one line the owner reads, with the discrepancies listed under it when
73
+ * there are any. Zero is stated.
74
+ *
75
+ * @param result - A run's result
76
+ * @returns Markdown lines
77
+ */
78
+ export function spotCheckLine(result) {
79
+ const n = result.discrepancies.length;
80
+ const head = `Spot check: ${result.sampled} verified item(s) from the last day re-checked, ${n} discrepanc${n === 1 ? 'y' : 'ies'}`;
81
+ if (n === 0)
82
+ return head;
83
+ const rows = result.discrepancies
84
+ .slice(0, C.MAX_LISTED_DISCREPANCIES)
85
+ .map((d) => `- ${d.workItemId} "${d.title.slice(0, C.TITLE_MAX_CHARS)}": ${d.problem}`);
86
+ if (n > rows.length)
87
+ rows.push(`- … and ${n - rows.length} more`);
88
+ return [head, ...rows].join('\n');
89
+ }
90
+ /**
91
+ * Re-check a sample of verified WorkItems. Pure apart from the file checks
92
+ * `recheck` performs.
93
+ *
94
+ * @param items - The pool
95
+ * @param now - Clock
96
+ * @param recheck - Re-checks one WorkItem's artifacts
97
+ * @param options - Window and sample size
98
+ * @returns The run's result
99
+ */
100
+ export async function runSpotCheck(items, now, recheck, options = { windowMs: C.WINDOW_MS, sampleSize: C.SAMPLE_SIZE }) {
101
+ const { candidates, sample } = sampleVerified(items, now.getTime(), options);
102
+ const discrepancies = [];
103
+ for (const wi of sample) {
104
+ const problems = await recheck(wi).catch((err) => [
105
+ { artifact: '(all)', problem: `re-check failed: ${err instanceof Error ? err.message : String(err)}` },
106
+ ]);
107
+ for (const p of problems)
108
+ discrepancies.push({ workItemId: wi.id, title: wi.title ?? '', ...p });
109
+ }
110
+ return { at: now.toISOString(), candidates: candidates.length, sampled: sample.length, discrepancies };
111
+ }
112
+ /**
113
+ * Runs the spot check once a day and keeps the latest result for the digest.
114
+ */
115
+ export class VerifiedSpotCheckService {
116
+ static instance = null;
117
+ deps;
118
+ timer = null;
119
+ bootTimer = null;
120
+ state = null;
121
+ running = null;
122
+ /**
123
+ * @param deps - Hooks
124
+ */
125
+ constructor(deps) {
126
+ this.deps = deps;
127
+ }
128
+ /** @returns The process-wide instance, if one was set */
129
+ static getInstance() {
130
+ return VerifiedSpotCheckService.instance;
131
+ }
132
+ /**
133
+ * Set (or clear) the process-wide instance.
134
+ *
135
+ * @param service - The instance
136
+ */
137
+ static setInstance(service) {
138
+ VerifiedSpotCheckService.instance = service;
139
+ }
140
+ /**
141
+ * Start the daily loop: a first check after the boot delay, then every
142
+ * {@link VERIFIED_SPOT_CHECK_CONSTANTS.CHECK_INTERVAL_MS} it asks whether
143
+ * today's run is still owed.
144
+ */
145
+ start() {
146
+ if (this.timer)
147
+ return;
148
+ this.bootTimer = setTimeout(() => void this.runIfDue(), C.BOOT_DELAY_MS);
149
+ this.timer = setInterval(() => void this.runIfDue(), C.CHECK_INTERVAL_MS);
150
+ }
151
+ /** Stop the loop. */
152
+ stop() {
153
+ if (this.bootTimer)
154
+ clearTimeout(this.bootTimer);
155
+ if (this.timer)
156
+ clearInterval(this.timer);
157
+ this.bootTimer = null;
158
+ this.timer = null;
159
+ }
160
+ /**
161
+ * Run today's check unless it already ran today.
162
+ *
163
+ * @returns The result, or null when today's run was already done
164
+ */
165
+ async runIfDue() {
166
+ if (this.running)
167
+ return this.running;
168
+ this.running = (async () => {
169
+ try {
170
+ const state = await this.loadState();
171
+ const today = localDateKey(this.now());
172
+ if (state.lastRunDate === today)
173
+ return null;
174
+ return await this.runOnce();
175
+ }
176
+ catch (err) {
177
+ this.deps.logger?.warn('Verified spot check failed', { error: err instanceof Error ? err.message : String(err) });
178
+ return null;
179
+ }
180
+ finally {
181
+ this.running = null;
182
+ }
183
+ })();
184
+ return this.running;
185
+ }
186
+ /**
187
+ * Run the check now, record it as today's run, and tell the owner about
188
+ * any discrepancy.
189
+ *
190
+ * @returns The result
191
+ */
192
+ async runOnce() {
193
+ const now = this.now();
194
+ const items = await this.deps.getItems();
195
+ const result = await runSpotCheck(items, now, this.deps.recheck ?? ((wi) => recheckArtifacts(wi)));
196
+ const state = await this.loadState();
197
+ state.lastRunDate = localDateKey(now);
198
+ state.lastResult = result;
199
+ await this.saveState();
200
+ this.deps.logger?.info('Verified spot check ran', {
201
+ candidates: result.candidates,
202
+ sampled: result.sampled,
203
+ discrepancies: result.discrepancies.length,
204
+ });
205
+ if (result.discrepancies.length > 0) {
206
+ await this.deps.notifyOwner({ title: C.OWNER_ALERT_TITLE, message: spotCheckLine(result), urgent: false }).catch(() => false);
207
+ }
208
+ return result;
209
+ }
210
+ /** @returns The latest result, or null before the first run */
211
+ async latest() {
212
+ return (await this.loadState()).lastResult ?? null;
213
+ }
214
+ /**
215
+ * The digest line for a given day: today's result as one line, or null
216
+ * when no run happened that day (the digest then says nothing about it).
217
+ *
218
+ * @param now - Clock
219
+ * @returns The line, or null
220
+ */
221
+ async digestLine(now) {
222
+ const state = await this.loadState();
223
+ if (!state.lastResult || state.lastRunDate !== localDateKey(now))
224
+ return null;
225
+ return spotCheckLine(state.lastResult);
226
+ }
227
+ /** @returns The clock */
228
+ now() {
229
+ return this.deps.now ? this.deps.now() : new Date();
230
+ }
231
+ /** @returns The state, read once */
232
+ async loadState() {
233
+ if (this.state)
234
+ return this.state;
235
+ const raw = await safeReadJson(this.deps.stateFile, {});
236
+ this.state = {
237
+ ...(typeof raw.lastRunDate === 'string' ? { lastRunDate: raw.lastRunDate } : {}),
238
+ ...(raw.lastResult && typeof raw.lastResult === 'object' ? { lastResult: raw.lastResult } : {}),
239
+ };
240
+ return this.state;
241
+ }
242
+ /** Persist the state; a failure is logged, never thrown. */
243
+ async saveState() {
244
+ if (!this.state)
245
+ return;
246
+ try {
247
+ await atomicWriteJson(this.deps.stateFile, this.state);
248
+ }
249
+ catch (err) {
250
+ this.deps.logger?.warn('Could not save verified spot check state', { error: err instanceof Error ? err.message : String(err) });
251
+ }
252
+ }
253
+ }
254
+ //# sourceMappingURL=verified-spot-check.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verified-spot-check.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/task-pool/verified-spot-check.service.ts"],"names":[],"mappings":"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"}
@@ -22,25 +22,37 @@
22
22
  * @module services/trace/turn-origin
23
23
  */
24
24
  import type { TraceOutcome } from './trace.types.js';
25
+ /**
26
+ * A harness write older than this no longer vouches for a submit: a paste
27
+ * whose Enter was lost and never taken must not mask a later prompt typed
28
+ * by someone else.
29
+ */
30
+ export declare const PENDING_WRITE_TTL_MS: number;
25
31
  /**
26
32
  * The harness is about to submit text into a session's input (called by the
27
33
  * guarded writer before it presses Enter).
28
34
  *
29
35
  * @param session - Agent session
30
36
  */
31
- export declare function noteHarnessWrite(session: string): void;
37
+ export declare function noteHarnessWrite(session: string, now?: number): void;
32
38
  /**
33
39
  * A prompt was submitted in the session (Claude Code UserPromptSubmit hook).
34
40
  * When the harness typed nothing since the last submitted prompt, the turn
35
41
  * was not started by a harness delivery: record `turn.unsolicited`.
36
42
  *
37
- * Claude Code may submit several queued harness messages as one prompt, so
38
- * one submit consumes every pending write.
43
+ * One submit consumes ONE pending write, oldest first. It used to consume
44
+ * every pending write: Claude Code queues each harness paste that lands
45
+ * mid-turn as its own prompt and submits them one by one when the turn ends,
46
+ * so the second and later ones were flagged unsolicited (21 times on
47
+ * 2026-10-22, Pia alone 12; crewly#1431). Writes expire after
48
+ * {@link PENDING_WRITE_TTL_MS} so a lost paste never vouches for a prompt
49
+ * typed much later by someone else.
39
50
  *
40
51
  * @param session - Agent session
52
+ * @param now - Clock (tests)
41
53
  * @returns True when the turn was unsolicited (and recorded)
42
54
  */
43
- export declare function notePromptSubmitted(session: string): boolean;
55
+ export declare function notePromptSubmitted(session: string, now?: number): boolean;
44
56
  /** An agent browser action, as recorded in a trace. */
45
57
  export interface BrowserActionTrace {
46
58
  /** Agent session */
@@ -1 +1 @@
1
- {"version":3,"file":"turn-origin.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/trace/turn-origin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAgFrD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAmB5D;AAED,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IAClC,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,2BAA2B;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,OAAO,EAAE,YAAY,CAAC;IACtB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAkClE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAGhD"}
1
+ {"version":3,"file":"turn-origin.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/trace/turn-origin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIrD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAiB,CAAC;AA6EnD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI,CAIhF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAsBtF;AAED,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IAClC,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,2BAA2B;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,OAAO,EAAE,YAAY,CAAC;IACtB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAkClE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAGhD"}
@@ -23,8 +23,14 @@
23
23
  */
24
24
  import { LoggerService } from '../core/logger.service.js';
25
25
  import { getTraceContext } from './trace-context.service.js';
26
- /** Harness writes not yet consumed by a submitted prompt, per session */
26
+ /** Harness writes (their times) not yet consumed by a submitted prompt, per session */
27
27
  const pendingWrites = new Map();
28
+ /**
29
+ * A harness write older than this no longer vouches for a submit: a paste
30
+ * whose Enter was lost and never taken must not mask a later prompt typed
31
+ * by someone else.
32
+ */
33
+ export const PENDING_WRITE_TTL_MS = 20 * 60 * 1000;
28
34
  /** Last trace each session was seen working in */
29
35
  const lastSeenTrace = new Map();
30
36
  /** Bound on tracked sessions (oldest dropped first) */
@@ -109,8 +115,9 @@ function traceFor(session, summary) {
109
115
  *
110
116
  * @param session - Agent session
111
117
  */
112
- export function noteHarnessWrite(session) {
113
- boundedSet(pendingWrites, session, (pendingWrites.get(session) ?? 0) + 1);
118
+ export function noteHarnessWrite(session, now = Date.now()) {
119
+ const fresh = (pendingWrites.get(session) ?? []).filter((at) => now - at < PENDING_WRITE_TTL_MS);
120
+ boundedSet(pendingWrites, session, [...fresh, now]);
114
121
  rememberCurrent(session);
115
122
  }
116
123
  /**
@@ -118,18 +125,29 @@ export function noteHarnessWrite(session) {
118
125
  * When the harness typed nothing since the last submitted prompt, the turn
119
126
  * was not started by a harness delivery: record `turn.unsolicited`.
120
127
  *
121
- * Claude Code may submit several queued harness messages as one prompt, so
122
- * one submit consumes every pending write.
128
+ * One submit consumes ONE pending write, oldest first. It used to consume
129
+ * every pending write: Claude Code queues each harness paste that lands
130
+ * mid-turn as its own prompt and submits them one by one when the turn ends,
131
+ * so the second and later ones were flagged unsolicited (21 times on
132
+ * 2026-10-22, Pia alone 12; crewly#1431). Writes expire after
133
+ * {@link PENDING_WRITE_TTL_MS} so a lost paste never vouches for a prompt
134
+ * typed much later by someone else.
123
135
  *
124
136
  * @param session - Agent session
137
+ * @param now - Clock (tests)
125
138
  * @returns True when the turn was unsolicited (and recorded)
126
139
  */
127
- export function notePromptSubmitted(session) {
128
- const pending = pendingWrites.get(session) ?? 0;
129
- if (pending > 0) {
130
- pendingWrites.delete(session);
140
+ export function notePromptSubmitted(session, now = Date.now()) {
141
+ const fresh = (pendingWrites.get(session) ?? []).filter((at) => now - at < PENDING_WRITE_TTL_MS);
142
+ if (fresh.length > 0) {
143
+ const left = fresh.slice(1);
144
+ if (left.length > 0)
145
+ boundedSet(pendingWrites, session, left);
146
+ else
147
+ pendingWrites.delete(session);
131
148
  return false;
132
149
  }
150
+ pendingWrites.delete(session);
133
151
  const summary = 'Turn not started by a harness delivery (text was already in the input or typed in the terminal)';
134
152
  log().warn('Unsolicited turn: a prompt was submitted that the harness did not type', { session });
135
153
  const traceId = traceFor(session, summary);
@@ -1 +1 @@
1
- {"version":3,"file":"turn-origin.js","sourceRoot":"","sources":["../../../../../../backend/src/services/trace/turn-origin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-origin.js","sourceRoot":"","sources":["../../../../../../backend/src/services/trace/turn-origin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workitem-dispatch.subscriber.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/workitem-dispatch.subscriber.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workitem-dispatch.subscriber.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/workitem-dispatch.subscriber.ts"],"names":[],"mappings":"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"}