opencode-longrun-harness 1.2.22

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 (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +390 -0
  3. package/docs/V1.2.20_EVIDENCE.md +114 -0
  4. package/docs/V1.2.21_EVIDENCE.md +68 -0
  5. package/docs/V1.2.22_EVIDENCE.md +52 -0
  6. package/harness/commissioning/README.md +16 -0
  7. package/harness/commissioning/inspect-copied-run.mjs +25 -0
  8. package/harness/commissioning/verify-copied-case.mjs +35 -0
  9. package/harness/plugin/longrun.js +677 -0
  10. package/harness/src/cli.mjs +40 -0
  11. package/harness/src/controller.js +1413 -0
  12. package/harness/src/evidence.mjs +135 -0
  13. package/harness/src/execution.mjs +217 -0
  14. package/harness/src/executor.mjs +21 -0
  15. package/harness/src/install.mjs +435 -0
  16. package/harness/src/maintenance.mjs +257 -0
  17. package/harness/src/memory.mjs +472 -0
  18. package/harness/test/candidates.test.mjs +73 -0
  19. package/harness/test/checkpoint.test.mjs +65 -0
  20. package/harness/test/controller.test.mjs +230 -0
  21. package/harness/test/evidence.test.mjs +57 -0
  22. package/harness/test/fixtures/durable-host.mjs +27 -0
  23. package/harness/test/fixtures/example-app-run.json +1375 -0
  24. package/harness/test/fixtures/notes-budget-exhausted-run.json +2070 -0
  25. package/harness/test/fixtures/notes-premature-complete-run.json +1496 -0
  26. package/harness/test/fixtures/notes-recovery-run.json +622 -0
  27. package/harness/test/fixtures/presets-readout-run.json +825 -0
  28. package/harness/test/fixtures/routing-worker.mjs +35 -0
  29. package/harness/test/fixtures/vitest-failed-receipt.json +33 -0
  30. package/harness/test/helper.mjs +41 -0
  31. package/harness/test/install.test.mjs +117 -0
  32. package/harness/test/lifecycle.test.mjs +102 -0
  33. package/harness/test/maintenance.test.mjs +204 -0
  34. package/harness/test/memory.test.mjs +145 -0
  35. package/harness/test/negative-control.test.mjs +91 -0
  36. package/harness/test/plugin.test.mjs +169 -0
  37. package/harness/test/recovery-runner.test.mjs +435 -0
  38. package/harness/test/recovery.test.mjs +68 -0
  39. package/harness/test/repair-mechanics.test.mjs +122 -0
  40. package/harness/test/toolbehavior.test.mjs +75 -0
  41. package/harness/test/v121-commissioning.test.mjs +177 -0
  42. package/harness/test/v1210-deadline.test.mjs +134 -0
  43. package/harness/test/v1211-pause.test.mjs +81 -0
  44. package/harness/test/v1212-maintenance-pause.test.mjs +76 -0
  45. package/harness/test/v1213-readout.test.mjs +82 -0
  46. package/harness/test/v1214-durable.test.mjs +121 -0
  47. package/harness/test/v1215-guidance.test.mjs +57 -0
  48. package/harness/test/v1216-test-summary.test.mjs +39 -0
  49. package/harness/test/v1217-discovery.test.mjs +73 -0
  50. package/harness/test/v1218-completion-review.test.mjs +203 -0
  51. package/harness/test/v1219-budget-pause.test.mjs +134 -0
  52. package/harness/test/v122-lifecycle-resolver.test.mjs +218 -0
  53. package/harness/test/v1220-budget-amendment.test.mjs +343 -0
  54. package/harness/test/v1221-negative-fixture-anchor.test.mjs +65 -0
  55. package/harness/test/v1222-default-evidence-class.test.mjs +75 -0
  56. package/harness/test/v123-plugin-e2e.test.mjs +120 -0
  57. package/harness/test/v123-receipt-model.test.mjs +185 -0
  58. package/harness/test/v124-canonical.test.mjs +147 -0
  59. package/harness/test/v124-installed.test.mjs +48 -0
  60. package/harness/test/v125-stability.test.mjs +183 -0
  61. package/harness/test/v126-execution.test.mjs +183 -0
  62. package/harness/test/v127-reconciliation.test.mjs +139 -0
  63. package/harness/test/v128-compaction.test.mjs +156 -0
  64. package/harness/test/v129-routing.test.mjs +165 -0
  65. package/harness/tools/audit-receipts.mjs +121 -0
  66. package/harness/tools/recovery-runner.mjs +499 -0
  67. package/package.json +49 -0
@@ -0,0 +1,1496 @@
1
+ {
2
+ "runId": "lr-00000000a1b2",
3
+ "status": "COMPLETE",
4
+ "originalRequest": "Example App expansion: implement the requested feature end to end in this copy only, keep every existing subsystem and test intact, and prove the result with the declared checks.",
5
+ "contract": {
6
+ "criteria": [
7
+ {
8
+ "id": "notes-server",
9
+ "required": true,
10
+ "weight": 3,
11
+ "checks": [
12
+ "c-notes-server"
13
+ ],
14
+ "evidenceClass": "INTEGRATION",
15
+ "visual": false,
16
+ "status": "FAIL"
17
+ },
18
+ {
19
+ "id": "notes-gameplay",
20
+ "required": true,
21
+ "weight": 3,
22
+ "checks": [
23
+ "c-notes-e2e"
24
+ ],
25
+ "evidenceClass": "BROWSER",
26
+ "visual": false,
27
+ "status": "FAIL"
28
+ },
29
+ {
30
+ "id": "regression-unit",
31
+ "required": true,
32
+ "weight": 1,
33
+ "checks": [
34
+ "c-default-unit"
35
+ ],
36
+ "evidenceClass": "UNIT",
37
+ "visual": false,
38
+ "status": "FAIL"
39
+ },
40
+ {
41
+ "id": "regression-browser",
42
+ "required": true,
43
+ "weight": 1,
44
+ "checks": [
45
+ "c-default-browser"
46
+ ],
47
+ "evidenceClass": "BROWSER",
48
+ "visual": false,
49
+ "status": "FAIL"
50
+ }
51
+ ],
52
+ "gates": [
53
+ {
54
+ "id": "c-typecheck",
55
+ "required": true,
56
+ "status": "FAIL"
57
+ },
58
+ {
59
+ "id": "c-build",
60
+ "required": true,
61
+ "status": "FAIL"
62
+ }
63
+ ],
64
+ "lossTarget": 0
65
+ },
66
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
67
+ "evaluatorHash": null,
68
+ "sourceFingerprint": "cc2be4bfd14c0210536dde650760876166c10a19331594667aeb6ace8cdca4db",
69
+ "loss": 1,
70
+ "budget": {
71
+ "iterations": 24,
72
+ "activeSeconds": 7200,
73
+ "deadlineSeconds": 28800,
74
+ "sameFailureLimit": 3,
75
+ "noProgressLimit": 5,
76
+ "autoDispatchCap": 40,
77
+ "toolActionCap": 140
78
+ },
79
+ "autoEnabled": false,
80
+ "runMode": "tracked",
81
+ "memoryStatus": "FRESH",
82
+ "state": {
83
+ "iterations": 0,
84
+ "noProgressStreak": 0,
85
+ "sameFailureStreak": 0,
86
+ "candidates": [
87
+ {
88
+ "n": 1,
89
+ "runId": "lr-00000000a1b2",
90
+ "fingerprint": "cd10010000934e59561b9004c978d7f7dd1ecf8d6dbadc9e16eb4943823bda40",
91
+ "ts": 1789934897617,
92
+ "hypothesis": null,
93
+ "receiptIds": [
94
+ "receipt-1-ca3602d2492c"
95
+ ],
96
+ "criteriaChanged": [
97
+ "notes-server"
98
+ ],
99
+ "lossBefore": 1,
100
+ "lossAfter": 1,
101
+ "bestLoss": null,
102
+ "result": "FAIL",
103
+ "diagnosticOnly": false,
104
+ "elapsedMs": 1155,
105
+ "counted": true,
106
+ "reason": "evaluated_new_source_state"
107
+ },
108
+ {
109
+ "n": 2,
110
+ "runId": "lr-00000000a1b2",
111
+ "fingerprint": "6223097690aa0750d4aadcccebd0ee6da8eeaab9a20504092b546a5816f6f31a",
112
+ "ts": 1789934952509,
113
+ "hypothesis": null,
114
+ "receiptIds": [
115
+ "receipt-2-6f43c274634d"
116
+ ],
117
+ "criteriaChanged": [
118
+ "notes-server"
119
+ ],
120
+ "lossBefore": 1,
121
+ "lossAfter": 1,
122
+ "bestLoss": null,
123
+ "result": "FAIL",
124
+ "diagnosticOnly": false,
125
+ "elapsedMs": 827,
126
+ "counted": true,
127
+ "reason": "evaluated_new_source_state"
128
+ },
129
+ {
130
+ "n": 3,
131
+ "runId": "lr-00000000a1b2",
132
+ "fingerprint": "3ce79a0e64f47e3413bb578c61e8aba944a6b450134177ba100fb91ae6bd57f4",
133
+ "ts": 1789934970085,
134
+ "hypothesis": null,
135
+ "receiptIds": [
136
+ "receipt-3-16e13ce44f83"
137
+ ],
138
+ "criteriaChanged": [
139
+ "notes-server"
140
+ ],
141
+ "lossBefore": 1,
142
+ "lossAfter": 0.625,
143
+ "bestLoss": null,
144
+ "result": "PASS",
145
+ "diagnosticOnly": false,
146
+ "elapsedMs": 650,
147
+ "counted": true,
148
+ "reason": "evaluated_new_source_state"
149
+ },
150
+ {
151
+ "n": 4,
152
+ "runId": "lr-00000000a1b2",
153
+ "fingerprint": "15a944aca1fb2ba7dddf7f06d2f55eccfe2ee42a131fc7c8d684d0c241d4f0d4",
154
+ "ts": 1789935608384,
155
+ "hypothesis": null,
156
+ "receiptIds": [
157
+ "receipt-4-d653eda7591b"
158
+ ],
159
+ "criteriaChanged": [
160
+ "notes-server"
161
+ ],
162
+ "lossBefore": 1,
163
+ "lossAfter": 0.625,
164
+ "bestLoss": 0.625,
165
+ "result": "PASS",
166
+ "diagnosticOnly": false,
167
+ "elapsedMs": 1241,
168
+ "counted": true,
169
+ "reason": "evaluated_new_source_state"
170
+ },
171
+ {
172
+ "n": 5,
173
+ "runId": "lr-00000000a1b2",
174
+ "fingerprint": "227226c09a19c94a3d8bb7a20226bd5dd8b2847dbe463ea892ef92bed00a7b6c",
175
+ "ts": 1789935717606,
176
+ "hypothesis": null,
177
+ "receiptIds": [
178
+ "receipt-6-0bdc3608449c"
179
+ ],
180
+ "criteriaChanged": [],
181
+ "lossBefore": 1,
182
+ "lossAfter": 1,
183
+ "bestLoss": 0.625,
184
+ "result": "PASS",
185
+ "diagnosticOnly": false,
186
+ "elapsedMs": 1060,
187
+ "counted": true,
188
+ "reason": "evaluated_new_source_state"
189
+ },
190
+ {
191
+ "n": 6,
192
+ "runId": "lr-00000000a1b2",
193
+ "fingerprint": "82ea0b6f585fcb6be389cb81bfad113e4a077fea08e018b724c9622c5e5906ee",
194
+ "ts": 1789937597564,
195
+ "hypothesis": null,
196
+ "receiptIds": [
197
+ "receipt-7-68c13bf25294"
198
+ ],
199
+ "criteriaChanged": [],
200
+ "lossBefore": 1,
201
+ "lossAfter": 1,
202
+ "bestLoss": 0.625,
203
+ "result": "FAIL",
204
+ "diagnosticOnly": false,
205
+ "elapsedMs": 1088,
206
+ "counted": true,
207
+ "reason": "evaluated_new_source_state"
208
+ },
209
+ {
210
+ "n": 7,
211
+ "runId": "lr-00000000a1b2",
212
+ "fingerprint": "de4c38391a5de287d7a16c33a47233f5e8430bc99fa911db3d0be00ce43780f6",
213
+ "ts": 1789937612496,
214
+ "hypothesis": null,
215
+ "receiptIds": [
216
+ "receipt-8-aa9f6cf5a631"
217
+ ],
218
+ "criteriaChanged": [],
219
+ "lossBefore": 1,
220
+ "lossAfter": 1,
221
+ "bestLoss": 0.625,
222
+ "result": "PASS",
223
+ "diagnosticOnly": false,
224
+ "elapsedMs": 872,
225
+ "counted": true,
226
+ "reason": "evaluated_new_source_state"
227
+ },
228
+ {
229
+ "n": 8,
230
+ "runId": "lr-00000000a1b2",
231
+ "fingerprint": "22f09d3dfc8329d291d6a882467dd74b916474cf314444f5d6660ea405d5dd1f",
232
+ "ts": 1789938042983,
233
+ "hypothesis": null,
234
+ "receiptIds": [
235
+ "receipt-9-52e08a88fa2d"
236
+ ],
237
+ "criteriaChanged": [
238
+ "notes-server"
239
+ ],
240
+ "lossBefore": 1,
241
+ "lossAfter": 0.625,
242
+ "bestLoss": 0.625,
243
+ "result": "PASS",
244
+ "diagnosticOnly": false,
245
+ "elapsedMs": 1059,
246
+ "counted": true,
247
+ "reason": "evaluated_new_source_state"
248
+ },
249
+ {
250
+ "n": 9,
251
+ "runId": "lr-00000000a1b2",
252
+ "fingerprint": "2447c90c4d257df55b4b5c547b3349a91bcb1ff752ebea0b73cec00f134c546b",
253
+ "ts": 1789938190471,
254
+ "hypothesis": null,
255
+ "receiptIds": [
256
+ "receipt-11-722b039a6d8b"
257
+ ],
258
+ "criteriaChanged": [
259
+ "notes-gameplay"
260
+ ],
261
+ "lossBefore": 1,
262
+ "lossAfter": 1,
263
+ "bestLoss": 0.625,
264
+ "result": "FAIL",
265
+ "diagnosticOnly": false,
266
+ "elapsedMs": 28618,
267
+ "counted": true,
268
+ "reason": "evaluated_new_source_state"
269
+ },
270
+ {
271
+ "n": 10,
272
+ "runId": "lr-00000000a1b2",
273
+ "fingerprint": "92a0819f51ce24b5cf0de3b181cbaab5dd6c6d46b047cf022bb67d5a3f4612e6",
274
+ "ts": 1789938300582,
275
+ "hypothesis": null,
276
+ "receiptIds": [
277
+ "receipt-12-8a7b98eb7262"
278
+ ],
279
+ "criteriaChanged": [
280
+ "notes-gameplay"
281
+ ],
282
+ "lossBefore": 1,
283
+ "lossAfter": 1,
284
+ "bestLoss": 0.625,
285
+ "result": "FAIL",
286
+ "diagnosticOnly": false,
287
+ "elapsedMs": 28401,
288
+ "counted": true,
289
+ "reason": "evaluated_new_source_state"
290
+ },
291
+ {
292
+ "n": 11,
293
+ "runId": "lr-00000000a1b2",
294
+ "fingerprint": "78a8e6d75a733302b24a687359853133bc8b8e79cd7cd73e25fc9a55da9fe53c",
295
+ "ts": 1789938555705,
296
+ "hypothesis": null,
297
+ "receiptIds": [
298
+ "receipt-13-237f7573f025"
299
+ ],
300
+ "criteriaChanged": [
301
+ "notes-gameplay"
302
+ ],
303
+ "lossBefore": 1,
304
+ "lossAfter": 1,
305
+ "bestLoss": 0.625,
306
+ "result": "FAIL",
307
+ "diagnosticOnly": false,
308
+ "elapsedMs": 211549,
309
+ "counted": true,
310
+ "reason": "evaluated_new_source_state"
311
+ },
312
+ {
313
+ "n": 12,
314
+ "runId": "lr-00000000a1b2",
315
+ "fingerprint": "65fe8b7948e2d571a1c730c0998997f93482c23abb1005fba08a9ae7402d59cc",
316
+ "ts": 1789939303401,
317
+ "hypothesis": null,
318
+ "receiptIds": [
319
+ "receipt-14-200707480c73"
320
+ ],
321
+ "criteriaChanged": [
322
+ "notes-gameplay"
323
+ ],
324
+ "lossBefore": 1,
325
+ "lossAfter": 1,
326
+ "bestLoss": 0.625,
327
+ "result": "FAIL",
328
+ "diagnosticOnly": false,
329
+ "elapsedMs": 74829,
330
+ "counted": true,
331
+ "reason": "evaluated_new_source_state"
332
+ },
333
+ {
334
+ "n": 13,
335
+ "runId": "lr-00000000a1b2",
336
+ "fingerprint": "e5738ddd2f71a5e7f23ee96aa9a07b1b181c95794b61a1817cac0287d1caf9c1",
337
+ "ts": 1789939403763,
338
+ "hypothesis": null,
339
+ "receiptIds": [
340
+ "receipt-15-fcb1524de086"
341
+ ],
342
+ "criteriaChanged": [
343
+ "notes-gameplay"
344
+ ],
345
+ "lossBefore": 1,
346
+ "lossAfter": 1,
347
+ "bestLoss": 0.625,
348
+ "result": "FAIL",
349
+ "diagnosticOnly": false,
350
+ "elapsedMs": 73685,
351
+ "counted": true,
352
+ "reason": "evaluated_new_source_state"
353
+ },
354
+ {
355
+ "n": 14,
356
+ "runId": "lr-00000000a1b2",
357
+ "fingerprint": "d35892d8eb496cd291827339fb5bbcf556515a3132464a0820497b638fe7172a",
358
+ "ts": 1789939494887,
359
+ "hypothesis": null,
360
+ "receiptIds": [
361
+ "receipt-16-af558b551339"
362
+ ],
363
+ "criteriaChanged": [
364
+ "notes-gameplay"
365
+ ],
366
+ "lossBefore": 1,
367
+ "lossAfter": 0.625,
368
+ "bestLoss": 0.625,
369
+ "result": "PASS",
370
+ "diagnosticOnly": false,
371
+ "elapsedMs": 64736,
372
+ "counted": true,
373
+ "reason": "evaluated_new_source_state"
374
+ },
375
+ {
376
+ "n": 15,
377
+ "runId": "lr-00000000a1b2",
378
+ "fingerprint": "25dae1b3154b8234e9214dbf4f22036483ceb2b1bb01e5a3c461298c76d4a21c",
379
+ "ts": 1789939742067,
380
+ "hypothesis": null,
381
+ "receiptIds": [
382
+ "receipt-20-2f9421896e76"
383
+ ],
384
+ "criteriaChanged": [
385
+ "regression-browser"
386
+ ],
387
+ "lossBefore": 1,
388
+ "lossAfter": 0.875,
389
+ "bestLoss": 0.625,
390
+ "result": "PASS",
391
+ "diagnosticOnly": false,
392
+ "elapsedMs": 101797,
393
+ "counted": true,
394
+ "reason": "evaluated_new_source_state"
395
+ },
396
+ {
397
+ "n": 16,
398
+ "runId": "lr-00000000a1b2",
399
+ "fingerprint": "cc2be4bfd14c0210536dde650760876166c10a19331594667aeb6ace8cdca4db",
400
+ "ts": 1789939778497,
401
+ "hypothesis": null,
402
+ "receiptIds": [
403
+ "receipt-21-9debbabb0d91"
404
+ ],
405
+ "criteriaChanged": [],
406
+ "lossBefore": 1,
407
+ "lossAfter": 1,
408
+ "bestLoss": 0.625,
409
+ "result": "PASS",
410
+ "diagnosticOnly": false,
411
+ "elapsedMs": 1054,
412
+ "counted": true,
413
+ "reason": "evaluated_new_source_state"
414
+ }
415
+ ],
416
+ "lastEvalFingerprint": "cc2be4bfd14c0210536dde650760876166c10a19331594667aeb6ace8cdca4db",
417
+ "memoryNodes": [
418
+ "AGENTS.md"
419
+ ],
420
+ "current": {
421
+ "n": 16,
422
+ "runId": "lr-00000000a1b2",
423
+ "fingerprint": "cc2be4bfd14c0210536dde650760876166c10a19331594667aeb6ace8cdca4db",
424
+ "ts": 1789939778497,
425
+ "hypothesis": null,
426
+ "receiptIds": [
427
+ "receipt-21-9debbabb0d91"
428
+ ],
429
+ "criteriaChanged": [],
430
+ "lossBefore": 1,
431
+ "lossAfter": 1,
432
+ "bestLoss": 0.625,
433
+ "result": "PASS",
434
+ "diagnosticOnly": false,
435
+ "elapsedMs": 1054,
436
+ "counted": true,
437
+ "reason": "evaluated_new_source_state"
438
+ },
439
+ "best": {
440
+ "n": 14,
441
+ "runId": "lr-00000000a1b2",
442
+ "fingerprint": "d35892d8eb496cd291827339fb5bbcf556515a3132464a0820497b638fe7172a",
443
+ "ts": 1789939494887,
444
+ "hypothesis": null,
445
+ "receiptIds": [
446
+ "receipt-16-af558b551339"
447
+ ],
448
+ "criteriaChanged": [
449
+ "notes-gameplay"
450
+ ],
451
+ "lossBefore": 1,
452
+ "lossAfter": 0.625,
453
+ "bestLoss": 0.625,
454
+ "result": "PASS",
455
+ "diagnosticOnly": false,
456
+ "elapsedMs": 64736,
457
+ "counted": true,
458
+ "reason": "evaluated_new_source_state"
459
+ }
460
+ },
461
+ "receipts": [
462
+ {
463
+ "checkId": "c-notes-server",
464
+ "command": "npx vitest run packages/server/test/notes.test.ts",
465
+ "status": "FAIL",
466
+ "exitCode": 1,
467
+ "testCount": 0,
468
+ "startedAt": 1789934896427,
469
+ "finishedAt": 1789934897582,
470
+ "versions": {
471
+ "node": "v24.21.0"
472
+ },
473
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
474
+ "evaluatorHash": null,
475
+ "sourceFingerprint": "cd10010000934e59561b9004c978d7f7dd1ecf8d6dbadc9e16eb4943823bda40",
476
+ "fingerprintSchemaVersion": 2,
477
+ "fpScope": "project",
478
+ "evidenceClass": "INTEGRATION",
479
+ "class": "INTEGRATION",
480
+ "proxyOnly": false,
481
+ "argv": [
482
+ "npx",
483
+ "vitest",
484
+ "run",
485
+ "packages/server/test/notes.test.ts"
486
+ ],
487
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
488
+ "terminationReason": null,
489
+ "executionError": null,
490
+ "executionToken": "f2c22247-b625-4bc6-841a-07f2eacab20f"
491
+ },
492
+ {
493
+ "checkId": "c-notes-server",
494
+ "command": "npx vitest run packages/server/test/notes.test.ts",
495
+ "status": "FAIL",
496
+ "exitCode": 1,
497
+ "testCount": 0,
498
+ "startedAt": 1789934951646,
499
+ "finishedAt": 1789934952473,
500
+ "versions": {
501
+ "node": "v24.21.0"
502
+ },
503
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
504
+ "evaluatorHash": null,
505
+ "sourceFingerprint": "6223097690aa0750d4aadcccebd0ee6da8eeaab9a20504092b546a5816f6f31a",
506
+ "fingerprintSchemaVersion": 2,
507
+ "fpScope": "project",
508
+ "evidenceClass": "INTEGRATION",
509
+ "class": "INTEGRATION",
510
+ "proxyOnly": false,
511
+ "argv": [
512
+ "npx",
513
+ "vitest",
514
+ "run",
515
+ "packages/server/test/notes.test.ts"
516
+ ],
517
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
518
+ "terminationReason": null,
519
+ "executionError": null,
520
+ "executionToken": "2600fc75-2d2d-40f8-a37a-60c427380a04"
521
+ },
522
+ {
523
+ "checkId": "c-notes-server",
524
+ "command": "npx vitest run packages/server/test/notes.test.ts",
525
+ "status": "PASS",
526
+ "exitCode": 0,
527
+ "testCount": 11,
528
+ "startedAt": 1789934969397,
529
+ "finishedAt": 1789934970047,
530
+ "versions": {
531
+ "node": "v24.21.0"
532
+ },
533
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
534
+ "evaluatorHash": null,
535
+ "sourceFingerprint": "3ce79a0e64f47e3413bb578c61e8aba944a6b450134177ba100fb91ae6bd57f4",
536
+ "fingerprintSchemaVersion": 2,
537
+ "fpScope": "project",
538
+ "evidenceClass": "INTEGRATION",
539
+ "class": "INTEGRATION",
540
+ "proxyOnly": false,
541
+ "argv": [
542
+ "npx",
543
+ "vitest",
544
+ "run",
545
+ "packages/server/test/notes.test.ts"
546
+ ],
547
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
548
+ "terminationReason": null,
549
+ "executionError": null,
550
+ "executionToken": "1d038255-d020-4eb2-a003-78c16c9342c4"
551
+ },
552
+ {
553
+ "checkId": "c-notes-server",
554
+ "command": "npx vitest run packages/server/test/notes.test.ts",
555
+ "status": "PASS",
556
+ "exitCode": 0,
557
+ "testCount": 13,
558
+ "startedAt": 1789935607105,
559
+ "finishedAt": 1789935608346,
560
+ "versions": {
561
+ "node": "v24.21.0"
562
+ },
563
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
564
+ "evaluatorHash": null,
565
+ "sourceFingerprint": "15a944aca1fb2ba7dddf7f06d2f55eccfe2ee42a131fc7c8d684d0c241d4f0d4",
566
+ "fingerprintSchemaVersion": 2,
567
+ "fpScope": "project",
568
+ "evidenceClass": "INTEGRATION",
569
+ "class": "INTEGRATION",
570
+ "proxyOnly": false,
571
+ "argv": [
572
+ "npx",
573
+ "vitest",
574
+ "run",
575
+ "packages/server/test/notes.test.ts"
576
+ ],
577
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
578
+ "terminationReason": null,
579
+ "executionError": null,
580
+ "executionToken": "ee6815f4-1641-4533-b482-ef8d697447ac"
581
+ },
582
+ {
583
+ "checkId": "c-typecheck",
584
+ "command": "npx tsc -p tsconfig.json --noEmit",
585
+ "status": "FAIL",
586
+ "exitCode": 2,
587
+ "testCount": null,
588
+ "startedAt": 1789935626150,
589
+ "finishedAt": 1789935627298,
590
+ "versions": {
591
+ "node": "v24.21.0"
592
+ },
593
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
594
+ "evaluatorHash": null,
595
+ "sourceFingerprint": "15a944aca1fb2ba7dddf7f06d2f55eccfe2ee42a131fc7c8d684d0c241d4f0d4",
596
+ "fingerprintSchemaVersion": 2,
597
+ "fpScope": "project",
598
+ "evidenceClass": "STATIC",
599
+ "class": "STATIC",
600
+ "proxyOnly": false,
601
+ "argv": [
602
+ "npx",
603
+ "tsc",
604
+ "-p",
605
+ "tsconfig.json",
606
+ "--noEmit"
607
+ ],
608
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
609
+ "terminationReason": null,
610
+ "executionError": null,
611
+ "executionToken": "5c1f7852-780b-4c4b-a80f-209990a74f62"
612
+ },
613
+ {
614
+ "checkId": "c-typecheck",
615
+ "command": "npx tsc -p tsconfig.json --noEmit",
616
+ "status": "PASS",
617
+ "exitCode": 0,
618
+ "testCount": null,
619
+ "startedAt": 1789935716512,
620
+ "finishedAt": 1789935717572,
621
+ "versions": {
622
+ "node": "v24.21.0"
623
+ },
624
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
625
+ "evaluatorHash": null,
626
+ "sourceFingerprint": "227226c09a19c94a3d8bb7a20226bd5dd8b2847dbe463ea892ef92bed00a7b6c",
627
+ "fingerprintSchemaVersion": 2,
628
+ "fpScope": "project",
629
+ "evidenceClass": "STATIC",
630
+ "class": "STATIC",
631
+ "proxyOnly": false,
632
+ "argv": [
633
+ "npx",
634
+ "tsc",
635
+ "-p",
636
+ "tsconfig.json",
637
+ "--noEmit"
638
+ ],
639
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
640
+ "terminationReason": null,
641
+ "executionError": null,
642
+ "executionToken": "149d0d71-b16a-40fd-a8e6-4a94cb0f9bf0"
643
+ },
644
+ {
645
+ "checkId": "c-typecheck",
646
+ "command": "npx tsc -p tsconfig.json --noEmit",
647
+ "status": "FAIL",
648
+ "exitCode": 2,
649
+ "testCount": null,
650
+ "startedAt": 1789937596444,
651
+ "finishedAt": 1789937597532,
652
+ "versions": {
653
+ "node": "v24.21.0"
654
+ },
655
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
656
+ "evaluatorHash": null,
657
+ "sourceFingerprint": "82ea0b6f585fcb6be389cb81bfad113e4a077fea08e018b724c9622c5e5906ee",
658
+ "fingerprintSchemaVersion": 2,
659
+ "fpScope": "project",
660
+ "evidenceClass": "STATIC",
661
+ "class": "STATIC",
662
+ "proxyOnly": false,
663
+ "argv": [
664
+ "npx",
665
+ "tsc",
666
+ "-p",
667
+ "tsconfig.json",
668
+ "--noEmit"
669
+ ],
670
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
671
+ "terminationReason": null,
672
+ "executionError": null,
673
+ "executionToken": "3bf9282e-710f-4c56-b264-ae47c2b6dc71"
674
+ },
675
+ {
676
+ "checkId": "c-typecheck",
677
+ "command": "npx tsc -p tsconfig.json --noEmit",
678
+ "status": "PASS",
679
+ "exitCode": 0,
680
+ "testCount": null,
681
+ "startedAt": 1789937611594,
682
+ "finishedAt": 1789937612466,
683
+ "versions": {
684
+ "node": "v24.21.0"
685
+ },
686
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
687
+ "evaluatorHash": null,
688
+ "sourceFingerprint": "de4c38391a5de287d7a16c33a47233f5e8430bc99fa911db3d0be00ce43780f6",
689
+ "fingerprintSchemaVersion": 2,
690
+ "fpScope": "project",
691
+ "evidenceClass": "STATIC",
692
+ "class": "STATIC",
693
+ "proxyOnly": false,
694
+ "argv": [
695
+ "npx",
696
+ "tsc",
697
+ "-p",
698
+ "tsconfig.json",
699
+ "--noEmit"
700
+ ],
701
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
702
+ "terminationReason": null,
703
+ "executionError": null,
704
+ "executionToken": "23c171f3-6733-44ea-a27f-642c86cc9c03"
705
+ },
706
+ {
707
+ "checkId": "c-notes-server",
708
+ "command": "npx vitest run packages/server/test/notes.test.ts",
709
+ "status": "PASS",
710
+ "exitCode": 0,
711
+ "testCount": 13,
712
+ "startedAt": 1789938041887,
713
+ "finishedAt": 1789938042946,
714
+ "versions": {
715
+ "node": "v24.21.0"
716
+ },
717
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
718
+ "evaluatorHash": null,
719
+ "sourceFingerprint": "22f09d3dfc8329d291d6a882467dd74b916474cf314444f5d6660ea405d5dd1f",
720
+ "fingerprintSchemaVersion": 2,
721
+ "fpScope": "project",
722
+ "evidenceClass": "INTEGRATION",
723
+ "class": "INTEGRATION",
724
+ "proxyOnly": false,
725
+ "argv": [
726
+ "npx",
727
+ "vitest",
728
+ "run",
729
+ "packages/server/test/notes.test.ts"
730
+ ],
731
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
732
+ "terminationReason": null,
733
+ "executionError": null,
734
+ "executionToken": "78b7ef12-7b6e-497f-bd60-15639ecb310f"
735
+ },
736
+ {
737
+ "checkId": "c-notes-e2e",
738
+ "command": "npx playwright test --config playwright.notes.config.ts",
739
+ "status": "FAIL",
740
+ "exitCode": 1,
741
+ "testCount": 1,
742
+ "startedAt": 1789938049819,
743
+ "finishedAt": 1789938092175,
744
+ "versions": {
745
+ "node": "v24.21.0"
746
+ },
747
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
748
+ "evaluatorHash": null,
749
+ "sourceFingerprint": "22f09d3dfc8329d291d6a882467dd74b916474cf314444f5d6660ea405d5dd1f",
750
+ "fingerprintSchemaVersion": 2,
751
+ "fpScope": "project",
752
+ "evidenceClass": "BROWSER",
753
+ "class": "BROWSER",
754
+ "proxyOnly": false,
755
+ "argv": [
756
+ "npx",
757
+ "playwright",
758
+ "test",
759
+ "--config",
760
+ "playwright.notes.config.ts"
761
+ ],
762
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
763
+ "terminationReason": null,
764
+ "executionError": null,
765
+ "executionToken": "9f44dd21-2ebc-4a41-9052-90fb2d23c3b2"
766
+ },
767
+ {
768
+ "checkId": "c-notes-e2e",
769
+ "command": "npx playwright test --config playwright.notes.config.ts",
770
+ "status": "FAIL",
771
+ "exitCode": 1,
772
+ "testCount": 4,
773
+ "startedAt": 1789938161795,
774
+ "finishedAt": 1789938190413,
775
+ "versions": {
776
+ "node": "v24.21.0"
777
+ },
778
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
779
+ "evaluatorHash": null,
780
+ "sourceFingerprint": "2447c90c4d257df55b4b5c547b3349a91bcb1ff752ebea0b73cec00f134c546b",
781
+ "fingerprintSchemaVersion": 2,
782
+ "fpScope": "project",
783
+ "evidenceClass": "BROWSER",
784
+ "class": "BROWSER",
785
+ "proxyOnly": false,
786
+ "argv": [
787
+ "npx",
788
+ "playwright",
789
+ "test",
790
+ "--config",
791
+ "playwright.notes.config.ts"
792
+ ],
793
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
794
+ "terminationReason": null,
795
+ "executionError": null,
796
+ "executionToken": "b2bd865b-bc58-4598-9eb1-4d48cb7b7f17"
797
+ },
798
+ {
799
+ "checkId": "c-notes-e2e",
800
+ "command": "npx playwright test --config playwright.notes.config.ts",
801
+ "status": "FAIL",
802
+ "exitCode": 1,
803
+ "testCount": 4,
804
+ "startedAt": 1789938272124,
805
+ "finishedAt": 1789938300525,
806
+ "versions": {
807
+ "node": "v24.21.0"
808
+ },
809
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
810
+ "evaluatorHash": null,
811
+ "sourceFingerprint": "92a0819f51ce24b5cf0de3b181cbaab5dd6c6d46b047cf022bb67d5a3f4612e6",
812
+ "fingerprintSchemaVersion": 2,
813
+ "fpScope": "project",
814
+ "evidenceClass": "BROWSER",
815
+ "class": "BROWSER",
816
+ "proxyOnly": false,
817
+ "argv": [
818
+ "npx",
819
+ "playwright",
820
+ "test",
821
+ "--config",
822
+ "playwright.notes.config.ts"
823
+ ],
824
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
825
+ "terminationReason": null,
826
+ "executionError": null,
827
+ "executionToken": "731f8aec-d6ca-4aa6-bf12-8f1eaeee3c66"
828
+ },
829
+ {
830
+ "checkId": "c-notes-e2e",
831
+ "command": "npx playwright test --config playwright.notes.config.ts",
832
+ "status": "FAIL",
833
+ "exitCode": 1,
834
+ "testCount": 5,
835
+ "startedAt": 1789938344109,
836
+ "finishedAt": 1789938555658,
837
+ "versions": {
838
+ "node": "v24.21.0"
839
+ },
840
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
841
+ "evaluatorHash": null,
842
+ "sourceFingerprint": "78a8e6d75a733302b24a687359853133bc8b8e79cd7cd73e25fc9a55da9fe53c",
843
+ "fingerprintSchemaVersion": 2,
844
+ "fpScope": "project",
845
+ "evidenceClass": "BROWSER",
846
+ "class": "BROWSER",
847
+ "proxyOnly": false,
848
+ "argv": [
849
+ "npx",
850
+ "playwright",
851
+ "test",
852
+ "--config",
853
+ "playwright.notes.config.ts"
854
+ ],
855
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
856
+ "terminationReason": null,
857
+ "executionError": null,
858
+ "executionToken": "49642558-96cc-487b-8645-5739019e1b2c"
859
+ },
860
+ {
861
+ "checkId": "c-notes-e2e",
862
+ "command": "npx playwright test --config playwright.notes.config.ts",
863
+ "status": "FAIL",
864
+ "exitCode": 1,
865
+ "testCount": 6,
866
+ "startedAt": 1789939228525,
867
+ "finishedAt": 1789939303354,
868
+ "versions": {
869
+ "node": "v24.21.0"
870
+ },
871
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
872
+ "evaluatorHash": null,
873
+ "sourceFingerprint": "65fe8b7948e2d571a1c730c0998997f93482c23abb1005fba08a9ae7402d59cc",
874
+ "fingerprintSchemaVersion": 2,
875
+ "fpScope": "project",
876
+ "evidenceClass": "BROWSER",
877
+ "class": "BROWSER",
878
+ "proxyOnly": false,
879
+ "argv": [
880
+ "npx",
881
+ "playwright",
882
+ "test",
883
+ "--config",
884
+ "playwright.notes.config.ts"
885
+ ],
886
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
887
+ "terminationReason": null,
888
+ "executionError": null,
889
+ "executionToken": "b0732d60-6ca8-4730-90eb-937ca2c516a7"
890
+ },
891
+ {
892
+ "checkId": "c-notes-e2e",
893
+ "command": "npx playwright test --config playwright.notes.config.ts",
894
+ "status": "FAIL",
895
+ "exitCode": 1,
896
+ "testCount": 6,
897
+ "startedAt": 1789939330047,
898
+ "finishedAt": 1789939403732,
899
+ "versions": {
900
+ "node": "v24.21.0"
901
+ },
902
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
903
+ "evaluatorHash": null,
904
+ "sourceFingerprint": "e5738ddd2f71a5e7f23ee96aa9a07b1b181c95794b61a1817cac0287d1caf9c1",
905
+ "fingerprintSchemaVersion": 2,
906
+ "fpScope": "project",
907
+ "evidenceClass": "BROWSER",
908
+ "class": "BROWSER",
909
+ "proxyOnly": false,
910
+ "argv": [
911
+ "npx",
912
+ "playwright",
913
+ "test",
914
+ "--config",
915
+ "playwright.notes.config.ts"
916
+ ],
917
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
918
+ "terminationReason": null,
919
+ "executionError": null,
920
+ "executionToken": "58a0d403-e188-4ecf-94c4-09e2d9051782"
921
+ },
922
+ {
923
+ "checkId": "c-notes-e2e",
924
+ "command": "npx playwright test --config playwright.notes.config.ts",
925
+ "status": "PASS",
926
+ "exitCode": 0,
927
+ "testCount": 8,
928
+ "startedAt": 1789939430119,
929
+ "finishedAt": 1789939494855,
930
+ "versions": {
931
+ "node": "v24.21.0"
932
+ },
933
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
934
+ "evaluatorHash": null,
935
+ "sourceFingerprint": "d35892d8eb496cd291827339fb5bbcf556515a3132464a0820497b638fe7172a",
936
+ "fingerprintSchemaVersion": 2,
937
+ "fpScope": "project",
938
+ "evidenceClass": "BROWSER",
939
+ "class": "BROWSER",
940
+ "proxyOnly": false,
941
+ "argv": [
942
+ "npx",
943
+ "playwright",
944
+ "test",
945
+ "--config",
946
+ "playwright.notes.config.ts"
947
+ ],
948
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
949
+ "terminationReason": null,
950
+ "executionError": null,
951
+ "executionToken": "45524806-8c8d-473c-a587-0e807f0190f8"
952
+ },
953
+ {
954
+ "checkId": "c-notes-server",
955
+ "command": "npx vitest run packages/server/test/notes.test.ts",
956
+ "status": "PASS",
957
+ "exitCode": 0,
958
+ "testCount": 13,
959
+ "startedAt": 1789939503261,
960
+ "finishedAt": 1789939504198,
961
+ "versions": {
962
+ "node": "v24.21.0"
963
+ },
964
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
965
+ "evaluatorHash": null,
966
+ "sourceFingerprint": "d35892d8eb496cd291827339fb5bbcf556515a3132464a0820497b638fe7172a",
967
+ "fingerprintSchemaVersion": 2,
968
+ "fpScope": "project",
969
+ "evidenceClass": "INTEGRATION",
970
+ "class": "INTEGRATION",
971
+ "proxyOnly": false,
972
+ "argv": [
973
+ "npx",
974
+ "vitest",
975
+ "run",
976
+ "packages/server/test/notes.test.ts"
977
+ ],
978
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
979
+ "terminationReason": null,
980
+ "executionError": null,
981
+ "executionToken": "800f04bd-6f06-459a-b01f-e8e2a6a6257b"
982
+ },
983
+ {
984
+ "checkId": "c-default-unit",
985
+ "command": "npx vitest run",
986
+ "status": "PASS",
987
+ "exitCode": 0,
988
+ "testCount": 98,
989
+ "startedAt": 1789939508480,
990
+ "finishedAt": 1789939509387,
991
+ "versions": {
992
+ "node": "v24.21.0"
993
+ },
994
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
995
+ "evaluatorHash": null,
996
+ "sourceFingerprint": "d35892d8eb496cd291827339fb5bbcf556515a3132464a0820497b638fe7172a",
997
+ "fingerprintSchemaVersion": 2,
998
+ "fpScope": "project",
999
+ "evidenceClass": "UNIT",
1000
+ "class": "UNIT",
1001
+ "proxyOnly": false,
1002
+ "argv": [
1003
+ "npx",
1004
+ "vitest",
1005
+ "run"
1006
+ ],
1007
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
1008
+ "terminationReason": null,
1009
+ "executionError": null,
1010
+ "executionToken": "507fa406-660a-40d5-b90d-2190b7d0f7dd"
1011
+ },
1012
+ {
1013
+ "checkId": "c-default-browser",
1014
+ "command": "npx playwright test",
1015
+ "status": "FAIL",
1016
+ "exitCode": 1,
1017
+ "testCount": 33,
1018
+ "startedAt": 1789939514788,
1019
+ "finishedAt": 1789939616841,
1020
+ "versions": {
1021
+ "node": "v24.21.0"
1022
+ },
1023
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
1024
+ "evaluatorHash": null,
1025
+ "sourceFingerprint": "d35892d8eb496cd291827339fb5bbcf556515a3132464a0820497b638fe7172a",
1026
+ "fingerprintSchemaVersion": 2,
1027
+ "fpScope": "project",
1028
+ "evidenceClass": "BROWSER",
1029
+ "class": "BROWSER",
1030
+ "proxyOnly": false,
1031
+ "argv": [
1032
+ "npx",
1033
+ "playwright",
1034
+ "test"
1035
+ ],
1036
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
1037
+ "terminationReason": null,
1038
+ "executionError": null,
1039
+ "executionToken": "ecd150f0-5f84-4663-89b1-2f57a557c7ec"
1040
+ },
1041
+ {
1042
+ "checkId": "c-default-browser",
1043
+ "command": "npx playwright test",
1044
+ "status": "PASS",
1045
+ "exitCode": 0,
1046
+ "testCount": 34,
1047
+ "startedAt": 1789939640239,
1048
+ "finishedAt": 1789939742036,
1049
+ "versions": {
1050
+ "node": "v24.21.0"
1051
+ },
1052
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
1053
+ "evaluatorHash": null,
1054
+ "sourceFingerprint": "25dae1b3154b8234e9214dbf4f22036483ceb2b1bb01e5a3c461298c76d4a21c",
1055
+ "fingerprintSchemaVersion": 2,
1056
+ "fpScope": "project",
1057
+ "evidenceClass": "BROWSER",
1058
+ "class": "BROWSER",
1059
+ "proxyOnly": false,
1060
+ "argv": [
1061
+ "npx",
1062
+ "playwright",
1063
+ "test"
1064
+ ],
1065
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
1066
+ "terminationReason": null,
1067
+ "executionError": null,
1068
+ "executionToken": "4c790612-fde0-4ce4-95c4-8476cf7a5b49"
1069
+ },
1070
+ {
1071
+ "checkId": "c-typecheck",
1072
+ "command": "npx tsc -p tsconfig.json --noEmit",
1073
+ "status": "PASS",
1074
+ "exitCode": 0,
1075
+ "testCount": null,
1076
+ "startedAt": 1789939777409,
1077
+ "finishedAt": 1789939778463,
1078
+ "versions": {
1079
+ "node": "v24.21.0"
1080
+ },
1081
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
1082
+ "evaluatorHash": null,
1083
+ "sourceFingerprint": "cc2be4bfd14c0210536dde650760876166c10a19331594667aeb6ace8cdca4db",
1084
+ "fingerprintSchemaVersion": 2,
1085
+ "fpScope": "project",
1086
+ "evidenceClass": "STATIC",
1087
+ "class": "STATIC",
1088
+ "proxyOnly": false,
1089
+ "argv": [
1090
+ "npx",
1091
+ "tsc",
1092
+ "-p",
1093
+ "tsconfig.json",
1094
+ "--noEmit"
1095
+ ],
1096
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
1097
+ "terminationReason": null,
1098
+ "executionError": null,
1099
+ "executionToken": "dc265457-9a2c-466a-ad41-e60ca0008033"
1100
+ },
1101
+ {
1102
+ "checkId": "c-build",
1103
+ "command": "npm run build -w @sb/web",
1104
+ "status": "PASS",
1105
+ "exitCode": 0,
1106
+ "testCount": null,
1107
+ "startedAt": 1789939782920,
1108
+ "finishedAt": 1789939784001,
1109
+ "versions": {
1110
+ "node": "v24.21.0"
1111
+ },
1112
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
1113
+ "evaluatorHash": null,
1114
+ "sourceFingerprint": "cc2be4bfd14c0210536dde650760876166c10a19331594667aeb6ace8cdca4db",
1115
+ "fingerprintSchemaVersion": 2,
1116
+ "fpScope": "project",
1117
+ "evidenceClass": "STATIC",
1118
+ "class": "STATIC",
1119
+ "proxyOnly": false,
1120
+ "argv": [
1121
+ "npm",
1122
+ "run",
1123
+ "build",
1124
+ "-w",
1125
+ "@sb/web"
1126
+ ],
1127
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
1128
+ "terminationReason": null,
1129
+ "executionError": null,
1130
+ "executionToken": "3a21242d-ae8c-4703-97bf-ef75b398618c"
1131
+ },
1132
+ {
1133
+ "checkId": "c-notes-server",
1134
+ "command": "npx vitest run packages/server/test/notes.test.ts",
1135
+ "status": "PASS",
1136
+ "exitCode": 0,
1137
+ "testCount": 13,
1138
+ "startedAt": 1789939792646,
1139
+ "finishedAt": 1789939793500,
1140
+ "versions": {
1141
+ "node": "v24.21.0"
1142
+ },
1143
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
1144
+ "evaluatorHash": null,
1145
+ "sourceFingerprint": "cc2be4bfd14c0210536dde650760876166c10a19331594667aeb6ace8cdca4db",
1146
+ "fingerprintSchemaVersion": 2,
1147
+ "fpScope": "project",
1148
+ "evidenceClass": "INTEGRATION",
1149
+ "class": "INTEGRATION",
1150
+ "proxyOnly": false,
1151
+ "argv": [
1152
+ "npx",
1153
+ "vitest",
1154
+ "run",
1155
+ "packages/server/test/notes.test.ts"
1156
+ ],
1157
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
1158
+ "terminationReason": null,
1159
+ "executionError": null,
1160
+ "executionToken": "cc6e6025-d7d9-4e72-8930-95f48da3c061"
1161
+ },
1162
+ {
1163
+ "checkId": "c-notes-e2e",
1164
+ "command": "npx playwright test --config playwright.notes.config.ts",
1165
+ "status": "PASS",
1166
+ "exitCode": 0,
1167
+ "testCount": 8,
1168
+ "startedAt": 1789939797088,
1169
+ "finishedAt": 1789939862169,
1170
+ "versions": {
1171
+ "node": "v24.21.0"
1172
+ },
1173
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
1174
+ "evaluatorHash": null,
1175
+ "sourceFingerprint": "cc2be4bfd14c0210536dde650760876166c10a19331594667aeb6ace8cdca4db",
1176
+ "fingerprintSchemaVersion": 2,
1177
+ "fpScope": "project",
1178
+ "evidenceClass": "BROWSER",
1179
+ "class": "BROWSER",
1180
+ "proxyOnly": false,
1181
+ "argv": [
1182
+ "npx",
1183
+ "playwright",
1184
+ "test",
1185
+ "--config",
1186
+ "playwright.notes.config.ts"
1187
+ ],
1188
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
1189
+ "terminationReason": null,
1190
+ "executionError": null,
1191
+ "executionToken": "e0b84655-3600-4e5e-8c2f-5437d21c0d3e"
1192
+ },
1193
+ {
1194
+ "checkId": "c-default-unit",
1195
+ "command": "npx vitest run",
1196
+ "status": "PASS",
1197
+ "exitCode": 0,
1198
+ "testCount": 98,
1199
+ "startedAt": 1789939866865,
1200
+ "finishedAt": 1789939867941,
1201
+ "versions": {
1202
+ "node": "v24.21.0"
1203
+ },
1204
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
1205
+ "evaluatorHash": null,
1206
+ "sourceFingerprint": "cc2be4bfd14c0210536dde650760876166c10a19331594667aeb6ace8cdca4db",
1207
+ "fingerprintSchemaVersion": 2,
1208
+ "fpScope": "project",
1209
+ "evidenceClass": "UNIT",
1210
+ "class": "UNIT",
1211
+ "proxyOnly": false,
1212
+ "argv": [
1213
+ "npx",
1214
+ "vitest",
1215
+ "run"
1216
+ ],
1217
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
1218
+ "terminationReason": null,
1219
+ "executionError": null,
1220
+ "executionToken": "7f902678-d227-4d05-b30b-4c022c39f886"
1221
+ },
1222
+ {
1223
+ "checkId": "c-default-browser",
1224
+ "command": "npx playwright test",
1225
+ "status": "PASS",
1226
+ "exitCode": 0,
1227
+ "testCount": 34,
1228
+ "startedAt": 1789939872492,
1229
+ "finishedAt": 1789939974274,
1230
+ "versions": {
1231
+ "node": "v24.21.0"
1232
+ },
1233
+ "contractHash": "5ff1bad8de4ff627df71a0c2bfef061e38b3eb262089cbca54e842d26d21c2b0",
1234
+ "evaluatorHash": null,
1235
+ "sourceFingerprint": "cc2be4bfd14c0210536dde650760876166c10a19331594667aeb6ace8cdca4db",
1236
+ "fingerprintSchemaVersion": 2,
1237
+ "fpScope": "project",
1238
+ "evidenceClass": "BROWSER",
1239
+ "class": "BROWSER",
1240
+ "proxyOnly": false,
1241
+ "argv": [
1242
+ "npx",
1243
+ "playwright",
1244
+ "test"
1245
+ ],
1246
+ "outputTail": "command completed; the recorded status and exit code are the evidence.",
1247
+ "terminationReason": null,
1248
+ "executionError": null,
1249
+ "executionToken": "7e337c05-0ca6-4217-a3a7-447114aca18c"
1250
+ }
1251
+ ],
1252
+ "faults": [],
1253
+ "execution": {
1254
+ "schemaVersion": 1,
1255
+ "since": 1789934372883,
1256
+ "historicalUsageUnknown": false,
1257
+ "verificationMs": 909896,
1258
+ "commandAttempts": 26,
1259
+ "inFlight": null
1260
+ },
1261
+ "directory": "/home/example/project",
1262
+ "checkCatalogue": {
1263
+ "c-notes-server": {
1264
+ "command": [
1265
+ "npx",
1266
+ "vitest",
1267
+ "run",
1268
+ "packages/server/test/notes.test.ts"
1269
+ ],
1270
+ "kind": "test",
1271
+ "integration": true,
1272
+ "negativeControl": true,
1273
+ "timeoutMs": 180000
1274
+ },
1275
+ "c-notes-e2e": {
1276
+ "command": [
1277
+ "npx",
1278
+ "playwright",
1279
+ "test",
1280
+ "--config",
1281
+ "playwright.notes.config.ts"
1282
+ ],
1283
+ "kind": "test",
1284
+ "integration": true,
1285
+ "negativeControl": true,
1286
+ "visual": true,
1287
+ "timeoutMs": 420000
1288
+ },
1289
+ "c-default-unit": {
1290
+ "command": [
1291
+ "npx",
1292
+ "vitest",
1293
+ "run"
1294
+ ],
1295
+ "kind": "test",
1296
+ "timeoutMs": 180000
1297
+ },
1298
+ "c-default-browser": {
1299
+ "command": [
1300
+ "npx",
1301
+ "playwright",
1302
+ "test"
1303
+ ],
1304
+ "kind": "test",
1305
+ "timeoutMs": 600000
1306
+ },
1307
+ "c-typecheck": {
1308
+ "command": [
1309
+ "npx",
1310
+ "tsc",
1311
+ "-p",
1312
+ "tsconfig.json",
1313
+ "--noEmit"
1314
+ ],
1315
+ "kind": "cmd",
1316
+ "gate": true,
1317
+ "timeoutMs": 180000
1318
+ },
1319
+ "c-build": {
1320
+ "command": [
1321
+ "npm",
1322
+ "run",
1323
+ "build",
1324
+ "-w",
1325
+ "@sb/web"
1326
+ ],
1327
+ "kind": "cmd",
1328
+ "gate": true,
1329
+ "timeoutMs": 240000
1330
+ }
1331
+ },
1332
+ "createdAt": 1789934372883,
1333
+ "compactionSessionID": "ses_f3f9f0822ffeWuypAPjXEvlUzm",
1334
+ "agentProgressHistory": [
1335
+ {
1336
+ "schemaVersion": 1,
1337
+ "revision": 1,
1338
+ "at": 1789934384565,
1339
+ "sessionID": "ses_f3f9f0822ffeWuypAPjXEvlUzm",
1340
+ "sourceFingerprint": "43b42152981c219f21bad5db97c6040b2d6fbbdf1806eb5c70329885060d2c65",
1341
+ "fields": {
1342
+ "currentSlice": "Implement and verify the requested feature.",
1343
+ "nextAction": "Continue the declared checks one at a time and record each with longrun_verify.",
1344
+ "decisions": [
1345
+ "Wall = terrain wall|pillar from buildMap (layout seed-independent); reject out-of-board + walls, no clamp.",
1346
+ "API under /api/notes/v1/{list,create,update,delete}; server ignores any client id/revision.",
1347
+ "Restart-persistence proof lives in the INTEGRATION vitest (real HTTP, fixed loopback port, SAME file DB), reload proof in the BROWSER e2e.",
1348
+ "Planning is a TacticalGame input mode gated by a flag so it cannot move/shoot/select/endTurn; markers are scene objects rebuilt each sync (no accumulation)."
1349
+ ],
1350
+ "failedHypotheses": [
1351
+ "<example hypothesis redacted>"
1352
+ ],
1353
+ "memoryNodes": [
1354
+ "packages/server/src/index.ts",
1355
+ "packages/server/src/leaderboard.ts",
1356
+ "packages/server/src/validate.ts",
1357
+ "packages/sim/src/map.ts",
1358
+ "packages/sim/src/missions.ts",
1359
+ "packages/web/src/game/TacticalGame.ts",
1360
+ "packages/web/src/scene/World.ts",
1361
+ "playwright.config.ts",
1362
+ "vitest.config.ts",
1363
+ "tsconfig.json"
1364
+ ],
1365
+ "artifacts": []
1366
+ }
1367
+ },
1368
+ {
1369
+ "schemaVersion": 1,
1370
+ "revision": 2,
1371
+ "at": 1789935030856,
1372
+ "sessionID": "ses_f3f9f0822ffeWuypAPjXEvlUzm",
1373
+ "sourceFingerprint": "3ce79a0e64f47e3413bb578c61e8aba944a6b450134177ba100fb91ae6bd57f4",
1374
+ "fields": {
1375
+ "currentSlice": "Implement and verify the requested feature.",
1376
+ "nextAction": "Continue the declared checks one at a time and record each with longrun_verify.",
1377
+ "decisions": [
1378
+ "Keep one input owner: TacticalGame gates tactical actions while planning.active; left-click selects a tile (vis2 only), right/shift-drag still pans (presentation only).",
1379
+ "PlanningController owns notes/draft/status, re-renders markers from notes\u2229vis==2 on game.onStateChange, and is disposed on mission unmount (no stale listeners/markers).",
1380
+ "Restart-persistence proved in the INTEGRATION test; reload + pointer/keyboard/fog/invariance + screenshots proved in the BROWSER spec."
1381
+ ],
1382
+ "failedHypotheses": [
1383
+ "<example hypothesis redacted>"
1384
+ ],
1385
+ "memoryNodes": [
1386
+ "packages/server/src/notes.ts",
1387
+ "packages/server/src/leaderboard.ts",
1388
+ "packages/web/src/game/TacticalGame.ts",
1389
+ "packages/web/src/scene/World.ts",
1390
+ "packages/web/src/GameCanvas.tsx",
1391
+ "packages/web/src/HUD.tsx"
1392
+ ],
1393
+ "artifacts": [
1394
+ "packages/server/src/notes.ts",
1395
+ "packages/server/src/index.ts",
1396
+ "packages/server/test/notes.test.ts"
1397
+ ]
1398
+ }
1399
+ },
1400
+ {
1401
+ "schemaVersion": 1,
1402
+ "revision": 3,
1403
+ "at": 1789935752230,
1404
+ "sessionID": "ses_f3f9f0822ffeWuypAPjXEvlUzm",
1405
+ "sourceFingerprint": "dc33b0f2fa08fe45cefa09c4588065938b0f53e89db28e79e8c99af6a61000e8",
1406
+ "fields": {
1407
+ "currentSlice": "Implement and verify the requested feature.",
1408
+ "nextAction": "Continue the declared checks one at a time and record each with longrun_verify.",
1409
+ "decisions": [
1410
+ "Process-boundary restart proven with two owned child PIDs, fixed loopback port, port-released proof, exact note fields across boundary.",
1411
+ "Readiness belongs to the owned child's own banner, not a foreign /health.",
1412
+ "Annotation bodies capped (complete 400); submit's 5MB readBody unchanged."
1413
+ ],
1414
+ "failedHypotheses": [
1415
+ "<example hypothesis redacted>"
1416
+ ],
1417
+ "memoryNodes": [
1418
+ "packages/server/AGENTS.md"
1419
+ ],
1420
+ "artifacts": [
1421
+ "packages/server/src/index.ts",
1422
+ "packages/server/test/notes.test.ts"
1423
+ ]
1424
+ }
1425
+ },
1426
+ {
1427
+ "schemaVersion": 1,
1428
+ "revision": 4,
1429
+ "at": 1789936705246,
1430
+ "sessionID": "ses_f3f9f0822ffeWuypAPjXEvlUzm",
1431
+ "sourceFingerprint": "dc33b0f2fa08fe45cefa09c4588065938b0f53e89db28e79e8c99af6a61000e8",
1432
+ "fields": {
1433
+ "currentSlice": "Implement and verify the requested feature.",
1434
+ "nextAction": "Continue the declared checks one at a time and record each with longrun_verify.",
1435
+ "decisions": [
1436
+ "Use existing six declared checks and exact mappings; no new IDs.",
1437
+ "Server owns parameterized file SQLite; 400 invalid, 404 unknown, 409 stale, 500 storage.",
1438
+ "Planning-mode input must not move/shoot/select units or mutate sim/PRNG/save/replay.",
1439
+ "Only currently visible tiles vis==2 are interactive/rendered; notes UI cannot reveal hidden enemies.",
1440
+ "Browser uses isolated loopback web 5499/server 9099, strict ports, no reuse, isolated fileDB, cleanup.",
1441
+ "Preserve 27 test files and default 34 browser tests in 12 files; no weakening."
1442
+ ],
1443
+ "failedHypotheses": [
1444
+ "<example hypothesis redacted>"
1445
+ ],
1446
+ "memoryNodes": [
1447
+ "AGENTS.md",
1448
+ "packages/server/AGENTS.md",
1449
+ "packages/sim/AGENTS.md",
1450
+ "packages/sim/src/AGENTS.md",
1451
+ "packages/web/AGENTS.md",
1452
+ "packages/web/src/AGENTS.md"
1453
+ ],
1454
+ "artifacts": [
1455
+ "packages/server/src/index.ts",
1456
+ "packages/server/test/notes.test.ts"
1457
+ ]
1458
+ }
1459
+ }
1460
+ ],
1461
+ "agentProgress": {
1462
+ "schemaVersion": 1,
1463
+ "revision": 4,
1464
+ "at": 1789936705246,
1465
+ "sessionID": "ses_f3f9f0822ffeWuypAPjXEvlUzm",
1466
+ "sourceFingerprint": "dc33b0f2fa08fe45cefa09c4588065938b0f53e89db28e79e8c99af6a61000e8",
1467
+ "fields": {
1468
+ "currentSlice": "Implement and verify the requested feature.",
1469
+ "nextAction": "Continue the declared checks one at a time and record each with longrun_verify.",
1470
+ "decisions": [
1471
+ "Use existing six declared checks and exact mappings; no new IDs.",
1472
+ "Server owns parameterized file SQLite; 400 invalid, 404 unknown, 409 stale, 500 storage.",
1473
+ "Planning-mode input must not move/shoot/select units or mutate sim/PRNG/save/replay.",
1474
+ "Only currently visible tiles vis==2 are interactive/rendered; notes UI cannot reveal hidden enemies.",
1475
+ "Browser uses isolated loopback web 5499/server 9099, strict ports, no reuse, isolated fileDB, cleanup.",
1476
+ "Preserve 27 test files and default 34 browser tests in 12 files; no weakening."
1477
+ ],
1478
+ "failedHypotheses": [
1479
+ "<example hypothesis redacted>"
1480
+ ],
1481
+ "memoryNodes": [
1482
+ "AGENTS.md",
1483
+ "packages/server/AGENTS.md",
1484
+ "packages/sim/AGENTS.md",
1485
+ "packages/sim/src/AGENTS.md",
1486
+ "packages/web/AGENTS.md",
1487
+ "packages/web/src/AGENTS.md"
1488
+ ],
1489
+ "artifacts": [
1490
+ "packages/server/src/index.ts",
1491
+ "packages/server/test/notes.test.ts"
1492
+ ]
1493
+ }
1494
+ },
1495
+ "controlGeneration": 9
1496
+ }