llm-mock-server 1.0.4 → 1.0.6
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/.desloppify/query.json +1162 -62
- package/.desloppify/review_packet_blind.json +18 -18
- package/.desloppify/review_packets/holistic_packet_20260315_185401.json +1407 -0
- package/.desloppify/review_packets/holistic_packet_20260315_185613.json +1407 -0
- package/.desloppify/state-typescript.json +2530 -645
- package/.desloppify/state-typescript.json.bak +2494 -582
- package/.desloppify/subagents/runs/20260315_185401/logs/batch-1.log +384 -0
- package/.desloppify/subagents/runs/20260315_185401/logs/batch-10.log +484 -0
- package/.desloppify/subagents/runs/20260315_185401/logs/batch-2.log +408 -0
- package/.desloppify/subagents/runs/20260315_185401/logs/batch-3.log +416 -0
- package/.desloppify/subagents/runs/20260315_185401/logs/batch-4.log +360 -0
- package/.desloppify/subagents/runs/20260315_185401/logs/batch-5.log +360 -0
- package/.desloppify/subagents/runs/20260315_185401/logs/batch-6.log +364 -0
- package/.desloppify/subagents/runs/20260315_185401/logs/batch-7.log +428 -0
- package/.desloppify/subagents/runs/20260315_185401/logs/batch-8.log +388 -0
- package/.desloppify/subagents/runs/20260315_185401/logs/batch-9.log +500 -0
- package/.desloppify/subagents/runs/20260315_185401/prompts/batch-1.md +83 -0
- package/.desloppify/subagents/runs/20260315_185401/prompts/batch-10.md +108 -0
- package/.desloppify/subagents/runs/20260315_185401/prompts/batch-2.md +89 -0
- package/.desloppify/subagents/runs/20260315_185401/prompts/batch-3.md +91 -0
- package/.desloppify/subagents/runs/20260315_185401/prompts/batch-4.md +77 -0
- package/.desloppify/subagents/runs/20260315_185401/prompts/batch-5.md +77 -0
- package/.desloppify/subagents/runs/20260315_185401/prompts/batch-6.md +78 -0
- package/.desloppify/subagents/runs/20260315_185401/prompts/batch-7.md +94 -0
- package/.desloppify/subagents/runs/20260315_185401/prompts/batch-8.md +84 -0
- package/.desloppify/subagents/runs/20260315_185401/prompts/batch-9.md +112 -0
- package/.desloppify/subagents/runs/20260315_185401/results/batch-1.raw.txt +0 -0
- package/.desloppify/subagents/runs/20260315_185401/results/batch-10.raw.txt +0 -0
- package/.desloppify/subagents/runs/20260315_185401/results/batch-2.raw.txt +0 -0
- package/.desloppify/subagents/runs/20260315_185401/results/batch-3.raw.txt +0 -0
- package/.desloppify/subagents/runs/20260315_185401/results/batch-4.raw.txt +0 -0
- package/.desloppify/subagents/runs/20260315_185401/results/batch-5.raw.txt +0 -0
- package/.desloppify/subagents/runs/20260315_185401/results/batch-6.raw.txt +0 -0
- package/.desloppify/subagents/runs/20260315_185401/results/batch-7.raw.txt +0 -0
- package/.desloppify/subagents/runs/20260315_185401/results/batch-8.raw.txt +0 -0
- package/.desloppify/subagents/runs/20260315_185401/results/batch-9.raw.txt +0 -0
- package/.desloppify/subagents/runs/20260315_185401/run.log +36 -0
- package/.desloppify/subagents/runs/20260315_185401/run_summary.json +156 -0
- package/.desloppify/subagents/runs/20260315_185613/holistic_findings_merged.json +741 -0
- package/.desloppify/subagents/runs/20260315_185613/logs/batch-1.log +579 -0
- package/.desloppify/subagents/runs/20260315_185613/logs/batch-10.log +1537 -0
- package/.desloppify/subagents/runs/20260315_185613/logs/batch-2.log +829 -0
- package/.desloppify/subagents/runs/20260315_185613/logs/batch-3.log +927 -0
- package/.desloppify/subagents/runs/20260315_185613/logs/batch-4.log +429 -0
- package/.desloppify/subagents/runs/20260315_185613/logs/batch-5.log +276 -0
- package/.desloppify/subagents/runs/20260315_185613/logs/batch-6.log +450 -0
- package/.desloppify/subagents/runs/20260315_185613/logs/batch-7.log +730 -0
- package/.desloppify/subagents/runs/20260315_185613/logs/batch-8.log +698 -0
- package/.desloppify/subagents/runs/20260315_185613/logs/batch-9.log +938 -0
- package/.desloppify/subagents/runs/20260315_185613/prompts/batch-1.md +83 -0
- package/.desloppify/subagents/runs/20260315_185613/prompts/batch-10.md +108 -0
- package/.desloppify/subagents/runs/20260315_185613/prompts/batch-2.md +89 -0
- package/.desloppify/subagents/runs/20260315_185613/prompts/batch-3.md +91 -0
- package/.desloppify/subagents/runs/20260315_185613/prompts/batch-4.md +77 -0
- package/.desloppify/subagents/runs/20260315_185613/prompts/batch-5.md +77 -0
- package/.desloppify/subagents/runs/20260315_185613/prompts/batch-6.md +78 -0
- package/.desloppify/subagents/runs/20260315_185613/prompts/batch-7.md +94 -0
- package/.desloppify/subagents/runs/20260315_185613/prompts/batch-8.md +84 -0
- package/.desloppify/subagents/runs/20260315_185613/prompts/batch-9.md +112 -0
- package/.desloppify/subagents/runs/20260315_185613/results/batch-1.raw.txt +78 -0
- package/.desloppify/subagents/runs/20260315_185613/results/batch-10.raw.txt +242 -0
- package/.desloppify/subagents/runs/20260315_185613/results/batch-2.raw.txt +102 -0
- package/.desloppify/subagents/runs/20260315_185613/results/batch-3.raw.txt +94 -0
- package/.desloppify/subagents/runs/20260315_185613/results/batch-4.raw.txt +86 -0
- package/.desloppify/subagents/runs/20260315_185613/results/batch-5.raw.txt +1 -0
- package/.desloppify/subagents/runs/20260315_185613/results/batch-6.raw.txt +87 -0
- package/.desloppify/subagents/runs/20260315_185613/results/batch-7.raw.txt +1 -0
- package/.desloppify/subagents/runs/20260315_185613/results/batch-8.raw.txt +107 -0
- package/.desloppify/subagents/runs/20260315_185613/results/batch-9.raw.txt +67 -0
- package/.desloppify/subagents/runs/20260315_185613/run.log +96 -0
- package/.desloppify/subagents/runs/20260315_185613/run_summary.json +156 -0
- package/.github/workflows/docs.yml +46 -0
- package/.github/workflows/test.yml +3 -0
- package/README.md +8 -4
- package/docs/ARCHITECTURE.md +11 -11
- package/package.json +18 -11
- package/scorecard.png +0 -0
- package/src/{cli.ts → cli/cli.ts} +6 -11
- package/src/{cli-validators.ts → cli/validators.ts} +10 -9
- package/src/formats/anthropic/index.ts +2 -2
- package/src/formats/anthropic/parse.ts +5 -2
- package/src/formats/anthropic/serialize.ts +3 -3
- package/src/formats/openai/{index.ts → chat-completions/index.ts} +3 -3
- package/src/formats/openai/{parse.ts → chat-completions/parse.ts} +5 -2
- package/src/formats/openai/{serialize.ts → chat-completions/serialize.ts} +3 -3
- package/src/formats/{responses → openai/responses}/index.ts +2 -2
- package/src/formats/{responses → openai/responses}/parse.ts +5 -2
- package/src/formats/{responses → openai/responses}/serialize.ts +3 -3
- package/src/formats/request-helpers.ts +6 -1
- package/src/formats/serialize-helpers.ts +9 -4
- package/src/formats/types.ts +2 -6
- package/src/history.ts +6 -2
- package/src/loader.ts +2 -1
- package/src/mock-server.ts +55 -106
- package/src/route-handler.ts +7 -11
- package/src/rule-builder.ts +73 -0
- package/src/rule-engine.ts +3 -10
- package/src/sse-writer.ts +1 -1
- package/src/types/reply.ts +51 -8
- package/src/types/request.ts +21 -6
- package/src/types/rule.ts +65 -7
- package/test/cli-validators.test.ts +13 -5
- package/test/formats/openai.test.ts +40 -28
- package/test/formats/responses.test.ts +2 -2
- package/test/history.test.ts +1 -1
- package/test/loader.test.ts +3 -3
- package/test/logger.test.ts +2 -2
- package/test/mock-server.test.ts +1 -1
- package/test/rule-engine.test.ts +1 -1
- package/tsconfig.json +2 -4
- package/typedoc.json +9 -0
- /package/src/formats/openai/{schema.ts → chat-completions/schema.ts} +0 -0
- /package/src/formats/{responses → openai/responses}/schema.ts +0 -0
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
3
|
"created": "2026-03-14T23:49:53+00:00",
|
|
4
|
-
"last_scan": "2026-03-
|
|
5
|
-
"scan_count":
|
|
6
|
-
"overall_score":
|
|
7
|
-
"objective_score":
|
|
8
|
-
"strict_score":
|
|
9
|
-
"verified_strict_score": 85.
|
|
4
|
+
"last_scan": "2026-03-15T19:12:32+00:00",
|
|
5
|
+
"scan_count": 13,
|
|
6
|
+
"overall_score": 84.9,
|
|
7
|
+
"objective_score": 100.0,
|
|
8
|
+
"strict_score": 79.1,
|
|
9
|
+
"verified_strict_score": 85.5,
|
|
10
10
|
"stats": {
|
|
11
|
-
"total":
|
|
11
|
+
"total": 137,
|
|
12
12
|
"open": 1,
|
|
13
|
-
"fixed":
|
|
13
|
+
"fixed": 2,
|
|
14
14
|
"auto_resolved": 83,
|
|
15
|
-
"wontfix":
|
|
15
|
+
"wontfix": 51,
|
|
16
16
|
"false_positive": 0,
|
|
17
17
|
"by_tier": {
|
|
18
18
|
"2": {
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
},
|
|
25
25
|
"3": {
|
|
26
26
|
"open": 1,
|
|
27
|
-
"fixed":
|
|
27
|
+
"fixed": 2,
|
|
28
28
|
"auto_resolved": 50,
|
|
29
|
-
"wontfix":
|
|
29
|
+
"wontfix": 51,
|
|
30
30
|
"false_positive": 0
|
|
31
31
|
},
|
|
32
32
|
"4": {
|
|
@@ -255,18 +255,18 @@
|
|
|
255
255
|
"status": "wontfix",
|
|
256
256
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
257
257
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
258
|
-
"last_seen": "2026-03-
|
|
259
|
-
"resolved_at": "2026-03-
|
|
260
|
-
"reopen_count":
|
|
258
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
259
|
+
"resolved_at": "2026-03-15T19:16:28+00:00",
|
|
260
|
+
"reopen_count": 3,
|
|
261
261
|
"lang": "typescript",
|
|
262
262
|
"zone": "test",
|
|
263
263
|
"suppressed": false,
|
|
264
264
|
"suppressed_at": null,
|
|
265
265
|
"suppression_pattern": null,
|
|
266
|
-
"wontfix_scan_count":
|
|
266
|
+
"wontfix_scan_count": 13,
|
|
267
267
|
"wontfix_snapshot": {
|
|
268
|
-
"captured_at": "2026-03-
|
|
269
|
-
"scan_count":
|
|
268
|
+
"captured_at": "2026-03-15T19:16:28+00:00",
|
|
269
|
+
"scan_count": 13,
|
|
270
270
|
"tier": 3,
|
|
271
271
|
"confidence": "low",
|
|
272
272
|
"detail": {
|
|
@@ -275,8 +275,8 @@
|
|
|
275
275
|
},
|
|
276
276
|
"resolution_attestation": {
|
|
277
277
|
"kind": "manual",
|
|
278
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
279
|
-
"attested_at": "2026-03-
|
|
278
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
279
|
+
"attested_at": "2026-03-15T19:16:28+00:00",
|
|
280
280
|
"scan_verified": false
|
|
281
281
|
}
|
|
282
282
|
},
|
|
@@ -294,18 +294,18 @@
|
|
|
294
294
|
"status": "wontfix",
|
|
295
295
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
296
296
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
297
|
-
"last_seen": "2026-03-
|
|
298
|
-
"resolved_at": "2026-03-
|
|
299
|
-
"reopen_count":
|
|
297
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
298
|
+
"resolved_at": "2026-03-15T19:16:22+00:00",
|
|
299
|
+
"reopen_count": 3,
|
|
300
300
|
"lang": "typescript",
|
|
301
301
|
"zone": "production",
|
|
302
302
|
"suppressed": false,
|
|
303
303
|
"suppressed_at": null,
|
|
304
304
|
"suppression_pattern": null,
|
|
305
|
-
"wontfix_scan_count":
|
|
305
|
+
"wontfix_scan_count": 13,
|
|
306
306
|
"wontfix_snapshot": {
|
|
307
|
-
"captured_at": "2026-03-
|
|
308
|
-
"scan_count":
|
|
307
|
+
"captured_at": "2026-03-15T19:16:22+00:00",
|
|
308
|
+
"scan_count": 13,
|
|
309
309
|
"tier": 3,
|
|
310
310
|
"confidence": "medium",
|
|
311
311
|
"detail": {
|
|
@@ -315,8 +315,8 @@
|
|
|
315
315
|
},
|
|
316
316
|
"resolution_attestation": {
|
|
317
317
|
"kind": "manual",
|
|
318
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
319
|
-
"attested_at": "2026-03-
|
|
318
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
319
|
+
"attested_at": "2026-03-15T19:16:22+00:00",
|
|
320
320
|
"scan_verified": false
|
|
321
321
|
}
|
|
322
322
|
},
|
|
@@ -366,18 +366,18 @@
|
|
|
366
366
|
"status": "wontfix",
|
|
367
367
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
368
368
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
369
|
-
"last_seen": "2026-03-
|
|
370
|
-
"resolved_at": "2026-03-
|
|
371
|
-
"reopen_count":
|
|
369
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
370
|
+
"resolved_at": "2026-03-15T19:16:23+00:00",
|
|
371
|
+
"reopen_count": 3,
|
|
372
372
|
"lang": "typescript",
|
|
373
373
|
"zone": "production",
|
|
374
374
|
"suppressed": false,
|
|
375
375
|
"suppressed_at": null,
|
|
376
376
|
"suppression_pattern": null,
|
|
377
|
-
"wontfix_scan_count":
|
|
377
|
+
"wontfix_scan_count": 13,
|
|
378
378
|
"wontfix_snapshot": {
|
|
379
|
-
"captured_at": "2026-03-
|
|
380
|
-
"scan_count":
|
|
379
|
+
"captured_at": "2026-03-15T19:16:23+00:00",
|
|
380
|
+
"scan_count": 13,
|
|
381
381
|
"tier": 3,
|
|
382
382
|
"confidence": "medium",
|
|
383
383
|
"detail": {
|
|
@@ -386,8 +386,8 @@
|
|
|
386
386
|
},
|
|
387
387
|
"resolution_attestation": {
|
|
388
388
|
"kind": "manual",
|
|
389
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
390
|
-
"attested_at": "2026-03-
|
|
389
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
390
|
+
"attested_at": "2026-03-15T19:16:23+00:00",
|
|
391
391
|
"scan_verified": false
|
|
392
392
|
}
|
|
393
393
|
},
|
|
@@ -404,18 +404,18 @@
|
|
|
404
404
|
"status": "wontfix",
|
|
405
405
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
406
406
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
407
|
-
"last_seen": "2026-03-
|
|
408
|
-
"resolved_at": "2026-03-
|
|
409
|
-
"reopen_count":
|
|
407
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
408
|
+
"resolved_at": "2026-03-15T19:16:28+00:00",
|
|
409
|
+
"reopen_count": 3,
|
|
410
410
|
"lang": "typescript",
|
|
411
411
|
"zone": "config",
|
|
412
412
|
"suppressed": false,
|
|
413
413
|
"suppressed_at": null,
|
|
414
414
|
"suppression_pattern": null,
|
|
415
|
-
"wontfix_scan_count":
|
|
415
|
+
"wontfix_scan_count": 13,
|
|
416
416
|
"wontfix_snapshot": {
|
|
417
|
-
"captured_at": "2026-03-
|
|
418
|
-
"scan_count":
|
|
417
|
+
"captured_at": "2026-03-15T19:16:28+00:00",
|
|
418
|
+
"scan_count": 13,
|
|
419
419
|
"tier": 3,
|
|
420
420
|
"confidence": "medium",
|
|
421
421
|
"detail": {
|
|
@@ -424,8 +424,8 @@
|
|
|
424
424
|
},
|
|
425
425
|
"resolution_attestation": {
|
|
426
426
|
"kind": "manual",
|
|
427
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
428
|
-
"attested_at": "2026-03-
|
|
427
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
428
|
+
"attested_at": "2026-03-15T19:16:28+00:00",
|
|
429
429
|
"scan_verified": false
|
|
430
430
|
}
|
|
431
431
|
},
|
|
@@ -515,18 +515,18 @@
|
|
|
515
515
|
"status": "wontfix",
|
|
516
516
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
517
517
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
518
|
-
"last_seen": "2026-03-
|
|
519
|
-
"resolved_at": "2026-03-
|
|
520
|
-
"reopen_count":
|
|
518
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
519
|
+
"resolved_at": "2026-03-15T19:16:23+00:00",
|
|
520
|
+
"reopen_count": 3,
|
|
521
521
|
"lang": "typescript",
|
|
522
522
|
"zone": "production",
|
|
523
523
|
"suppressed": false,
|
|
524
524
|
"suppressed_at": null,
|
|
525
525
|
"suppression_pattern": null,
|
|
526
|
-
"wontfix_scan_count":
|
|
526
|
+
"wontfix_scan_count": 13,
|
|
527
527
|
"wontfix_snapshot": {
|
|
528
|
-
"captured_at": "2026-03-
|
|
529
|
-
"scan_count":
|
|
528
|
+
"captured_at": "2026-03-15T19:16:23+00:00",
|
|
529
|
+
"scan_count": 13,
|
|
530
530
|
"tier": 3,
|
|
531
531
|
"confidence": "medium",
|
|
532
532
|
"detail": {
|
|
@@ -538,8 +538,8 @@
|
|
|
538
538
|
},
|
|
539
539
|
"resolution_attestation": {
|
|
540
540
|
"kind": "manual",
|
|
541
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
542
|
-
"attested_at": "2026-03-
|
|
541
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
542
|
+
"attested_at": "2026-03-15T19:16:23+00:00",
|
|
543
543
|
"scan_verified": false
|
|
544
544
|
}
|
|
545
545
|
},
|
|
@@ -559,18 +559,18 @@
|
|
|
559
559
|
"status": "wontfix",
|
|
560
560
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
561
561
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
562
|
-
"last_seen": "2026-03-
|
|
563
|
-
"resolved_at": "2026-03-
|
|
564
|
-
"reopen_count":
|
|
562
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
563
|
+
"resolved_at": "2026-03-15T19:16:25+00:00",
|
|
564
|
+
"reopen_count": 3,
|
|
565
565
|
"lang": "typescript",
|
|
566
566
|
"zone": "production",
|
|
567
567
|
"suppressed": false,
|
|
568
568
|
"suppressed_at": null,
|
|
569
569
|
"suppression_pattern": null,
|
|
570
|
-
"wontfix_scan_count":
|
|
570
|
+
"wontfix_scan_count": 13,
|
|
571
571
|
"wontfix_snapshot": {
|
|
572
|
-
"captured_at": "2026-03-
|
|
573
|
-
"scan_count":
|
|
572
|
+
"captured_at": "2026-03-15T19:16:25+00:00",
|
|
573
|
+
"scan_count": 13,
|
|
574
574
|
"tier": 3,
|
|
575
575
|
"confidence": "medium",
|
|
576
576
|
"detail": {
|
|
@@ -582,8 +582,8 @@
|
|
|
582
582
|
},
|
|
583
583
|
"resolution_attestation": {
|
|
584
584
|
"kind": "manual",
|
|
585
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
586
|
-
"attested_at": "2026-03-
|
|
585
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
586
|
+
"attested_at": "2026-03-15T19:16:25+00:00",
|
|
587
587
|
"scan_verified": false
|
|
588
588
|
}
|
|
589
589
|
},
|
|
@@ -634,18 +634,18 @@
|
|
|
634
634
|
"status": "wontfix",
|
|
635
635
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
636
636
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
637
|
-
"last_seen": "2026-03-
|
|
638
|
-
"resolved_at": "2026-03-
|
|
639
|
-
"reopen_count":
|
|
637
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
638
|
+
"resolved_at": "2026-03-15T19:16:24+00:00",
|
|
639
|
+
"reopen_count": 3,
|
|
640
640
|
"lang": "typescript",
|
|
641
641
|
"zone": "production",
|
|
642
642
|
"suppressed": false,
|
|
643
643
|
"suppressed_at": null,
|
|
644
644
|
"suppression_pattern": null,
|
|
645
|
-
"wontfix_scan_count":
|
|
645
|
+
"wontfix_scan_count": 13,
|
|
646
646
|
"wontfix_snapshot": {
|
|
647
|
-
"captured_at": "2026-03-
|
|
648
|
-
"scan_count":
|
|
647
|
+
"captured_at": "2026-03-15T19:16:24+00:00",
|
|
648
|
+
"scan_count": 13,
|
|
649
649
|
"tier": 3,
|
|
650
650
|
"confidence": "medium",
|
|
651
651
|
"detail": {
|
|
@@ -657,8 +657,8 @@
|
|
|
657
657
|
},
|
|
658
658
|
"resolution_attestation": {
|
|
659
659
|
"kind": "manual",
|
|
660
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
661
|
-
"attested_at": "2026-03-
|
|
660
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
661
|
+
"attested_at": "2026-03-15T19:16:24+00:00",
|
|
662
662
|
"scan_verified": false
|
|
663
663
|
}
|
|
664
664
|
},
|
|
@@ -678,18 +678,18 @@
|
|
|
678
678
|
"status": "wontfix",
|
|
679
679
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
680
680
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
681
|
-
"last_seen": "2026-03-
|
|
682
|
-
"resolved_at": "2026-03-
|
|
683
|
-
"reopen_count":
|
|
681
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
682
|
+
"resolved_at": "2026-03-15T19:16:27+00:00",
|
|
683
|
+
"reopen_count": 3,
|
|
684
684
|
"lang": "typescript",
|
|
685
685
|
"zone": "production",
|
|
686
686
|
"suppressed": false,
|
|
687
687
|
"suppressed_at": null,
|
|
688
688
|
"suppression_pattern": null,
|
|
689
|
-
"wontfix_scan_count":
|
|
689
|
+
"wontfix_scan_count": 13,
|
|
690
690
|
"wontfix_snapshot": {
|
|
691
|
-
"captured_at": "2026-03-
|
|
692
|
-
"scan_count":
|
|
691
|
+
"captured_at": "2026-03-15T19:16:27+00:00",
|
|
692
|
+
"scan_count": 13,
|
|
693
693
|
"tier": 3,
|
|
694
694
|
"confidence": "medium",
|
|
695
695
|
"detail": {
|
|
@@ -701,8 +701,8 @@
|
|
|
701
701
|
},
|
|
702
702
|
"resolution_attestation": {
|
|
703
703
|
"kind": "manual",
|
|
704
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
705
|
-
"attested_at": "2026-03-
|
|
704
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
705
|
+
"attested_at": "2026-03-15T19:16:27+00:00",
|
|
706
706
|
"scan_verified": false
|
|
707
707
|
}
|
|
708
708
|
},
|
|
@@ -753,18 +753,18 @@
|
|
|
753
753
|
"status": "wontfix",
|
|
754
754
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
755
755
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
756
|
-
"last_seen": "2026-03-
|
|
757
|
-
"resolved_at": "2026-03-
|
|
758
|
-
"reopen_count":
|
|
756
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
757
|
+
"resolved_at": "2026-03-15T19:16:27+00:00",
|
|
758
|
+
"reopen_count": 3,
|
|
759
759
|
"lang": "typescript",
|
|
760
760
|
"zone": "production",
|
|
761
761
|
"suppressed": false,
|
|
762
762
|
"suppressed_at": null,
|
|
763
763
|
"suppression_pattern": null,
|
|
764
|
-
"wontfix_scan_count":
|
|
764
|
+
"wontfix_scan_count": 13,
|
|
765
765
|
"wontfix_snapshot": {
|
|
766
|
-
"captured_at": "2026-03-
|
|
767
|
-
"scan_count":
|
|
766
|
+
"captured_at": "2026-03-15T19:16:27+00:00",
|
|
767
|
+
"scan_count": 13,
|
|
768
768
|
"tier": 3,
|
|
769
769
|
"confidence": "medium",
|
|
770
770
|
"detail": {
|
|
@@ -776,8 +776,8 @@
|
|
|
776
776
|
},
|
|
777
777
|
"resolution_attestation": {
|
|
778
778
|
"kind": "manual",
|
|
779
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
780
|
-
"attested_at": "2026-03-
|
|
779
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
780
|
+
"attested_at": "2026-03-15T19:16:27+00:00",
|
|
781
781
|
"scan_verified": false
|
|
782
782
|
}
|
|
783
783
|
},
|
|
@@ -797,18 +797,18 @@
|
|
|
797
797
|
"status": "wontfix",
|
|
798
798
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
799
799
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
800
|
-
"last_seen": "2026-03-
|
|
801
|
-
"resolved_at": "2026-03-
|
|
802
|
-
"reopen_count":
|
|
800
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
801
|
+
"resolved_at": "2026-03-15T19:16:25+00:00",
|
|
802
|
+
"reopen_count": 3,
|
|
803
803
|
"lang": "typescript",
|
|
804
804
|
"zone": "production",
|
|
805
805
|
"suppressed": false,
|
|
806
806
|
"suppressed_at": null,
|
|
807
807
|
"suppression_pattern": null,
|
|
808
|
-
"wontfix_scan_count":
|
|
808
|
+
"wontfix_scan_count": 13,
|
|
809
809
|
"wontfix_snapshot": {
|
|
810
|
-
"captured_at": "2026-03-
|
|
811
|
-
"scan_count":
|
|
810
|
+
"captured_at": "2026-03-15T19:16:25+00:00",
|
|
811
|
+
"scan_count": 13,
|
|
812
812
|
"tier": 3,
|
|
813
813
|
"confidence": "medium",
|
|
814
814
|
"detail": {
|
|
@@ -820,8 +820,8 @@
|
|
|
820
820
|
},
|
|
821
821
|
"resolution_attestation": {
|
|
822
822
|
"kind": "manual",
|
|
823
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
824
|
-
"attested_at": "2026-03-
|
|
823
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
824
|
+
"attested_at": "2026-03-15T19:16:25+00:00",
|
|
825
825
|
"scan_verified": false
|
|
826
826
|
}
|
|
827
827
|
},
|
|
@@ -841,18 +841,18 @@
|
|
|
841
841
|
"status": "wontfix",
|
|
842
842
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
843
843
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
844
|
-
"last_seen": "2026-03-
|
|
845
|
-
"resolved_at": "2026-03-
|
|
846
|
-
"reopen_count":
|
|
844
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
845
|
+
"resolved_at": "2026-03-15T19:16:26+00:00",
|
|
846
|
+
"reopen_count": 3,
|
|
847
847
|
"lang": "typescript",
|
|
848
848
|
"zone": "production",
|
|
849
849
|
"suppressed": false,
|
|
850
850
|
"suppressed_at": null,
|
|
851
851
|
"suppression_pattern": null,
|
|
852
|
-
"wontfix_scan_count":
|
|
852
|
+
"wontfix_scan_count": 13,
|
|
853
853
|
"wontfix_snapshot": {
|
|
854
|
-
"captured_at": "2026-03-
|
|
855
|
-
"scan_count":
|
|
854
|
+
"captured_at": "2026-03-15T19:16:26+00:00",
|
|
855
|
+
"scan_count": 13,
|
|
856
856
|
"tier": 3,
|
|
857
857
|
"confidence": "medium",
|
|
858
858
|
"detail": {
|
|
@@ -864,8 +864,8 @@
|
|
|
864
864
|
},
|
|
865
865
|
"resolution_attestation": {
|
|
866
866
|
"kind": "manual",
|
|
867
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
868
|
-
"attested_at": "2026-03-
|
|
867
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
868
|
+
"attested_at": "2026-03-15T19:16:26+00:00",
|
|
869
869
|
"scan_verified": false
|
|
870
870
|
}
|
|
871
871
|
},
|
|
@@ -885,18 +885,18 @@
|
|
|
885
885
|
"status": "wontfix",
|
|
886
886
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
887
887
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
888
|
-
"last_seen": "2026-03-
|
|
889
|
-
"resolved_at": "2026-03-
|
|
890
|
-
"reopen_count":
|
|
888
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
889
|
+
"resolved_at": "2026-03-15T19:16:26+00:00",
|
|
890
|
+
"reopen_count": 3,
|
|
891
891
|
"lang": "typescript",
|
|
892
892
|
"zone": "production",
|
|
893
893
|
"suppressed": false,
|
|
894
894
|
"suppressed_at": null,
|
|
895
895
|
"suppression_pattern": null,
|
|
896
|
-
"wontfix_scan_count":
|
|
896
|
+
"wontfix_scan_count": 13,
|
|
897
897
|
"wontfix_snapshot": {
|
|
898
|
-
"captured_at": "2026-03-
|
|
899
|
-
"scan_count":
|
|
898
|
+
"captured_at": "2026-03-15T19:16:26+00:00",
|
|
899
|
+
"scan_count": 13,
|
|
900
900
|
"tier": 3,
|
|
901
901
|
"confidence": "medium",
|
|
902
902
|
"detail": {
|
|
@@ -908,8 +908,8 @@
|
|
|
908
908
|
},
|
|
909
909
|
"resolution_attestation": {
|
|
910
910
|
"kind": "manual",
|
|
911
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
912
|
-
"attested_at": "2026-03-
|
|
911
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
912
|
+
"attested_at": "2026-03-15T19:16:26+00:00",
|
|
913
913
|
"scan_verified": false
|
|
914
914
|
}
|
|
915
915
|
},
|
|
@@ -929,18 +929,18 @@
|
|
|
929
929
|
"status": "wontfix",
|
|
930
930
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
931
931
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
932
|
-
"last_seen": "2026-03-
|
|
933
|
-
"resolved_at": "2026-03-
|
|
934
|
-
"reopen_count":
|
|
932
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
933
|
+
"resolved_at": "2026-03-15T19:16:23+00:00",
|
|
934
|
+
"reopen_count": 3,
|
|
935
935
|
"lang": "typescript",
|
|
936
936
|
"zone": "production",
|
|
937
937
|
"suppressed": false,
|
|
938
938
|
"suppressed_at": null,
|
|
939
939
|
"suppression_pattern": null,
|
|
940
|
-
"wontfix_scan_count":
|
|
940
|
+
"wontfix_scan_count": 13,
|
|
941
941
|
"wontfix_snapshot": {
|
|
942
|
-
"captured_at": "2026-03-
|
|
943
|
-
"scan_count":
|
|
942
|
+
"captured_at": "2026-03-15T19:16:23+00:00",
|
|
943
|
+
"scan_count": 13,
|
|
944
944
|
"tier": 3,
|
|
945
945
|
"confidence": "high",
|
|
946
946
|
"detail": {
|
|
@@ -952,8 +952,8 @@
|
|
|
952
952
|
},
|
|
953
953
|
"resolution_attestation": {
|
|
954
954
|
"kind": "manual",
|
|
955
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
956
|
-
"attested_at": "2026-03-
|
|
955
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
956
|
+
"attested_at": "2026-03-15T19:16:23+00:00",
|
|
957
957
|
"scan_verified": false
|
|
958
958
|
}
|
|
959
959
|
},
|
|
@@ -1037,18 +1037,18 @@
|
|
|
1037
1037
|
"status": "wontfix",
|
|
1038
1038
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
1039
1039
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
1040
|
-
"last_seen": "2026-03-
|
|
1041
|
-
"resolved_at": "2026-03-
|
|
1042
|
-
"reopen_count":
|
|
1040
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
1041
|
+
"resolved_at": "2026-03-15T19:16:24+00:00",
|
|
1042
|
+
"reopen_count": 3,
|
|
1043
1043
|
"lang": "typescript",
|
|
1044
1044
|
"zone": "production",
|
|
1045
1045
|
"suppressed": false,
|
|
1046
1046
|
"suppressed_at": null,
|
|
1047
1047
|
"suppression_pattern": null,
|
|
1048
|
-
"wontfix_scan_count":
|
|
1048
|
+
"wontfix_scan_count": 13,
|
|
1049
1049
|
"wontfix_snapshot": {
|
|
1050
|
-
"captured_at": "2026-03-
|
|
1051
|
-
"scan_count":
|
|
1050
|
+
"captured_at": "2026-03-15T19:16:24+00:00",
|
|
1051
|
+
"scan_count": 13,
|
|
1052
1052
|
"tier": 3,
|
|
1053
1053
|
"confidence": "medium",
|
|
1054
1054
|
"detail": {
|
|
@@ -1062,8 +1062,8 @@
|
|
|
1062
1062
|
},
|
|
1063
1063
|
"resolution_attestation": {
|
|
1064
1064
|
"kind": "manual",
|
|
1065
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
1066
|
-
"attested_at": "2026-03-
|
|
1065
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
1066
|
+
"attested_at": "2026-03-15T19:16:24+00:00",
|
|
1067
1067
|
"scan_verified": false
|
|
1068
1068
|
}
|
|
1069
1069
|
},
|
|
@@ -1085,18 +1085,18 @@
|
|
|
1085
1085
|
"status": "wontfix",
|
|
1086
1086
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
1087
1087
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
1088
|
-
"last_seen": "2026-03-
|
|
1089
|
-
"resolved_at": "2026-03-
|
|
1090
|
-
"reopen_count":
|
|
1088
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
1089
|
+
"resolved_at": "2026-03-15T19:16:25+00:00",
|
|
1090
|
+
"reopen_count": 3,
|
|
1091
1091
|
"lang": "typescript",
|
|
1092
1092
|
"zone": "production",
|
|
1093
1093
|
"suppressed": false,
|
|
1094
1094
|
"suppressed_at": null,
|
|
1095
1095
|
"suppression_pattern": null,
|
|
1096
|
-
"wontfix_scan_count":
|
|
1096
|
+
"wontfix_scan_count": 13,
|
|
1097
1097
|
"wontfix_snapshot": {
|
|
1098
|
-
"captured_at": "2026-03-
|
|
1099
|
-
"scan_count":
|
|
1098
|
+
"captured_at": "2026-03-15T19:16:25+00:00",
|
|
1099
|
+
"scan_count": 13,
|
|
1100
1100
|
"tier": 3,
|
|
1101
1101
|
"confidence": "medium",
|
|
1102
1102
|
"detail": {
|
|
@@ -1110,8 +1110,8 @@
|
|
|
1110
1110
|
},
|
|
1111
1111
|
"resolution_attestation": {
|
|
1112
1112
|
"kind": "manual",
|
|
1113
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
1114
|
-
"attested_at": "2026-03-
|
|
1113
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
1114
|
+
"attested_at": "2026-03-15T19:16:25+00:00",
|
|
1115
1115
|
"scan_verified": false
|
|
1116
1116
|
}
|
|
1117
1117
|
},
|
|
@@ -1133,18 +1133,18 @@
|
|
|
1133
1133
|
"status": "wontfix",
|
|
1134
1134
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
1135
1135
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
1136
|
-
"last_seen": "2026-03-
|
|
1137
|
-
"resolved_at": "2026-03-
|
|
1138
|
-
"reopen_count":
|
|
1136
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
1137
|
+
"resolved_at": "2026-03-15T19:16:25+00:00",
|
|
1138
|
+
"reopen_count": 3,
|
|
1139
1139
|
"lang": "typescript",
|
|
1140
1140
|
"zone": "production",
|
|
1141
1141
|
"suppressed": false,
|
|
1142
1142
|
"suppressed_at": null,
|
|
1143
1143
|
"suppression_pattern": null,
|
|
1144
|
-
"wontfix_scan_count":
|
|
1144
|
+
"wontfix_scan_count": 13,
|
|
1145
1145
|
"wontfix_snapshot": {
|
|
1146
|
-
"captured_at": "2026-03-
|
|
1147
|
-
"scan_count":
|
|
1146
|
+
"captured_at": "2026-03-15T19:16:25+00:00",
|
|
1147
|
+
"scan_count": 13,
|
|
1148
1148
|
"tier": 3,
|
|
1149
1149
|
"confidence": "medium",
|
|
1150
1150
|
"detail": {
|
|
@@ -1158,8 +1158,8 @@
|
|
|
1158
1158
|
},
|
|
1159
1159
|
"resolution_attestation": {
|
|
1160
1160
|
"kind": "manual",
|
|
1161
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
1162
|
-
"attested_at": "2026-03-
|
|
1161
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
1162
|
+
"attested_at": "2026-03-15T19:16:25+00:00",
|
|
1163
1163
|
"scan_verified": false
|
|
1164
1164
|
}
|
|
1165
1165
|
},
|
|
@@ -1181,18 +1181,18 @@
|
|
|
1181
1181
|
"status": "wontfix",
|
|
1182
1182
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
1183
1183
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
1184
|
-
"last_seen": "2026-03-
|
|
1185
|
-
"resolved_at": "2026-03-
|
|
1186
|
-
"reopen_count":
|
|
1184
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
1185
|
+
"resolved_at": "2026-03-15T19:16:27+00:00",
|
|
1186
|
+
"reopen_count": 3,
|
|
1187
1187
|
"lang": "typescript",
|
|
1188
1188
|
"zone": "production",
|
|
1189
1189
|
"suppressed": false,
|
|
1190
1190
|
"suppressed_at": null,
|
|
1191
1191
|
"suppression_pattern": null,
|
|
1192
|
-
"wontfix_scan_count":
|
|
1192
|
+
"wontfix_scan_count": 13,
|
|
1193
1193
|
"wontfix_snapshot": {
|
|
1194
|
-
"captured_at": "2026-03-
|
|
1195
|
-
"scan_count":
|
|
1194
|
+
"captured_at": "2026-03-15T19:16:27+00:00",
|
|
1195
|
+
"scan_count": 13,
|
|
1196
1196
|
"tier": 3,
|
|
1197
1197
|
"confidence": "medium",
|
|
1198
1198
|
"detail": {
|
|
@@ -1206,8 +1206,8 @@
|
|
|
1206
1206
|
},
|
|
1207
1207
|
"resolution_attestation": {
|
|
1208
1208
|
"kind": "manual",
|
|
1209
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
1210
|
-
"attested_at": "2026-03-
|
|
1209
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
1210
|
+
"attested_at": "2026-03-15T19:16:27+00:00",
|
|
1211
1211
|
"scan_verified": false
|
|
1212
1212
|
}
|
|
1213
1213
|
},
|
|
@@ -1229,18 +1229,18 @@
|
|
|
1229
1229
|
"status": "wontfix",
|
|
1230
1230
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
1231
1231
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
1232
|
-
"last_seen": "2026-03-
|
|
1233
|
-
"resolved_at": "2026-03-
|
|
1234
|
-
"reopen_count":
|
|
1232
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
1233
|
+
"resolved_at": "2026-03-15T19:16:23+00:00",
|
|
1234
|
+
"reopen_count": 3,
|
|
1235
1235
|
"lang": "typescript",
|
|
1236
1236
|
"zone": "production",
|
|
1237
1237
|
"suppressed": false,
|
|
1238
1238
|
"suppressed_at": null,
|
|
1239
1239
|
"suppression_pattern": null,
|
|
1240
|
-
"wontfix_scan_count":
|
|
1240
|
+
"wontfix_scan_count": 13,
|
|
1241
1241
|
"wontfix_snapshot": {
|
|
1242
|
-
"captured_at": "2026-03-
|
|
1243
|
-
"scan_count":
|
|
1242
|
+
"captured_at": "2026-03-15T19:16:23+00:00",
|
|
1243
|
+
"scan_count": 13,
|
|
1244
1244
|
"tier": 3,
|
|
1245
1245
|
"confidence": "medium",
|
|
1246
1246
|
"detail": {
|
|
@@ -1254,8 +1254,8 @@
|
|
|
1254
1254
|
},
|
|
1255
1255
|
"resolution_attestation": {
|
|
1256
1256
|
"kind": "manual",
|
|
1257
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
1258
|
-
"attested_at": "2026-03-
|
|
1257
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
1258
|
+
"attested_at": "2026-03-15T19:16:23+00:00",
|
|
1259
1259
|
"scan_verified": false
|
|
1260
1260
|
}
|
|
1261
1261
|
},
|
|
@@ -1327,18 +1327,18 @@
|
|
|
1327
1327
|
"status": "wontfix",
|
|
1328
1328
|
"note": "Already reviewed \u2014 intentional or false positive",
|
|
1329
1329
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
1330
|
-
"last_seen": "2026-03-
|
|
1331
|
-
"resolved_at": "2026-03-
|
|
1332
|
-
"reopen_count":
|
|
1330
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
1331
|
+
"resolved_at": "2026-03-15T19:17:00+00:00",
|
|
1332
|
+
"reopen_count": 3,
|
|
1333
1333
|
"lang": "typescript",
|
|
1334
1334
|
"zone": "test",
|
|
1335
1335
|
"suppressed": false,
|
|
1336
1336
|
"suppressed_at": null,
|
|
1337
1337
|
"suppression_pattern": null,
|
|
1338
|
-
"wontfix_scan_count":
|
|
1338
|
+
"wontfix_scan_count": 13,
|
|
1339
1339
|
"wontfix_snapshot": {
|
|
1340
|
-
"captured_at": "2026-03-
|
|
1341
|
-
"scan_count":
|
|
1340
|
+
"captured_at": "2026-03-15T19:17:00+00:00",
|
|
1341
|
+
"scan_count": 13,
|
|
1342
1342
|
"tier": 3,
|
|
1343
1343
|
"confidence": "low",
|
|
1344
1344
|
"detail": {
|
|
@@ -1354,8 +1354,8 @@
|
|
|
1354
1354
|
},
|
|
1355
1355
|
"resolution_attestation": {
|
|
1356
1356
|
"kind": "manual",
|
|
1357
|
-
"text": "I have actually reviewed this finding and confirmed it is
|
|
1358
|
-
"attested_at": "2026-03-
|
|
1357
|
+
"text": "I have actually reviewed this finding and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
1358
|
+
"attested_at": "2026-03-15T19:17:00+00:00",
|
|
1359
1359
|
"scan_verified": false
|
|
1360
1360
|
}
|
|
1361
1361
|
},
|
|
@@ -1425,18 +1425,18 @@
|
|
|
1425
1425
|
"status": "wontfix",
|
|
1426
1426
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
1427
1427
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
1428
|
-
"last_seen": "2026-03-
|
|
1429
|
-
"resolved_at": "2026-03-
|
|
1430
|
-
"reopen_count":
|
|
1428
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
1429
|
+
"resolved_at": "2026-03-15T19:16:22+00:00",
|
|
1430
|
+
"reopen_count": 3,
|
|
1431
1431
|
"lang": "typescript",
|
|
1432
1432
|
"zone": "production",
|
|
1433
1433
|
"suppressed": false,
|
|
1434
1434
|
"suppressed_at": null,
|
|
1435
1435
|
"suppression_pattern": null,
|
|
1436
|
-
"wontfix_scan_count":
|
|
1436
|
+
"wontfix_scan_count": 13,
|
|
1437
1437
|
"wontfix_snapshot": {
|
|
1438
|
-
"captured_at": "2026-03-
|
|
1439
|
-
"scan_count":
|
|
1438
|
+
"captured_at": "2026-03-15T19:16:22+00:00",
|
|
1439
|
+
"scan_count": 13,
|
|
1440
1440
|
"tier": 3,
|
|
1441
1441
|
"confidence": "medium",
|
|
1442
1442
|
"detail": {
|
|
@@ -1450,8 +1450,8 @@
|
|
|
1450
1450
|
},
|
|
1451
1451
|
"resolution_attestation": {
|
|
1452
1452
|
"kind": "manual",
|
|
1453
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
1454
|
-
"attested_at": "2026-03-
|
|
1453
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
1454
|
+
"attested_at": "2026-03-15T19:16:22+00:00",
|
|
1455
1455
|
"scan_verified": false
|
|
1456
1456
|
}
|
|
1457
1457
|
},
|
|
@@ -1474,20 +1474,20 @@
|
|
|
1474
1474
|
]
|
|
1475
1475
|
},
|
|
1476
1476
|
"status": "wontfix",
|
|
1477
|
-
"note": "
|
|
1477
|
+
"note": "Already reviewed \u2014 intentional or false positive",
|
|
1478
1478
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
1479
|
-
"last_seen": "2026-03-
|
|
1480
|
-
"resolved_at": "2026-03-
|
|
1481
|
-
"reopen_count":
|
|
1479
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
1480
|
+
"resolved_at": "2026-03-15T19:17:00+00:00",
|
|
1481
|
+
"reopen_count": 3,
|
|
1482
1482
|
"lang": "typescript",
|
|
1483
1483
|
"zone": "test",
|
|
1484
1484
|
"suppressed": false,
|
|
1485
1485
|
"suppressed_at": null,
|
|
1486
1486
|
"suppression_pattern": null,
|
|
1487
|
-
"wontfix_scan_count":
|
|
1487
|
+
"wontfix_scan_count": 13,
|
|
1488
1488
|
"wontfix_snapshot": {
|
|
1489
|
-
"captured_at": "2026-03-
|
|
1490
|
-
"scan_count":
|
|
1489
|
+
"captured_at": "2026-03-15T19:17:00+00:00",
|
|
1490
|
+
"scan_count": 13,
|
|
1491
1491
|
"tier": 3,
|
|
1492
1492
|
"confidence": "low",
|
|
1493
1493
|
"detail": {
|
|
@@ -1504,8 +1504,8 @@
|
|
|
1504
1504
|
},
|
|
1505
1505
|
"resolution_attestation": {
|
|
1506
1506
|
"kind": "manual",
|
|
1507
|
-
"text": "I have actually reviewed this finding
|
|
1508
|
-
"attested_at": "2026-03-
|
|
1507
|
+
"text": "I have actually reviewed this finding and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
1508
|
+
"attested_at": "2026-03-15T19:17:00+00:00",
|
|
1509
1509
|
"scan_verified": false
|
|
1510
1510
|
}
|
|
1511
1511
|
},
|
|
@@ -1527,18 +1527,18 @@
|
|
|
1527
1527
|
"status": "wontfix",
|
|
1528
1528
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
1529
1529
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
1530
|
-
"last_seen": "2026-03-
|
|
1531
|
-
"resolved_at": "2026-03-
|
|
1532
|
-
"reopen_count":
|
|
1530
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
1531
|
+
"resolved_at": "2026-03-15T19:16:24+00:00",
|
|
1532
|
+
"reopen_count": 3,
|
|
1533
1533
|
"lang": "typescript",
|
|
1534
1534
|
"zone": "production",
|
|
1535
1535
|
"suppressed": false,
|
|
1536
1536
|
"suppressed_at": null,
|
|
1537
1537
|
"suppression_pattern": null,
|
|
1538
|
-
"wontfix_scan_count":
|
|
1538
|
+
"wontfix_scan_count": 13,
|
|
1539
1539
|
"wontfix_snapshot": {
|
|
1540
|
-
"captured_at": "2026-03-
|
|
1541
|
-
"scan_count":
|
|
1540
|
+
"captured_at": "2026-03-15T19:16:24+00:00",
|
|
1541
|
+
"scan_count": 13,
|
|
1542
1542
|
"tier": 3,
|
|
1543
1543
|
"confidence": "medium",
|
|
1544
1544
|
"detail": {
|
|
@@ -1552,8 +1552,8 @@
|
|
|
1552
1552
|
},
|
|
1553
1553
|
"resolution_attestation": {
|
|
1554
1554
|
"kind": "manual",
|
|
1555
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
1556
|
-
"attested_at": "2026-03-
|
|
1555
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
1556
|
+
"attested_at": "2026-03-15T19:16:24+00:00",
|
|
1557
1557
|
"scan_verified": false
|
|
1558
1558
|
}
|
|
1559
1559
|
},
|
|
@@ -1623,18 +1623,18 @@
|
|
|
1623
1623
|
"status": "wontfix",
|
|
1624
1624
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
1625
1625
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
1626
|
-
"last_seen": "2026-03-
|
|
1627
|
-
"resolved_at": "2026-03-
|
|
1628
|
-
"reopen_count":
|
|
1626
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
1627
|
+
"resolved_at": "2026-03-15T19:16:28+00:00",
|
|
1628
|
+
"reopen_count": 3,
|
|
1629
1629
|
"lang": "typescript",
|
|
1630
1630
|
"zone": "test",
|
|
1631
1631
|
"suppressed": false,
|
|
1632
1632
|
"suppressed_at": null,
|
|
1633
1633
|
"suppression_pattern": null,
|
|
1634
|
-
"wontfix_scan_count":
|
|
1634
|
+
"wontfix_scan_count": 13,
|
|
1635
1635
|
"wontfix_snapshot": {
|
|
1636
|
-
"captured_at": "2026-03-
|
|
1637
|
-
"scan_count":
|
|
1636
|
+
"captured_at": "2026-03-15T19:16:28+00:00",
|
|
1637
|
+
"scan_count": 13,
|
|
1638
1638
|
"tier": 3,
|
|
1639
1639
|
"confidence": "low",
|
|
1640
1640
|
"detail": {
|
|
@@ -1648,8 +1648,8 @@
|
|
|
1648
1648
|
},
|
|
1649
1649
|
"resolution_attestation": {
|
|
1650
1650
|
"kind": "manual",
|
|
1651
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
1652
|
-
"attested_at": "2026-03-
|
|
1651
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
1652
|
+
"attested_at": "2026-03-15T19:16:28+00:00",
|
|
1653
1653
|
"scan_verified": false
|
|
1654
1654
|
}
|
|
1655
1655
|
},
|
|
@@ -1813,18 +1813,18 @@
|
|
|
1813
1813
|
"status": "wontfix",
|
|
1814
1814
|
"note": "Chronic reopener \u2014 already reviewed",
|
|
1815
1815
|
"first_seen": "2026-03-14T23:49:59+00:00",
|
|
1816
|
-
"last_seen": "2026-03-
|
|
1817
|
-
"resolved_at": "2026-03-
|
|
1818
|
-
"reopen_count":
|
|
1816
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
1817
|
+
"resolved_at": "2026-03-15T19:16:26+00:00",
|
|
1818
|
+
"reopen_count": 3,
|
|
1819
1819
|
"lang": "typescript",
|
|
1820
1820
|
"zone": "production",
|
|
1821
1821
|
"suppressed": false,
|
|
1822
1822
|
"suppressed_at": null,
|
|
1823
1823
|
"suppression_pattern": null,
|
|
1824
|
-
"wontfix_scan_count":
|
|
1824
|
+
"wontfix_scan_count": 13,
|
|
1825
1825
|
"wontfix_snapshot": {
|
|
1826
|
-
"captured_at": "2026-03-
|
|
1827
|
-
"scan_count":
|
|
1826
|
+
"captured_at": "2026-03-15T19:16:26+00:00",
|
|
1827
|
+
"scan_count": 13,
|
|
1828
1828
|
"tier": 3,
|
|
1829
1829
|
"confidence": "low",
|
|
1830
1830
|
"detail": {
|
|
@@ -1838,8 +1838,8 @@
|
|
|
1838
1838
|
},
|
|
1839
1839
|
"resolution_attestation": {
|
|
1840
1840
|
"kind": "manual",
|
|
1841
|
-
"text": "I have actually reviewed this finding previously and confirmed it is intentional and I am not gaming the score by resolving without fixing.",
|
|
1842
|
-
"attested_at": "2026-03-
|
|
1841
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
1842
|
+
"attested_at": "2026-03-15T19:16:26+00:00",
|
|
1843
1843
|
"scan_verified": false
|
|
1844
1844
|
}
|
|
1845
1845
|
},
|
|
@@ -3491,18 +3491,18 @@
|
|
|
3491
3491
|
"status": "wontfix",
|
|
3492
3492
|
"note": "Already reviewed \u2014 intentional or false positive",
|
|
3493
3493
|
"first_seen": "2026-03-15T00:09:54+00:00",
|
|
3494
|
-
"last_seen": "2026-03-
|
|
3495
|
-
"resolved_at": "2026-03-
|
|
3496
|
-
"reopen_count":
|
|
3494
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
3495
|
+
"resolved_at": "2026-03-15T19:17:00+00:00",
|
|
3496
|
+
"reopen_count": 2,
|
|
3497
3497
|
"lang": "typescript",
|
|
3498
3498
|
"zone": "test",
|
|
3499
3499
|
"suppressed": false,
|
|
3500
3500
|
"suppressed_at": null,
|
|
3501
3501
|
"suppression_pattern": null,
|
|
3502
|
-
"wontfix_scan_count":
|
|
3502
|
+
"wontfix_scan_count": 13,
|
|
3503
3503
|
"wontfix_snapshot": {
|
|
3504
|
-
"captured_at": "2026-03-
|
|
3505
|
-
"scan_count":
|
|
3504
|
+
"captured_at": "2026-03-15T19:17:00+00:00",
|
|
3505
|
+
"scan_count": 13,
|
|
3506
3506
|
"tier": 3,
|
|
3507
3507
|
"confidence": "low",
|
|
3508
3508
|
"detail": {
|
|
@@ -3519,8 +3519,8 @@
|
|
|
3519
3519
|
},
|
|
3520
3520
|
"resolution_attestation": {
|
|
3521
3521
|
"kind": "manual",
|
|
3522
|
-
"text": "I have actually reviewed this finding and confirmed it is
|
|
3523
|
-
"attested_at": "2026-03-
|
|
3522
|
+
"text": "I have actually reviewed this finding and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
3523
|
+
"attested_at": "2026-03-15T19:17:00+00:00",
|
|
3524
3524
|
"scan_verified": false
|
|
3525
3525
|
}
|
|
3526
3526
|
},
|
|
@@ -3545,18 +3545,18 @@
|
|
|
3545
3545
|
"status": "wontfix",
|
|
3546
3546
|
"note": "Already reviewed \u2014 intentional or false positive",
|
|
3547
3547
|
"first_seen": "2026-03-15T00:09:54+00:00",
|
|
3548
|
-
"last_seen": "2026-03-
|
|
3549
|
-
"resolved_at": "2026-03-
|
|
3550
|
-
"reopen_count":
|
|
3548
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
3549
|
+
"resolved_at": "2026-03-15T19:17:00+00:00",
|
|
3550
|
+
"reopen_count": 2,
|
|
3551
3551
|
"lang": "typescript",
|
|
3552
3552
|
"zone": "test",
|
|
3553
3553
|
"suppressed": false,
|
|
3554
3554
|
"suppressed_at": null,
|
|
3555
3555
|
"suppression_pattern": null,
|
|
3556
|
-
"wontfix_scan_count":
|
|
3556
|
+
"wontfix_scan_count": 13,
|
|
3557
3557
|
"wontfix_snapshot": {
|
|
3558
|
-
"captured_at": "2026-03-
|
|
3559
|
-
"scan_count":
|
|
3558
|
+
"captured_at": "2026-03-15T19:17:00+00:00",
|
|
3559
|
+
"scan_count": 13,
|
|
3560
3560
|
"tier": 3,
|
|
3561
3561
|
"confidence": "low",
|
|
3562
3562
|
"detail": {
|
|
@@ -3573,8 +3573,8 @@
|
|
|
3573
3573
|
},
|
|
3574
3574
|
"resolution_attestation": {
|
|
3575
3575
|
"kind": "manual",
|
|
3576
|
-
"text": "I have actually reviewed this finding and confirmed it is
|
|
3577
|
-
"attested_at": "2026-03-
|
|
3576
|
+
"text": "I have actually reviewed this finding and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
3577
|
+
"attested_at": "2026-03-15T19:17:00+00:00",
|
|
3578
3578
|
"scan_verified": false
|
|
3579
3579
|
}
|
|
3580
3580
|
},
|
|
@@ -3593,12 +3593,12 @@
|
|
|
3593
3593
|
333
|
|
3594
3594
|
]
|
|
3595
3595
|
},
|
|
3596
|
-
"status": "
|
|
3597
|
-
"note": "
|
|
3596
|
+
"status": "open",
|
|
3597
|
+
"note": "Reopened (\u00d72) \u2014 reappeared in scan (was auto_resolved)",
|
|
3598
3598
|
"first_seen": "2026-03-15T00:09:54+00:00",
|
|
3599
|
-
"last_seen": "2026-03-
|
|
3600
|
-
"resolved_at":
|
|
3601
|
-
"reopen_count":
|
|
3599
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
3600
|
+
"resolved_at": null,
|
|
3601
|
+
"reopen_count": 2,
|
|
3602
3602
|
"lang": "typescript",
|
|
3603
3603
|
"zone": "test",
|
|
3604
3604
|
"suppressed": false,
|
|
@@ -3618,12 +3618,6 @@
|
|
|
3618
3618
|
333
|
|
3619
3619
|
]
|
|
3620
3620
|
}
|
|
3621
|
-
},
|
|
3622
|
-
"resolution_attestation": {
|
|
3623
|
-
"kind": "manual",
|
|
3624
|
-
"text": "I have actually reviewed this finding and confirmed it is either intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
3625
|
-
"attested_at": "2026-03-15T05:09:58+00:00",
|
|
3626
|
-
"scan_verified": false
|
|
3627
3621
|
}
|
|
3628
3622
|
},
|
|
3629
3623
|
"smells::coverage/base.css::css_important_overuse": {
|
|
@@ -3642,20 +3636,20 @@
|
|
|
3642
3636
|
]
|
|
3643
3637
|
},
|
|
3644
3638
|
"status": "wontfix",
|
|
3645
|
-
"note": "
|
|
3639
|
+
"note": "Chronic reopener \u2014 already reviewed",
|
|
3646
3640
|
"first_seen": "2026-03-15T00:09:54+00:00",
|
|
3647
|
-
"last_seen": "2026-03-
|
|
3648
|
-
"resolved_at": "2026-03-
|
|
3649
|
-
"reopen_count":
|
|
3641
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
3642
|
+
"resolved_at": "2026-03-15T19:16:26+00:00",
|
|
3643
|
+
"reopen_count": 2,
|
|
3650
3644
|
"lang": "typescript",
|
|
3651
3645
|
"zone": "production",
|
|
3652
3646
|
"suppressed": false,
|
|
3653
3647
|
"suppressed_at": null,
|
|
3654
3648
|
"suppression_pattern": null,
|
|
3655
|
-
"wontfix_scan_count":
|
|
3649
|
+
"wontfix_scan_count": 13,
|
|
3656
3650
|
"wontfix_snapshot": {
|
|
3657
|
-
"captured_at": "2026-03-
|
|
3658
|
-
"scan_count":
|
|
3651
|
+
"captured_at": "2026-03-15T19:16:26+00:00",
|
|
3652
|
+
"scan_count": 13,
|
|
3659
3653
|
"tier": 3,
|
|
3660
3654
|
"confidence": "low",
|
|
3661
3655
|
"detail": {
|
|
@@ -3669,8 +3663,8 @@
|
|
|
3669
3663
|
},
|
|
3670
3664
|
"resolution_attestation": {
|
|
3671
3665
|
"kind": "manual",
|
|
3672
|
-
"text": "I have actually reviewed this finding and confirmed it is
|
|
3673
|
-
"attested_at": "2026-03-
|
|
3666
|
+
"text": "I have actually reviewed this finding previously and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
3667
|
+
"attested_at": "2026-03-15T19:16:26+00:00",
|
|
3674
3668
|
"scan_verified": false
|
|
3675
3669
|
}
|
|
3676
3670
|
},
|
|
@@ -3721,18 +3715,18 @@
|
|
|
3721
3715
|
"status": "wontfix",
|
|
3722
3716
|
"note": "Already reviewed \u2014 intentional or false positive",
|
|
3723
3717
|
"first_seen": "2026-03-15T00:23:56+00:00",
|
|
3724
|
-
"last_seen": "2026-03-
|
|
3725
|
-
"resolved_at": "2026-03-
|
|
3726
|
-
"reopen_count":
|
|
3718
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
3719
|
+
"resolved_at": "2026-03-15T19:17:01+00:00",
|
|
3720
|
+
"reopen_count": 2,
|
|
3727
3721
|
"lang": "typescript",
|
|
3728
3722
|
"zone": "test",
|
|
3729
3723
|
"suppressed": false,
|
|
3730
3724
|
"suppressed_at": null,
|
|
3731
3725
|
"suppression_pattern": null,
|
|
3732
|
-
"wontfix_scan_count":
|
|
3726
|
+
"wontfix_scan_count": 13,
|
|
3733
3727
|
"wontfix_snapshot": {
|
|
3734
|
-
"captured_at": "2026-03-
|
|
3735
|
-
"scan_count":
|
|
3728
|
+
"captured_at": "2026-03-15T19:17:01+00:00",
|
|
3729
|
+
"scan_count": 13,
|
|
3736
3730
|
"tier": 3,
|
|
3737
3731
|
"confidence": "low",
|
|
3738
3732
|
"detail": {
|
|
@@ -3746,8 +3740,8 @@
|
|
|
3746
3740
|
},
|
|
3747
3741
|
"resolution_attestation": {
|
|
3748
3742
|
"kind": "manual",
|
|
3749
|
-
"text": "I have actually reviewed this finding and confirmed it is
|
|
3750
|
-
"attested_at": "2026-03-
|
|
3743
|
+
"text": "I have actually reviewed this finding and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
3744
|
+
"attested_at": "2026-03-15T19:17:01+00:00",
|
|
3751
3745
|
"scan_verified": false
|
|
3752
3746
|
}
|
|
3753
3747
|
},
|
|
@@ -4762,24 +4756,18 @@
|
|
|
4762
4756
|
"status": "wontfix",
|
|
4763
4757
|
"note": "Already reviewed \u2014 intentional or false positive",
|
|
4764
4758
|
"first_seen": "2026-03-15T05:00:32+00:00",
|
|
4765
|
-
"last_seen": "2026-03-
|
|
4766
|
-
"resolved_at": "2026-03-
|
|
4767
|
-
"reopen_count":
|
|
4759
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
4760
|
+
"resolved_at": "2026-03-15T19:16:59+00:00",
|
|
4761
|
+
"reopen_count": 1,
|
|
4768
4762
|
"lang": "typescript",
|
|
4769
4763
|
"zone": "production",
|
|
4770
4764
|
"suppressed": false,
|
|
4771
4765
|
"suppressed_at": null,
|
|
4772
4766
|
"suppression_pattern": null,
|
|
4773
|
-
"
|
|
4774
|
-
"kind": "manual",
|
|
4775
|
-
"text": "I have actually reviewed this finding and confirmed it is either intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
4776
|
-
"attested_at": "2026-03-15T05:09:59+00:00",
|
|
4777
|
-
"scan_verified": false
|
|
4778
|
-
},
|
|
4779
|
-
"wontfix_scan_count": 10,
|
|
4767
|
+
"wontfix_scan_count": 13,
|
|
4780
4768
|
"wontfix_snapshot": {
|
|
4781
|
-
"captured_at": "2026-03-
|
|
4782
|
-
"scan_count":
|
|
4769
|
+
"captured_at": "2026-03-15T19:16:59+00:00",
|
|
4770
|
+
"scan_count": 13,
|
|
4783
4771
|
"tier": 3,
|
|
4784
4772
|
"confidence": "medium",
|
|
4785
4773
|
"detail": {
|
|
@@ -4790,6 +4778,12 @@
|
|
|
4790
4778
|
40
|
|
4791
4779
|
]
|
|
4792
4780
|
}
|
|
4781
|
+
},
|
|
4782
|
+
"resolution_attestation": {
|
|
4783
|
+
"kind": "manual",
|
|
4784
|
+
"text": "I have actually reviewed this finding and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
4785
|
+
"attested_at": "2026-03-15T19:16:59+00:00",
|
|
4786
|
+
"scan_verified": false
|
|
4793
4787
|
}
|
|
4794
4788
|
},
|
|
4795
4789
|
"boilerplate_duplication::src/formats/anthropic/serialize.ts::28e424affd5b1856": {
|
|
@@ -4819,153 +4813,1538 @@
|
|
|
4819
4813
|
"}"
|
|
4820
4814
|
]
|
|
4821
4815
|
},
|
|
4822
|
-
"status": "
|
|
4823
|
-
"note":
|
|
4816
|
+
"status": "wontfix",
|
|
4817
|
+
"note": "Already reviewed \u2014 intentional or false positive",
|
|
4824
4818
|
"first_seen": "2026-03-15T05:00:35+00:00",
|
|
4825
|
-
"last_seen": "2026-03-
|
|
4826
|
-
"resolved_at":
|
|
4827
|
-
"reopen_count":
|
|
4819
|
+
"last_seen": "2026-03-15T19:12:32+00:00",
|
|
4820
|
+
"resolved_at": "2026-03-15T19:16:59+00:00",
|
|
4821
|
+
"reopen_count": 1,
|
|
4828
4822
|
"lang": "typescript",
|
|
4829
4823
|
"zone": "production",
|
|
4830
4824
|
"suppressed": false,
|
|
4831
4825
|
"suppressed_at": null,
|
|
4832
|
-
"suppression_pattern": null
|
|
4833
|
-
|
|
4834
|
-
|
|
4835
|
-
|
|
4836
|
-
|
|
4837
|
-
|
|
4838
|
-
|
|
4839
|
-
|
|
4840
|
-
|
|
4841
|
-
"
|
|
4842
|
-
"
|
|
4843
|
-
|
|
4844
|
-
|
|
4845
|
-
|
|
4846
|
-
|
|
4847
|
-
|
|
4848
|
-
|
|
4826
|
+
"suppression_pattern": null,
|
|
4827
|
+
"wontfix_scan_count": 13,
|
|
4828
|
+
"wontfix_snapshot": {
|
|
4829
|
+
"captured_at": "2026-03-15T19:16:59+00:00",
|
|
4830
|
+
"scan_count": 13,
|
|
4831
|
+
"tier": 3,
|
|
4832
|
+
"confidence": "medium",
|
|
4833
|
+
"detail": {
|
|
4834
|
+
"distinct_files": 2,
|
|
4835
|
+
"window_size": 13,
|
|
4836
|
+
"locations": [
|
|
4837
|
+
{
|
|
4838
|
+
"file": "src/formats/anthropic/serialize.ts",
|
|
4839
|
+
"line": 165
|
|
4840
|
+
},
|
|
4841
|
+
{
|
|
4842
|
+
"file": "src/formats/responses/serialize.ts",
|
|
4843
|
+
"line": 310
|
|
4844
|
+
}
|
|
4845
|
+
],
|
|
4846
|
+
"sample": [
|
|
4847
|
+
",",
|
|
4848
|
+
" usage: buildUsage(usage),",
|
|
4849
|
+
" };",
|
|
4850
|
+
"}"
|
|
4851
|
+
]
|
|
4849
4852
|
}
|
|
4850
4853
|
},
|
|
4851
|
-
"
|
|
4852
|
-
|
|
4853
|
-
|
|
4854
|
-
|
|
4855
|
-
|
|
4856
|
-
|
|
4857
|
-
"confidence": 1.0,
|
|
4858
|
-
"detectors": [],
|
|
4859
|
-
"dimensions": []
|
|
4860
|
-
},
|
|
4861
|
-
"subjective_integrity": {
|
|
4862
|
-
"status": "disabled",
|
|
4863
|
-
"target_score": null,
|
|
4864
|
-
"matched_count": 0,
|
|
4865
|
-
"matched_dimensions": [],
|
|
4866
|
-
"reset_dimensions": []
|
|
4867
|
-
},
|
|
4868
|
-
"subjective_assessments": {
|
|
4869
|
-
"cross_module_architecture": {
|
|
4870
|
-
"score": 93.0,
|
|
4871
|
-
"source": "holistic",
|
|
4872
|
-
"assessed_at": "2026-03-15T05:00:28+00:00",
|
|
4873
|
-
"needs_review_refresh": true,
|
|
4874
|
-
"refresh_reason": "review_finding_wontfix",
|
|
4875
|
-
"stale_since": "2026-03-15T05:08:10+00:00"
|
|
4876
|
-
},
|
|
4877
|
-
"convention_outlier": {
|
|
4878
|
-
"score": 90.0,
|
|
4879
|
-
"source": "holistic",
|
|
4880
|
-
"assessed_at": "2026-03-15T05:00:28+00:00",
|
|
4881
|
-
"needs_review_refresh": true,
|
|
4882
|
-
"refresh_reason": "review_finding_wontfix",
|
|
4883
|
-
"stale_since": "2026-03-15T05:08:29+00:00"
|
|
4884
|
-
},
|
|
4885
|
-
"error_consistency": {
|
|
4886
|
-
"score": 82.0,
|
|
4887
|
-
"source": "holistic",
|
|
4888
|
-
"assessed_at": "2026-03-15T05:00:28+00:00",
|
|
4889
|
-
"needs_review_refresh": true,
|
|
4890
|
-
"refresh_reason": "review_finding_wontfix",
|
|
4891
|
-
"stale_since": "2026-03-15T05:08:11+00:00"
|
|
4892
|
-
},
|
|
4893
|
-
"abstraction_fitness": {
|
|
4894
|
-
"score": 91.0,
|
|
4895
|
-
"source": "holistic",
|
|
4896
|
-
"assessed_at": "2026-03-15T05:00:28+00:00",
|
|
4897
|
-
"needs_review_refresh": true,
|
|
4898
|
-
"refresh_reason": "review_finding_wontfix",
|
|
4899
|
-
"stale_since": "2026-03-15T05:08:09+00:00"
|
|
4900
|
-
},
|
|
4901
|
-
"api_surface_coherence": {
|
|
4902
|
-
"score": 85.0,
|
|
4903
|
-
"source": "holistic",
|
|
4904
|
-
"assessed_at": "2026-03-15T05:00:28+00:00",
|
|
4905
|
-
"needs_review_refresh": true,
|
|
4906
|
-
"refresh_reason": "review_finding_wontfix",
|
|
4907
|
-
"stale_since": "2026-03-15T05:08:28+00:00"
|
|
4908
|
-
},
|
|
4909
|
-
"authorization_consistency": {
|
|
4910
|
-
"score": 100,
|
|
4911
|
-
"source": "holistic",
|
|
4912
|
-
"assessed_at": "2026-03-15T05:00:28+00:00"
|
|
4913
|
-
},
|
|
4914
|
-
"ai_generated_debt": {
|
|
4915
|
-
"score": 88.0,
|
|
4916
|
-
"source": "holistic",
|
|
4917
|
-
"assessed_at": "2026-03-15T05:00:28+00:00",
|
|
4918
|
-
"needs_review_refresh": true,
|
|
4919
|
-
"refresh_reason": "review_finding_wontfix",
|
|
4920
|
-
"stale_since": "2026-03-15T05:08:09+00:00"
|
|
4921
|
-
},
|
|
4922
|
-
"incomplete_migration": {
|
|
4923
|
-
"score": 95.0,
|
|
4924
|
-
"source": "holistic",
|
|
4925
|
-
"assessed_at": "2026-03-15T05:00:28+00:00",
|
|
4926
|
-
"needs_review_refresh": true,
|
|
4927
|
-
"refresh_reason": "review_finding_wontfix",
|
|
4928
|
-
"stale_since": "2026-03-15T05:08:12+00:00"
|
|
4854
|
+
"resolution_attestation": {
|
|
4855
|
+
"kind": "manual",
|
|
4856
|
+
"text": "I have actually reviewed this finding and confirmed it is intentional or a false positive and I am not gaming the score by resolving without fixing.",
|
|
4857
|
+
"attested_at": "2026-03-15T19:16:59+00:00",
|
|
4858
|
+
"scan_verified": false
|
|
4859
|
+
}
|
|
4929
4860
|
},
|
|
4930
|
-
"
|
|
4931
|
-
"
|
|
4932
|
-
"
|
|
4933
|
-
"
|
|
4934
|
-
"
|
|
4935
|
-
"
|
|
4936
|
-
"
|
|
4861
|
+
"review::.::holistic::cross_module_architecture::types_barrel_hub::1b4bc74e": {
|
|
4862
|
+
"id": "review::.::holistic::cross_module_architecture::types_barrel_hub::1b4bc74e",
|
|
4863
|
+
"detector": "review",
|
|
4864
|
+
"file": ".",
|
|
4865
|
+
"tier": 3,
|
|
4866
|
+
"confidence": "high",
|
|
4867
|
+
"summary": "Root types barrel creates a dependency hub and obscures domain boundaries.",
|
|
4868
|
+
"detail": {
|
|
4869
|
+
"holistic": true,
|
|
4870
|
+
"dimension": "cross_module_architecture",
|
|
4871
|
+
"related_files": [
|
|
4872
|
+
"src/types.ts",
|
|
4873
|
+
"src/rule-engine.ts",
|
|
4874
|
+
"src/formats/request-helpers.ts"
|
|
4875
|
+
],
|
|
4876
|
+
"evidence": [
|
|
4877
|
+
"src/types.ts only re-exports from ./types/request.js, ./types/reply.js, ./types/rule.js.",
|
|
4878
|
+
"src/rule-engine.ts and src/formats/request-helpers.ts import shared types from \"./types.js\"/\"../types.js\" rather than domain-specific type files."
|
|
4879
|
+
],
|
|
4880
|
+
"suggestion": "Prefer direct imports from domain type files (e.g., src/types/request.ts) for internal modules, or split into domain-specific entry points and reserve src/types.ts for external/public API use.",
|
|
4881
|
+
"reasoning": ""
|
|
4882
|
+
},
|
|
4883
|
+
"status": "wontfix",
|
|
4884
|
+
"note": "Intentional design for a test utility",
|
|
4885
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
4886
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
4887
|
+
"resolved_at": "2026-03-15T19:15:20+00:00",
|
|
4888
|
+
"reopen_count": 0,
|
|
4889
|
+
"lang": "typescript",
|
|
4890
|
+
"suppressed": false,
|
|
4891
|
+
"suppressed_at": null,
|
|
4892
|
+
"suppression_pattern": null,
|
|
4893
|
+
"resolution_attestation": {
|
|
4894
|
+
"kind": "manual",
|
|
4895
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
|
|
4896
|
+
"attested_at": "2026-03-15T19:15:20+00:00",
|
|
4897
|
+
"scan_verified": false
|
|
4898
|
+
},
|
|
4899
|
+
"wontfix_scan_count": 13,
|
|
4900
|
+
"wontfix_snapshot": {
|
|
4901
|
+
"captured_at": "2026-03-15T19:15:20+00:00",
|
|
4902
|
+
"scan_count": 13,
|
|
4903
|
+
"tier": 3,
|
|
4904
|
+
"confidence": "high",
|
|
4905
|
+
"detail": {
|
|
4906
|
+
"holistic": true,
|
|
4907
|
+
"dimension": "cross_module_architecture",
|
|
4908
|
+
"related_files": [
|
|
4909
|
+
"src/types.ts",
|
|
4910
|
+
"src/rule-engine.ts",
|
|
4911
|
+
"src/formats/request-helpers.ts"
|
|
4912
|
+
],
|
|
4913
|
+
"evidence": [
|
|
4914
|
+
"src/types.ts only re-exports from ./types/request.js, ./types/reply.js, ./types/rule.js.",
|
|
4915
|
+
"src/rule-engine.ts and src/formats/request-helpers.ts import shared types from \"./types.js\"/\"../types.js\" rather than domain-specific type files."
|
|
4916
|
+
],
|
|
4917
|
+
"suggestion": "Prefer direct imports from domain type files (e.g., src/types/request.ts) for internal modules, or split into domain-specific entry points and reserve src/types.ts for external/public API use.",
|
|
4918
|
+
"reasoning": ""
|
|
4919
|
+
}
|
|
4920
|
+
}
|
|
4937
4921
|
},
|
|
4938
|
-
"high_level_elegance": {
|
|
4939
|
-
"
|
|
4940
|
-
"
|
|
4941
|
-
"
|
|
4922
|
+
"review::.::holistic::high_level_elegance::request_meta_in_helper::09478090": {
|
|
4923
|
+
"id": "review::.::holistic::high_level_elegance::request_meta_in_helper::09478090",
|
|
4924
|
+
"detector": "review",
|
|
4925
|
+
"file": ".",
|
|
4926
|
+
"tier": 3,
|
|
4927
|
+
"confidence": "high",
|
|
4928
|
+
"summary": "Format contract depends on helper module, blurring ownership of request boundary types.",
|
|
4929
|
+
"detail": {
|
|
4930
|
+
"holistic": true,
|
|
4931
|
+
"dimension": "high_level_elegance",
|
|
4932
|
+
"related_files": [
|
|
4933
|
+
"src/formats/types.ts",
|
|
4934
|
+
"src/formats/request-helpers.ts"
|
|
4935
|
+
],
|
|
4936
|
+
"evidence": [
|
|
4937
|
+
"src/formats/types.ts imports RequestMeta from ./request-helpers.js.",
|
|
4938
|
+
"src/formats/request-helpers.ts combines RequestMeta with buildMockRequest and isStreaming logic."
|
|
4939
|
+
],
|
|
4940
|
+
"suggestion": "Move RequestMeta into a dedicated types module (e.g., src/formats/request-types.ts) or into src/formats/types.ts, and have request-helpers import it instead of defining it.",
|
|
4941
|
+
"reasoning": ""
|
|
4942
|
+
},
|
|
4943
|
+
"status": "wontfix",
|
|
4944
|
+
"note": "Intentional design for a test utility",
|
|
4945
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
4946
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
4947
|
+
"resolved_at": "2026-03-15T19:15:20+00:00",
|
|
4948
|
+
"reopen_count": 0,
|
|
4949
|
+
"lang": "typescript",
|
|
4950
|
+
"suppressed": false,
|
|
4951
|
+
"suppressed_at": null,
|
|
4952
|
+
"suppression_pattern": null,
|
|
4953
|
+
"resolution_attestation": {
|
|
4954
|
+
"kind": "manual",
|
|
4955
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
|
|
4956
|
+
"attested_at": "2026-03-15T19:15:20+00:00",
|
|
4957
|
+
"scan_verified": false
|
|
4958
|
+
},
|
|
4959
|
+
"wontfix_scan_count": 13,
|
|
4960
|
+
"wontfix_snapshot": {
|
|
4961
|
+
"captured_at": "2026-03-15T19:15:20+00:00",
|
|
4962
|
+
"scan_count": 13,
|
|
4963
|
+
"tier": 3,
|
|
4964
|
+
"confidence": "high",
|
|
4965
|
+
"detail": {
|
|
4966
|
+
"holistic": true,
|
|
4967
|
+
"dimension": "high_level_elegance",
|
|
4968
|
+
"related_files": [
|
|
4969
|
+
"src/formats/types.ts",
|
|
4970
|
+
"src/formats/request-helpers.ts"
|
|
4971
|
+
],
|
|
4972
|
+
"evidence": [
|
|
4973
|
+
"src/formats/types.ts imports RequestMeta from ./request-helpers.js.",
|
|
4974
|
+
"src/formats/request-helpers.ts combines RequestMeta with buildMockRequest and isStreaming logic."
|
|
4975
|
+
],
|
|
4976
|
+
"suggestion": "Move RequestMeta into a dedicated types module (e.g., src/formats/request-types.ts) or into src/formats/types.ts, and have request-helpers import it instead of defining it.",
|
|
4977
|
+
"reasoning": ""
|
|
4978
|
+
}
|
|
4979
|
+
}
|
|
4980
|
+
},
|
|
4981
|
+
"review::.::holistic::convention_outlier::log_level_naming_mismatch::c24d378e": {
|
|
4982
|
+
"id": "review::.::holistic::convention_outlier::log_level_naming_mismatch::c24d378e",
|
|
4983
|
+
"detector": "review",
|
|
4984
|
+
"file": ".",
|
|
4985
|
+
"tier": 3,
|
|
4986
|
+
"confidence": "medium",
|
|
4987
|
+
"summary": "Log level naming is inconsistent (`warning` vs `warn`) across CLI and Logger APIs.",
|
|
4988
|
+
"detail": {
|
|
4989
|
+
"holistic": true,
|
|
4990
|
+
"dimension": "convention_outlier",
|
|
4991
|
+
"related_files": [
|
|
4992
|
+
"src/logger.ts",
|
|
4993
|
+
"src/cli-validators.ts",
|
|
4994
|
+
"src/cli.ts"
|
|
4995
|
+
],
|
|
4996
|
+
"evidence": [
|
|
4997
|
+
"`LEVEL_PRIORITY` defines `warning`, CLI validation only accepts `warning`, but Logger exposes `warn` and labels logs as `WARN` (src/logger.ts, src/cli-validators.ts).",
|
|
4998
|
+
"CLI flag `--log-level` is the public surface; a user seeing `WARN` may reasonably try `warn`, which is rejected (src/cli.ts, src/cli-validators.ts)."
|
|
4999
|
+
],
|
|
5000
|
+
"suggestion": "Align on one string (`warn` or `warning`) and accept both in the validator to preserve compatibility; update logger constants and CLI help text accordingly.",
|
|
5001
|
+
"reasoning": ""
|
|
5002
|
+
},
|
|
5003
|
+
"status": "wontfix",
|
|
5004
|
+
"note": "Intentional design for a test utility",
|
|
5005
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5006
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5007
|
+
"resolved_at": "2026-03-15T19:15:40+00:00",
|
|
5008
|
+
"reopen_count": 0,
|
|
5009
|
+
"lang": "typescript",
|
|
5010
|
+
"suppressed": false,
|
|
5011
|
+
"suppressed_at": null,
|
|
5012
|
+
"suppression_pattern": null,
|
|
5013
|
+
"resolution_attestation": {
|
|
5014
|
+
"kind": "manual",
|
|
5015
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
|
|
5016
|
+
"attested_at": "2026-03-15T19:15:40+00:00",
|
|
5017
|
+
"scan_verified": false
|
|
5018
|
+
},
|
|
5019
|
+
"wontfix_scan_count": 13,
|
|
5020
|
+
"wontfix_snapshot": {
|
|
5021
|
+
"captured_at": "2026-03-15T19:15:40+00:00",
|
|
5022
|
+
"scan_count": 13,
|
|
5023
|
+
"tier": 3,
|
|
5024
|
+
"confidence": "medium",
|
|
5025
|
+
"detail": {
|
|
5026
|
+
"holistic": true,
|
|
5027
|
+
"dimension": "convention_outlier",
|
|
5028
|
+
"related_files": [
|
|
5029
|
+
"src/logger.ts",
|
|
5030
|
+
"src/cli-validators.ts",
|
|
5031
|
+
"src/cli.ts"
|
|
5032
|
+
],
|
|
5033
|
+
"evidence": [
|
|
5034
|
+
"`LEVEL_PRIORITY` defines `warning`, CLI validation only accepts `warning`, but Logger exposes `warn` and labels logs as `WARN` (src/logger.ts, src/cli-validators.ts).",
|
|
5035
|
+
"CLI flag `--log-level` is the public surface; a user seeing `WARN` may reasonably try `warn`, which is rejected (src/cli.ts, src/cli-validators.ts)."
|
|
5036
|
+
],
|
|
5037
|
+
"suggestion": "Align on one string (`warn` or `warning`) and accept both in the validator to preserve compatibility; update logger constants and CLI help text accordingly.",
|
|
5038
|
+
"reasoning": ""
|
|
5039
|
+
}
|
|
5040
|
+
}
|
|
5041
|
+
},
|
|
5042
|
+
"review::.::holistic::convention_outlier::mixed_sync_async_parsers::70b076f1": {
|
|
5043
|
+
"id": "review::.::holistic::convention_outlier::mixed_sync_async_parsers::70b076f1",
|
|
5044
|
+
"detector": "review",
|
|
5045
|
+
"file": ".",
|
|
5046
|
+
"tier": 3,
|
|
5047
|
+
"confidence": "low",
|
|
5048
|
+
"summary": "CLI validators mix async and sync parsing styles, creating an API shape outlier.",
|
|
5049
|
+
"detail": {
|
|
5050
|
+
"holistic": true,
|
|
5051
|
+
"dimension": "convention_outlier",
|
|
5052
|
+
"related_files": [
|
|
5053
|
+
"src/cli-validators.ts",
|
|
5054
|
+
"test/cli-validators.test.ts"
|
|
5055
|
+
],
|
|
5056
|
+
"evidence": [
|
|
5057
|
+
"`parseHost` is async (DNS lookup) while `parsePort`, `parseLogLevel`, `parseChunkSize`, and `parseLatency` are sync, so consumers must treat the module inconsistently (src/cli-validators.ts).",
|
|
5058
|
+
"Tests reflect the split by mixing `await expect(parseHost(...))` with sync expectations for other parsers (test/cli-validators.test.ts)."
|
|
5059
|
+
],
|
|
5060
|
+
"suggestion": "Normalize the validator interface: either make all parsers async (returning Promises) or provide a sync `parseHostSync` and move the async lookup to the CLI entrypoint.",
|
|
5061
|
+
"reasoning": ""
|
|
5062
|
+
},
|
|
5063
|
+
"status": "wontfix",
|
|
5064
|
+
"note": "Intentional design for a test utility",
|
|
5065
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5066
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5067
|
+
"resolved_at": "2026-03-15T19:16:02+00:00",
|
|
5068
|
+
"reopen_count": 0,
|
|
5069
|
+
"lang": "typescript",
|
|
5070
|
+
"suppressed": false,
|
|
5071
|
+
"suppressed_at": null,
|
|
5072
|
+
"suppression_pattern": null,
|
|
5073
|
+
"resolution_attestation": {
|
|
5074
|
+
"kind": "manual",
|
|
5075
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
|
|
5076
|
+
"attested_at": "2026-03-15T19:16:02+00:00",
|
|
5077
|
+
"scan_verified": false
|
|
5078
|
+
},
|
|
5079
|
+
"wontfix_scan_count": 13,
|
|
5080
|
+
"wontfix_snapshot": {
|
|
5081
|
+
"captured_at": "2026-03-15T19:16:02+00:00",
|
|
5082
|
+
"scan_count": 13,
|
|
5083
|
+
"tier": 3,
|
|
5084
|
+
"confidence": "low",
|
|
5085
|
+
"detail": {
|
|
5086
|
+
"holistic": true,
|
|
5087
|
+
"dimension": "convention_outlier",
|
|
5088
|
+
"related_files": [
|
|
5089
|
+
"src/cli-validators.ts",
|
|
5090
|
+
"test/cli-validators.test.ts"
|
|
5091
|
+
],
|
|
5092
|
+
"evidence": [
|
|
5093
|
+
"`parseHost` is async (DNS lookup) while `parsePort`, `parseLogLevel`, `parseChunkSize`, and `parseLatency` are sync, so consumers must treat the module inconsistently (src/cli-validators.ts).",
|
|
5094
|
+
"Tests reflect the split by mixing `await expect(parseHost(...))` with sync expectations for other parsers (test/cli-validators.test.ts)."
|
|
5095
|
+
],
|
|
5096
|
+
"suggestion": "Normalize the validator interface: either make all parsers async (returning Promises) or provide a sync `parseHostSync` and move the async lookup to the CLI entrypoint.",
|
|
5097
|
+
"reasoning": ""
|
|
5098
|
+
}
|
|
5099
|
+
}
|
|
5100
|
+
},
|
|
5101
|
+
"review::.::holistic::error_consistency::reload_rules_clears_on_error::63e1a0aa": {
|
|
5102
|
+
"id": "review::.::holistic::error_consistency::reload_rules_clears_on_error::63e1a0aa",
|
|
5103
|
+
"detector": "review",
|
|
5104
|
+
"file": ".",
|
|
5105
|
+
"tier": 3,
|
|
5106
|
+
"confidence": "medium",
|
|
5107
|
+
"summary": "Rules reload clears existing rules before load, and on failure only logs, leaving a running server with no rules.",
|
|
5108
|
+
"detail": {
|
|
5109
|
+
"holistic": true,
|
|
5110
|
+
"dimension": "error_consistency",
|
|
5111
|
+
"related_files": [
|
|
5112
|
+
"src/cli.ts",
|
|
5113
|
+
"src/logger.ts"
|
|
5114
|
+
],
|
|
5115
|
+
"evidence": [
|
|
5116
|
+
"Watch reload path does `server.reset(); await server.load(rulesPath);` inside a try/catch and only logs on error (src/cli.ts).",
|
|
5117
|
+
"If `server.load` throws, prior rules are already cleared and the server continues running with an empty rule set, with no rollback (src/cli.ts)."
|
|
5118
|
+
],
|
|
5119
|
+
"suggestion": "Load into a temporary ruleset or only call `reset()` after a successful load; on failure, preserve the previous rules and log the error with context.",
|
|
5120
|
+
"reasoning": ""
|
|
5121
|
+
},
|
|
5122
|
+
"status": "wontfix",
|
|
5123
|
+
"note": "Intentional design for a test utility",
|
|
5124
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5125
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5126
|
+
"resolved_at": "2026-03-15T19:15:41+00:00",
|
|
5127
|
+
"reopen_count": 0,
|
|
5128
|
+
"lang": "typescript",
|
|
5129
|
+
"suppressed": false,
|
|
5130
|
+
"suppressed_at": null,
|
|
5131
|
+
"suppression_pattern": null,
|
|
5132
|
+
"resolution_attestation": {
|
|
5133
|
+
"kind": "manual",
|
|
5134
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
|
|
5135
|
+
"attested_at": "2026-03-15T19:15:41+00:00",
|
|
5136
|
+
"scan_verified": false
|
|
5137
|
+
},
|
|
5138
|
+
"wontfix_scan_count": 13,
|
|
5139
|
+
"wontfix_snapshot": {
|
|
5140
|
+
"captured_at": "2026-03-15T19:15:41+00:00",
|
|
5141
|
+
"scan_count": 13,
|
|
5142
|
+
"tier": 3,
|
|
5143
|
+
"confidence": "medium",
|
|
5144
|
+
"detail": {
|
|
5145
|
+
"holistic": true,
|
|
5146
|
+
"dimension": "error_consistency",
|
|
5147
|
+
"related_files": [
|
|
5148
|
+
"src/cli.ts",
|
|
5149
|
+
"src/logger.ts"
|
|
5150
|
+
],
|
|
5151
|
+
"evidence": [
|
|
5152
|
+
"Watch reload path does `server.reset(); await server.load(rulesPath);` inside a try/catch and only logs on error (src/cli.ts).",
|
|
5153
|
+
"If `server.load` throws, prior rules are already cleared and the server continues running with an empty rule set, with no rollback (src/cli.ts)."
|
|
5154
|
+
],
|
|
5155
|
+
"suggestion": "Load into a temporary ruleset or only call `reset()` after a successful load; on failure, preserve the previous rules and log the error with context.",
|
|
5156
|
+
"reasoning": ""
|
|
5157
|
+
}
|
|
5158
|
+
}
|
|
5159
|
+
},
|
|
5160
|
+
"review::.::holistic::abstraction_fitness::sequence_rule_duplication::f55570a3": {
|
|
5161
|
+
"id": "review::.::holistic::abstraction_fitness::sequence_rule_duplication::f55570a3",
|
|
5162
|
+
"detector": "review",
|
|
5163
|
+
"file": ".",
|
|
5164
|
+
"tier": 3,
|
|
5165
|
+
"confidence": "high",
|
|
5166
|
+
"summary": "Sequence rule construction is duplicated across MockServer and loader, risking drift.",
|
|
5167
|
+
"detail": {
|
|
5168
|
+
"holistic": true,
|
|
5169
|
+
"dimension": "abstraction_fitness",
|
|
5170
|
+
"related_files": [
|
|
5171
|
+
"src/mock-server.ts",
|
|
5172
|
+
"src/loader.ts",
|
|
5173
|
+
"src/rule-engine.ts"
|
|
5174
|
+
],
|
|
5175
|
+
"evidence": [
|
|
5176
|
+
"src/mock-server.ts when().replySequence() maps entries, calls createSequenceResolver, mutates rule.resolve and rule.remaining.",
|
|
5177
|
+
"src/loader.ts addSequenceRule() performs the same mapping/resolve/remaining steps with a slightly different entry shape."
|
|
5178
|
+
],
|
|
5179
|
+
"suggestion": "Extract a shared helper (e.g., in src/rule-engine.ts) that accepts normalized sequence steps and applies createSequenceResolver + remaining, then reuse it from both MockServer and loader.",
|
|
5180
|
+
"reasoning": ""
|
|
5181
|
+
},
|
|
5182
|
+
"status": "wontfix",
|
|
5183
|
+
"note": "Intentional design for a test utility",
|
|
5184
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5185
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5186
|
+
"resolved_at": "2026-03-15T19:15:20+00:00",
|
|
5187
|
+
"reopen_count": 0,
|
|
5188
|
+
"lang": "typescript",
|
|
5189
|
+
"suppressed": false,
|
|
5190
|
+
"suppressed_at": null,
|
|
5191
|
+
"suppression_pattern": null,
|
|
5192
|
+
"resolution_attestation": {
|
|
5193
|
+
"kind": "manual",
|
|
5194
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
|
|
5195
|
+
"attested_at": "2026-03-15T19:15:20+00:00",
|
|
5196
|
+
"scan_verified": false
|
|
5197
|
+
},
|
|
5198
|
+
"wontfix_scan_count": 13,
|
|
5199
|
+
"wontfix_snapshot": {
|
|
5200
|
+
"captured_at": "2026-03-15T19:15:20+00:00",
|
|
5201
|
+
"scan_count": 13,
|
|
5202
|
+
"tier": 3,
|
|
5203
|
+
"confidence": "high",
|
|
5204
|
+
"detail": {
|
|
5205
|
+
"holistic": true,
|
|
5206
|
+
"dimension": "abstraction_fitness",
|
|
5207
|
+
"related_files": [
|
|
5208
|
+
"src/mock-server.ts",
|
|
5209
|
+
"src/loader.ts",
|
|
5210
|
+
"src/rule-engine.ts"
|
|
5211
|
+
],
|
|
5212
|
+
"evidence": [
|
|
5213
|
+
"src/mock-server.ts when().replySequence() maps entries, calls createSequenceResolver, mutates rule.resolve and rule.remaining.",
|
|
5214
|
+
"src/loader.ts addSequenceRule() performs the same mapping/resolve/remaining steps with a slightly different entry shape."
|
|
5215
|
+
],
|
|
5216
|
+
"suggestion": "Extract a shared helper (e.g., in src/rule-engine.ts) that accepts normalized sequence steps and applies createSequenceResolver + remaining, then reuse it from both MockServer and loader.",
|
|
5217
|
+
"reasoning": ""
|
|
5218
|
+
}
|
|
5219
|
+
}
|
|
5220
|
+
},
|
|
5221
|
+
"review::.::holistic::mid_level_elegance::format_registry_split::07d3f4a8": {
|
|
5222
|
+
"id": "review::.::holistic::mid_level_elegance::format_registry_split::07d3f4a8",
|
|
5223
|
+
"detector": "review",
|
|
5224
|
+
"file": ".",
|
|
5225
|
+
"tier": 3,
|
|
5226
|
+
"confidence": "medium",
|
|
5227
|
+
"summary": "CLI hard-codes endpoints while MockServer derives routes from format modules.",
|
|
5228
|
+
"detail": {
|
|
5229
|
+
"holistic": true,
|
|
5230
|
+
"dimension": "mid_level_elegance",
|
|
5231
|
+
"related_files": [
|
|
5232
|
+
"src/mock-server.ts",
|
|
5233
|
+
"src/cli.ts"
|
|
5234
|
+
],
|
|
5235
|
+
"evidence": [
|
|
5236
|
+
"src/mock-server.ts registers routes by iterating formats[] with per-format route values.",
|
|
5237
|
+
"src/cli.ts prints a static endpoints list string that must be updated manually."
|
|
5238
|
+
],
|
|
5239
|
+
"suggestion": "Expose a single formats registry (or route list) and have the CLI render endpoints from it, avoiding cross-module drift.",
|
|
5240
|
+
"reasoning": ""
|
|
5241
|
+
},
|
|
5242
|
+
"status": "wontfix",
|
|
5243
|
+
"note": "Intentional design for a test utility",
|
|
5244
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5245
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5246
|
+
"resolved_at": "2026-03-15T19:16:02+00:00",
|
|
5247
|
+
"reopen_count": 0,
|
|
5248
|
+
"lang": "typescript",
|
|
5249
|
+
"suppressed": false,
|
|
5250
|
+
"suppressed_at": null,
|
|
5251
|
+
"suppression_pattern": null,
|
|
5252
|
+
"resolution_attestation": {
|
|
5253
|
+
"kind": "manual",
|
|
5254
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
|
|
5255
|
+
"attested_at": "2026-03-15T19:16:02+00:00",
|
|
5256
|
+
"scan_verified": false
|
|
5257
|
+
},
|
|
5258
|
+
"wontfix_scan_count": 13,
|
|
5259
|
+
"wontfix_snapshot": {
|
|
5260
|
+
"captured_at": "2026-03-15T19:16:02+00:00",
|
|
5261
|
+
"scan_count": 13,
|
|
5262
|
+
"tier": 3,
|
|
5263
|
+
"confidence": "medium",
|
|
5264
|
+
"detail": {
|
|
5265
|
+
"holistic": true,
|
|
5266
|
+
"dimension": "mid_level_elegance",
|
|
5267
|
+
"related_files": [
|
|
5268
|
+
"src/mock-server.ts",
|
|
5269
|
+
"src/cli.ts"
|
|
5270
|
+
],
|
|
5271
|
+
"evidence": [
|
|
5272
|
+
"src/mock-server.ts registers routes by iterating formats[] with per-format route values.",
|
|
5273
|
+
"src/cli.ts prints a static endpoints list string that must be updated manually."
|
|
5274
|
+
],
|
|
5275
|
+
"suggestion": "Expose a single formats registry (or route list) and have the CLI render endpoints from it, avoiding cross-module drift.",
|
|
5276
|
+
"reasoning": ""
|
|
5277
|
+
}
|
|
5278
|
+
}
|
|
5279
|
+
},
|
|
5280
|
+
"review::.::holistic::api_surface_coherence::lax_numeric_parsing::0880283b": {
|
|
5281
|
+
"id": "review::.::holistic::api_surface_coherence::lax_numeric_parsing::0880283b",
|
|
5282
|
+
"detector": "review",
|
|
5283
|
+
"file": ".",
|
|
5284
|
+
"tier": 3,
|
|
5285
|
+
"confidence": "high",
|
|
5286
|
+
"summary": "Numeric validators accept non-numeric suffixes due to parseInt behavior",
|
|
5287
|
+
"detail": {
|
|
5288
|
+
"holistic": true,
|
|
5289
|
+
"dimension": "api_surface_coherence",
|
|
5290
|
+
"related_files": [
|
|
5291
|
+
"src/cli-validators.ts"
|
|
5292
|
+
],
|
|
5293
|
+
"evidence": [
|
|
5294
|
+
"parsePort/parseChunkSize/parseLatency use parseInt and only check isNaN and range, so inputs like \"10abc\" or \"1.5\" pass as 10 or 1."
|
|
5295
|
+
],
|
|
5296
|
+
"suggestion": "Validate with a strict digit regex (e.g., `/^\\d+$/`) and use `Number(value)` + `Number.isInteger` before range checks.",
|
|
5297
|
+
"reasoning": ""
|
|
5298
|
+
},
|
|
5299
|
+
"status": "fixed",
|
|
5300
|
+
"note": "Replaced parseInt with strict digit regex + Number()",
|
|
5301
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5302
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5303
|
+
"resolved_at": "2026-03-15T19:15:19+00:00",
|
|
5304
|
+
"reopen_count": 0,
|
|
5305
|
+
"lang": "typescript",
|
|
5306
|
+
"suppressed": false,
|
|
5307
|
+
"suppressed_at": null,
|
|
5308
|
+
"suppression_pattern": null,
|
|
5309
|
+
"resolution_attestation": {
|
|
5310
|
+
"kind": "manual",
|
|
5311
|
+
"text": "I have actually replaced parseInt with a parseStrictInt helper using /^\\d+$/ regex and I am not gaming the score by resolving without fixing.",
|
|
5312
|
+
"attested_at": "2026-03-15T19:15:19+00:00",
|
|
5313
|
+
"scan_verified": false
|
|
5314
|
+
}
|
|
5315
|
+
},
|
|
5316
|
+
"review::.::holistic::api_surface_coherence::log_level_guard_proto_keys::77402633": {
|
|
5317
|
+
"id": "review::.::holistic::api_surface_coherence::log_level_guard_proto_keys::77402633",
|
|
5318
|
+
"detector": "review",
|
|
5319
|
+
"file": ".",
|
|
5320
|
+
"tier": 3,
|
|
5321
|
+
"confidence": "high",
|
|
5322
|
+
"summary": "Log-level guard accepts prototype keys because it uses `in`",
|
|
5323
|
+
"detail": {
|
|
5324
|
+
"holistic": true,
|
|
5325
|
+
"dimension": "api_surface_coherence",
|
|
5326
|
+
"related_files": [
|
|
5327
|
+
"src/cli-validators.ts"
|
|
5328
|
+
],
|
|
5329
|
+
"evidence": [
|
|
5330
|
+
"`isLogLevel` uses `value in LEVEL_PRIORITY`, which returns true for inherited keys like \"toString\"."
|
|
5331
|
+
],
|
|
5332
|
+
"suggestion": "Use `Object.hasOwn(LEVEL_PRIORITY, value)` or `VALID_LOG_LEVELS.includes(value as LogLevel)` to restrict to real log levels.",
|
|
5333
|
+
"reasoning": ""
|
|
5334
|
+
},
|
|
5335
|
+
"status": "fixed",
|
|
5336
|
+
"note": "Changed 'in' to Object.hasOwn()",
|
|
5337
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5338
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5339
|
+
"resolved_at": "2026-03-15T19:15:19+00:00",
|
|
5340
|
+
"reopen_count": 0,
|
|
5341
|
+
"lang": "typescript",
|
|
5342
|
+
"suppressed": false,
|
|
5343
|
+
"suppressed_at": null,
|
|
5344
|
+
"suppression_pattern": null,
|
|
5345
|
+
"resolution_attestation": {
|
|
5346
|
+
"kind": "manual",
|
|
5347
|
+
"text": "I have actually replaced the 'in' operator with Object.hasOwn() to avoid prototype key matching and I am not gaming the score by resolving without fixing.",
|
|
5348
|
+
"attested_at": "2026-03-15T19:15:19+00:00",
|
|
5349
|
+
"scan_verified": false
|
|
5350
|
+
}
|
|
5351
|
+
},
|
|
5352
|
+
"review::.::holistic::api_surface_coherence::mixed_sync_async_validators::7fb43161": {
|
|
5353
|
+
"id": "review::.::holistic::api_surface_coherence::mixed_sync_async_validators::7fb43161",
|
|
5354
|
+
"detector": "review",
|
|
5355
|
+
"file": ".",
|
|
5356
|
+
"tier": 3,
|
|
5357
|
+
"confidence": "medium",
|
|
5358
|
+
"summary": "Validator API mixes sync and async functions within the same surface",
|
|
5359
|
+
"detail": {
|
|
5360
|
+
"holistic": true,
|
|
5361
|
+
"dimension": "api_surface_coherence",
|
|
5362
|
+
"related_files": [
|
|
5363
|
+
"src/cli-validators.ts"
|
|
5364
|
+
],
|
|
5365
|
+
"evidence": [
|
|
5366
|
+
"parseHost is async (DNS lookup) while parsePort/parseLogLevel/parseChunkSize/parseLatency are synchronous."
|
|
5367
|
+
],
|
|
5368
|
+
"suggestion": "Either make all validators async (returning Promise) or split DNS resolution into a separate async phase so the core validator API is uniform.",
|
|
5369
|
+
"reasoning": ""
|
|
5370
|
+
},
|
|
5371
|
+
"status": "wontfix",
|
|
5372
|
+
"note": "Intentional design for a test utility",
|
|
5373
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5374
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5375
|
+
"resolved_at": "2026-03-15T19:15:39+00:00",
|
|
5376
|
+
"reopen_count": 0,
|
|
5377
|
+
"lang": "typescript",
|
|
5378
|
+
"suppressed": false,
|
|
5379
|
+
"suppressed_at": null,
|
|
5380
|
+
"suppression_pattern": null,
|
|
5381
|
+
"resolution_attestation": {
|
|
5382
|
+
"kind": "manual",
|
|
5383
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
|
|
5384
|
+
"attested_at": "2026-03-15T19:15:39+00:00",
|
|
5385
|
+
"scan_verified": false
|
|
5386
|
+
},
|
|
5387
|
+
"wontfix_scan_count": 13,
|
|
5388
|
+
"wontfix_snapshot": {
|
|
5389
|
+
"captured_at": "2026-03-15T19:15:39+00:00",
|
|
5390
|
+
"scan_count": 13,
|
|
5391
|
+
"tier": 3,
|
|
5392
|
+
"confidence": "medium",
|
|
5393
|
+
"detail": {
|
|
5394
|
+
"holistic": true,
|
|
5395
|
+
"dimension": "api_surface_coherence",
|
|
5396
|
+
"related_files": [
|
|
5397
|
+
"src/cli-validators.ts"
|
|
5398
|
+
],
|
|
5399
|
+
"evidence": [
|
|
5400
|
+
"parseHost is async (DNS lookup) while parsePort/parseLogLevel/parseChunkSize/parseLatency are synchronous."
|
|
5401
|
+
],
|
|
5402
|
+
"suggestion": "Either make all validators async (returning Promise) or split DNS resolution into a separate async phase so the core validator API is uniform.",
|
|
5403
|
+
"reasoning": ""
|
|
5404
|
+
}
|
|
5405
|
+
}
|
|
5406
|
+
},
|
|
5407
|
+
"review::.::holistic::ai_generated_debt::restating_comments_on_types::06fc15f4": {
|
|
5408
|
+
"id": "review::.::holistic::ai_generated_debt::restating_comments_on_types::06fc15f4",
|
|
5409
|
+
"detector": "review",
|
|
5410
|
+
"file": ".",
|
|
5411
|
+
"tier": 3,
|
|
5412
|
+
"confidence": "medium",
|
|
5413
|
+
"summary": "Comments restate obvious type semantics, adding low-signal noise",
|
|
5414
|
+
"detail": {
|
|
5415
|
+
"holistic": true,
|
|
5416
|
+
"dimension": "ai_generated_debt",
|
|
5417
|
+
"related_files": [
|
|
5418
|
+
"src/types/request.ts",
|
|
5419
|
+
"src/types/rule.ts"
|
|
5420
|
+
],
|
|
5421
|
+
"evidence": [
|
|
5422
|
+
"src/types/request.ts comments explain fields like lastMessage/systemMessage/toolNames in a way that mirrors the field name.",
|
|
5423
|
+
"src/types/rule.ts Match comment block describes each union variant in a way that repeats the type definition."
|
|
5424
|
+
],
|
|
5425
|
+
"suggestion": "Trim comments to only convey non-obvious constraints or behavioral nuances; remove restatements of field names or type unions.",
|
|
5426
|
+
"reasoning": ""
|
|
5427
|
+
},
|
|
5428
|
+
"status": "wontfix",
|
|
5429
|
+
"note": "Intentional design for a test utility",
|
|
5430
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5431
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5432
|
+
"resolved_at": "2026-03-15T19:15:39+00:00",
|
|
5433
|
+
"reopen_count": 0,
|
|
5434
|
+
"lang": "typescript",
|
|
5435
|
+
"suppressed": false,
|
|
5436
|
+
"suppressed_at": null,
|
|
5437
|
+
"suppression_pattern": null,
|
|
5438
|
+
"resolution_attestation": {
|
|
5439
|
+
"kind": "manual",
|
|
5440
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
|
|
5441
|
+
"attested_at": "2026-03-15T19:15:39+00:00",
|
|
5442
|
+
"scan_verified": false
|
|
5443
|
+
},
|
|
5444
|
+
"wontfix_scan_count": 13,
|
|
5445
|
+
"wontfix_snapshot": {
|
|
5446
|
+
"captured_at": "2026-03-15T19:15:39+00:00",
|
|
5447
|
+
"scan_count": 13,
|
|
5448
|
+
"tier": 3,
|
|
5449
|
+
"confidence": "medium",
|
|
5450
|
+
"detail": {
|
|
5451
|
+
"holistic": true,
|
|
5452
|
+
"dimension": "ai_generated_debt",
|
|
5453
|
+
"related_files": [
|
|
5454
|
+
"src/types/request.ts",
|
|
5455
|
+
"src/types/rule.ts"
|
|
5456
|
+
],
|
|
5457
|
+
"evidence": [
|
|
5458
|
+
"src/types/request.ts comments explain fields like lastMessage/systemMessage/toolNames in a way that mirrors the field name.",
|
|
5459
|
+
"src/types/rule.ts Match comment block describes each union variant in a way that repeats the type definition."
|
|
5460
|
+
],
|
|
5461
|
+
"suggestion": "Trim comments to only convey non-obvious constraints or behavioral nuances; remove restatements of field names or type unions.",
|
|
5462
|
+
"reasoning": ""
|
|
5463
|
+
}
|
|
5464
|
+
}
|
|
5465
|
+
},
|
|
5466
|
+
"review::.::holistic::low_level_elegance::redundant_optional_undefined::0d14d994": {
|
|
5467
|
+
"id": "review::.::holistic::low_level_elegance::redundant_optional_undefined::0d14d994",
|
|
5468
|
+
"detector": "review",
|
|
5469
|
+
"file": ".",
|
|
5470
|
+
"tier": 3,
|
|
5471
|
+
"confidence": "high",
|
|
5472
|
+
"summary": "Optional fields redundantly include `| undefined`, creating inconsistency and noise",
|
|
5473
|
+
"detail": {
|
|
5474
|
+
"holistic": true,
|
|
5475
|
+
"dimension": "low_level_elegance",
|
|
5476
|
+
"related_files": [
|
|
5477
|
+
"src/types/request.ts",
|
|
5478
|
+
"src/types/rule.ts"
|
|
5479
|
+
],
|
|
5480
|
+
"evidence": [
|
|
5481
|
+
"src/types/request.ts declares `tools?: readonly ToolDef[] | undefined` and `toolCallId?: string | undefined`, which are already implied by `?`.",
|
|
5482
|
+
"src/types/rule.ts uses `?:` without explicit `| undefined`, so the style is inconsistent across related type modules."
|
|
5483
|
+
],
|
|
5484
|
+
"suggestion": "Remove explicit `| undefined` from optional properties in src/types/request.ts to align with TypeScript conventions and the style used in src/types/rule.ts.",
|
|
5485
|
+
"reasoning": ""
|
|
5486
|
+
},
|
|
5487
|
+
"status": "wontfix",
|
|
5488
|
+
"note": "Intentional design for a test utility",
|
|
5489
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5490
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5491
|
+
"resolved_at": "2026-03-15T19:15:21+00:00",
|
|
5492
|
+
"reopen_count": 0,
|
|
5493
|
+
"lang": "typescript",
|
|
5494
|
+
"suppressed": false,
|
|
5495
|
+
"suppressed_at": null,
|
|
5496
|
+
"suppression_pattern": null,
|
|
5497
|
+
"resolution_attestation": {
|
|
5498
|
+
"kind": "manual",
|
|
5499
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
|
|
5500
|
+
"attested_at": "2026-03-15T19:15:21+00:00",
|
|
5501
|
+
"scan_verified": false
|
|
5502
|
+
},
|
|
5503
|
+
"wontfix_scan_count": 13,
|
|
5504
|
+
"wontfix_snapshot": {
|
|
5505
|
+
"captured_at": "2026-03-15T19:15:21+00:00",
|
|
5506
|
+
"scan_count": 13,
|
|
5507
|
+
"tier": 3,
|
|
5508
|
+
"confidence": "high",
|
|
5509
|
+
"detail": {
|
|
5510
|
+
"holistic": true,
|
|
5511
|
+
"dimension": "low_level_elegance",
|
|
5512
|
+
"related_files": [
|
|
5513
|
+
"src/types/request.ts",
|
|
5514
|
+
"src/types/rule.ts"
|
|
5515
|
+
],
|
|
5516
|
+
"evidence": [
|
|
5517
|
+
"src/types/request.ts declares `tools?: readonly ToolDef[] | undefined` and `toolCallId?: string | undefined`, which are already implied by `?`.",
|
|
5518
|
+
"src/types/rule.ts uses `?:` without explicit `| undefined`, so the style is inconsistent across related type modules."
|
|
5519
|
+
],
|
|
5520
|
+
"suggestion": "Remove explicit `| undefined` from optional properties in src/types/request.ts to align with TypeScript conventions and the style used in src/types/rule.ts.",
|
|
5521
|
+
"reasoning": ""
|
|
5522
|
+
}
|
|
5523
|
+
}
|
|
5524
|
+
},
|
|
5525
|
+
"review::.::holistic::package_organization::flat_src_root_mixed_concerns::ff92e932": {
|
|
5526
|
+
"id": "review::.::holistic::package_organization::flat_src_root_mixed_concerns::ff92e932",
|
|
5527
|
+
"detector": "review",
|
|
5528
|
+
"file": ".",
|
|
5529
|
+
"tier": 3,
|
|
5530
|
+
"confidence": "high",
|
|
5531
|
+
"summary": "`src/` is a flat folder with mixed CLI/runtime/history concerns, obscuring ownership boundaries.",
|
|
5532
|
+
"detail": {
|
|
5533
|
+
"holistic": true,
|
|
5534
|
+
"dimension": "package_organization",
|
|
5535
|
+
"related_files": [
|
|
5536
|
+
"src/cli.ts",
|
|
5537
|
+
"src/history.ts",
|
|
5538
|
+
"src/cli-validators.ts"
|
|
5539
|
+
],
|
|
5540
|
+
"evidence": [
|
|
5541
|
+
"`holistic_context.structure.directory_profiles` lists 11 files in `src/` spanning CLI (`cli.ts`), history/state (`history.ts`), and core runtime (`mock-server.ts`, `rule-engine.ts`).",
|
|
5542
|
+
"`holistic_context.structure.coupling_matrix` shows `src/ \u2194 src/formats/` bidirectional imports, which is a typical signal of missing subpackage boundaries."
|
|
5543
|
+
],
|
|
5544
|
+
"suggestion": "Staged reorg plan: 1) Create `src/cli/` and `src/server/` folders. 2) Move CLI files first: `src/cli.ts` \u2192 `src/cli/index.ts`, `src/cli-validators.ts` \u2192 `src/cli/validators.ts`. 3) Move runtime/state next: `src/history.ts` \u2192 `src/server/history.ts` (and later other runtime files like `mock-server.ts`, `rule-engine.ts` if desired). 4) Update import paths using `rg \"./cli-validators|./history\" src test` and edit imports to new locations. 5) Validate with `npm test` (vitest) and, if available, `npm run build` to ensure path resolution is correct.",
|
|
5545
|
+
"reasoning": ""
|
|
5546
|
+
},
|
|
5547
|
+
"status": "wontfix",
|
|
5548
|
+
"note": "Intentional design for a test utility",
|
|
5549
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5550
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5551
|
+
"resolved_at": "2026-03-15T19:15:39+00:00",
|
|
5552
|
+
"reopen_count": 0,
|
|
5553
|
+
"lang": "typescript",
|
|
5554
|
+
"suppressed": false,
|
|
5555
|
+
"suppressed_at": null,
|
|
5556
|
+
"suppression_pattern": null,
|
|
5557
|
+
"resolution_attestation": {
|
|
5558
|
+
"kind": "manual",
|
|
5559
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
|
|
5560
|
+
"attested_at": "2026-03-15T19:15:39+00:00",
|
|
5561
|
+
"scan_verified": false
|
|
5562
|
+
},
|
|
5563
|
+
"wontfix_scan_count": 13,
|
|
5564
|
+
"wontfix_snapshot": {
|
|
5565
|
+
"captured_at": "2026-03-15T19:15:39+00:00",
|
|
5566
|
+
"scan_count": 13,
|
|
5567
|
+
"tier": 3,
|
|
5568
|
+
"confidence": "high",
|
|
5569
|
+
"detail": {
|
|
5570
|
+
"holistic": true,
|
|
5571
|
+
"dimension": "package_organization",
|
|
5572
|
+
"related_files": [
|
|
5573
|
+
"src/cli.ts",
|
|
5574
|
+
"src/history.ts",
|
|
5575
|
+
"src/cli-validators.ts"
|
|
5576
|
+
],
|
|
5577
|
+
"evidence": [
|
|
5578
|
+
"`holistic_context.structure.directory_profiles` lists 11 files in `src/` spanning CLI (`cli.ts`), history/state (`history.ts`), and core runtime (`mock-server.ts`, `rule-engine.ts`).",
|
|
5579
|
+
"`holistic_context.structure.coupling_matrix` shows `src/ \u2194 src/formats/` bidirectional imports, which is a typical signal of missing subpackage boundaries."
|
|
5580
|
+
],
|
|
5581
|
+
"suggestion": "Staged reorg plan: 1) Create `src/cli/` and `src/server/` folders. 2) Move CLI files first: `src/cli.ts` \u2192 `src/cli/index.ts`, `src/cli-validators.ts` \u2192 `src/cli/validators.ts`. 3) Move runtime/state next: `src/history.ts` \u2192 `src/server/history.ts` (and later other runtime files like `mock-server.ts`, `rule-engine.ts` if desired). 4) Update import paths using `rg \"./cli-validators|./history\" src test` and edit imports to new locations. 5) Validate with `npm test` (vitest) and, if available, `npm run build` to ensure path resolution is correct.",
|
|
5582
|
+
"reasoning": ""
|
|
5583
|
+
}
|
|
5584
|
+
}
|
|
5585
|
+
},
|
|
5586
|
+
"review::.::holistic::package_organization::cli_validators_not_colocated::2a5b7810": {
|
|
5587
|
+
"id": "review::.::holistic::package_organization::cli_validators_not_colocated::2a5b7810",
|
|
5588
|
+
"detector": "review",
|
|
5589
|
+
"file": ".",
|
|
5590
|
+
"tier": 3,
|
|
5591
|
+
"confidence": "high",
|
|
5592
|
+
"summary": "CLI-only validators live at `src/` root despite being used only by the CLI entrypoint.",
|
|
5593
|
+
"detail": {
|
|
5594
|
+
"holistic": true,
|
|
5595
|
+
"dimension": "package_organization",
|
|
5596
|
+
"related_files": [
|
|
5597
|
+
"src/cli.ts",
|
|
5598
|
+
"src/cli-validators.ts",
|
|
5599
|
+
"test/cli-validators.test.ts"
|
|
5600
|
+
],
|
|
5601
|
+
"evidence": [
|
|
5602
|
+
"`src/cli-validators.ts` is imported only by `src/cli.ts` and its dedicated test (`test/cli-validators.test.ts`).",
|
|
5603
|
+
"No other modules consume `cli-validators.ts`, indicating it belongs inside a CLI-focused subpackage rather than the root."
|
|
5604
|
+
],
|
|
5605
|
+
"suggestion": "Staged reorg plan: 1) Create `src/cli/`. 2) Move `src/cli-validators.ts` \u2192 `src/cli/validators.ts`. 3) Update `src/cli.ts` to import from `./cli/validators.js` (or `./cli/validators.js` after moving `cli.ts` as part of a broader CLI folder move). 4) Update `test/cli-validators.test.ts` to import from `../src/cli/validators.js`. 5) Validate with `npm test` to ensure CLI parsing tests still pass.",
|
|
5606
|
+
"reasoning": ""
|
|
5607
|
+
},
|
|
5608
|
+
"status": "wontfix",
|
|
5609
|
+
"note": "Intentional design for a test utility",
|
|
5610
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5611
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5612
|
+
"resolved_at": "2026-03-15T19:15:21+00:00",
|
|
5613
|
+
"reopen_count": 0,
|
|
5614
|
+
"lang": "typescript",
|
|
5615
|
+
"suppressed": false,
|
|
5616
|
+
"suppressed_at": null,
|
|
5617
|
+
"suppression_pattern": null,
|
|
5618
|
+
"resolution_attestation": {
|
|
5619
|
+
"kind": "manual",
|
|
5620
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
|
|
5621
|
+
"attested_at": "2026-03-15T19:15:21+00:00",
|
|
5622
|
+
"scan_verified": false
|
|
5623
|
+
},
|
|
5624
|
+
"wontfix_scan_count": 13,
|
|
5625
|
+
"wontfix_snapshot": {
|
|
5626
|
+
"captured_at": "2026-03-15T19:15:21+00:00",
|
|
5627
|
+
"scan_count": 13,
|
|
5628
|
+
"tier": 3,
|
|
5629
|
+
"confidence": "high",
|
|
5630
|
+
"detail": {
|
|
5631
|
+
"holistic": true,
|
|
5632
|
+
"dimension": "package_organization",
|
|
5633
|
+
"related_files": [
|
|
5634
|
+
"src/cli.ts",
|
|
5635
|
+
"src/cli-validators.ts",
|
|
5636
|
+
"test/cli-validators.test.ts"
|
|
5637
|
+
],
|
|
5638
|
+
"evidence": [
|
|
5639
|
+
"`src/cli-validators.ts` is imported only by `src/cli.ts` and its dedicated test (`test/cli-validators.test.ts`).",
|
|
5640
|
+
"No other modules consume `cli-validators.ts`, indicating it belongs inside a CLI-focused subpackage rather than the root."
|
|
5641
|
+
],
|
|
5642
|
+
"suggestion": "Staged reorg plan: 1) Create `src/cli/`. 2) Move `src/cli-validators.ts` \u2192 `src/cli/validators.ts`. 3) Update `src/cli.ts` to import from `./cli/validators.js` (or `./cli/validators.js` after moving `cli.ts` as part of a broader CLI folder move). 4) Update `test/cli-validators.test.ts` to import from `../src/cli/validators.js`. 5) Validate with `npm test` to ensure CLI parsing tests still pass.",
|
|
5643
|
+
"reasoning": ""
|
|
5644
|
+
}
|
|
5645
|
+
}
|
|
5646
|
+
},
|
|
5647
|
+
"review::.::holistic::high_level_elegance::ownership_boundaries_blurred_by_root_layout::86a83f75": {
|
|
5648
|
+
"id": "review::.::holistic::high_level_elegance::ownership_boundaries_blurred_by_root_layout::86a83f75",
|
|
5649
|
+
"detector": "review",
|
|
5650
|
+
"file": ".",
|
|
5651
|
+
"tier": 3,
|
|
5652
|
+
"confidence": "medium",
|
|
5653
|
+
"summary": "Top-level decomposition mixes CLI and runtime concerns, weakening domain-aligned ownership.",
|
|
5654
|
+
"detail": {
|
|
5655
|
+
"holistic": true,
|
|
5656
|
+
"dimension": "high_level_elegance",
|
|
5657
|
+
"related_files": [
|
|
5658
|
+
"src/cli.ts",
|
|
5659
|
+
"src/history.ts"
|
|
5660
|
+
],
|
|
5661
|
+
"evidence": [
|
|
5662
|
+
"CLI entry (`src/cli.ts`) and runtime/state (`src/history.ts`) sit side-by-side at the root, making the top-level package map less expressive than the format-specific subfolders under `src/formats/*`.",
|
|
5663
|
+
"The flat root layout requires readers to scan files to infer domains instead of discovering boundaries through folder structure."
|
|
5664
|
+
],
|
|
5665
|
+
"suggestion": "Staged reorg plan: 1) Introduce explicit domain folders such as `src/cli/` and `src/runtime/` (or `src/server/`). 2) Move `src/cli.ts` (and `src/cli-validators.ts`) into `src/cli/` first, then move `src/history.ts` into `src/runtime/` alongside related runtime modules. 3) Update imports via `rg \"\\./cli|\\./history\" src test` and edit to new paths. 4) Validate with `npm test` and, if applicable, `npm run build` to confirm the public entrypoints still resolve correctly.",
|
|
5666
|
+
"reasoning": ""
|
|
5667
|
+
},
|
|
5668
|
+
"status": "wontfix",
|
|
5669
|
+
"note": "Intentional design for a test utility",
|
|
5670
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5671
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5672
|
+
"resolved_at": "2026-03-15T19:16:02+00:00",
|
|
5673
|
+
"reopen_count": 0,
|
|
5674
|
+
"lang": "typescript",
|
|
5675
|
+
"suppressed": false,
|
|
5676
|
+
"suppressed_at": null,
|
|
5677
|
+
"suppression_pattern": null,
|
|
5678
|
+
"resolution_attestation": {
|
|
5679
|
+
"kind": "manual",
|
|
5680
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
|
|
5681
|
+
"attested_at": "2026-03-15T19:16:02+00:00",
|
|
5682
|
+
"scan_verified": false
|
|
5683
|
+
},
|
|
5684
|
+
"wontfix_scan_count": 13,
|
|
5685
|
+
"wontfix_snapshot": {
|
|
5686
|
+
"captured_at": "2026-03-15T19:16:02+00:00",
|
|
5687
|
+
"scan_count": 13,
|
|
5688
|
+
"tier": 3,
|
|
5689
|
+
"confidence": "medium",
|
|
5690
|
+
"detail": {
|
|
5691
|
+
"holistic": true,
|
|
5692
|
+
"dimension": "high_level_elegance",
|
|
5693
|
+
"related_files": [
|
|
5694
|
+
"src/cli.ts",
|
|
5695
|
+
"src/history.ts"
|
|
5696
|
+
],
|
|
5697
|
+
"evidence": [
|
|
5698
|
+
"CLI entry (`src/cli.ts`) and runtime/state (`src/history.ts`) sit side-by-side at the root, making the top-level package map less expressive than the format-specific subfolders under `src/formats/*`.",
|
|
5699
|
+
"The flat root layout requires readers to scan files to infer domains instead of discovering boundaries through folder structure."
|
|
5700
|
+
],
|
|
5701
|
+
"suggestion": "Staged reorg plan: 1) Introduce explicit domain folders such as `src/cli/` and `src/runtime/` (or `src/server/`). 2) Move `src/cli.ts` (and `src/cli-validators.ts`) into `src/cli/` first, then move `src/history.ts` into `src/runtime/` alongside related runtime modules. 3) Update imports via `rg \"\\./cli|\\./history\" src test` and edit to new paths. 4) Validate with `npm test` and, if applicable, `npm run build` to confirm the public entrypoints still resolve correctly.",
|
|
5702
|
+
"reasoning": ""
|
|
5703
|
+
}
|
|
5704
|
+
}
|
|
5705
|
+
},
|
|
5706
|
+
"review::.::holistic::cross_module_architecture::types_barrel_coupling_hub::0586c378": {
|
|
5707
|
+
"id": "review::.::holistic::cross_module_architecture::types_barrel_coupling_hub::0586c378",
|
|
5708
|
+
"detector": "review",
|
|
5709
|
+
"file": ".",
|
|
5710
|
+
"tier": 3,
|
|
5711
|
+
"confidence": "medium",
|
|
5712
|
+
"summary": "Root types barrel concentrates multiple domains and amplifies cross-module coupling.",
|
|
5713
|
+
"detail": {
|
|
5714
|
+
"holistic": true,
|
|
5715
|
+
"dimension": "cross_module_architecture",
|
|
5716
|
+
"related_files": [
|
|
5717
|
+
"src/types.ts",
|
|
5718
|
+
"src/formats/types.ts",
|
|
5719
|
+
"src/formats/request-helpers.ts"
|
|
5720
|
+
],
|
|
5721
|
+
"evidence": [
|
|
5722
|
+
"src/types.ts re-exports request/reply/rule types into one root barrel, and format modules import from ../types.js rather than their specific domain files.",
|
|
5723
|
+
"This pattern makes any change to request/reply/rule type boundaries ripple through a single high-fan-in module."
|
|
5724
|
+
],
|
|
5725
|
+
"suggestion": "Split the barrel into domain entry points (for example: `src/types/request.ts`, `src/types/reply.ts`, `src/types/rule.ts`) and update format imports to target the specific domain paths; keep `src/types.ts` only for external package exports if needed, and avoid internal imports from it.",
|
|
5726
|
+
"reasoning": ""
|
|
5727
|
+
},
|
|
5728
|
+
"status": "wontfix",
|
|
5729
|
+
"note": "Intentional design for a test utility",
|
|
5730
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5731
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5732
|
+
"resolved_at": "2026-03-15T19:15:40+00:00",
|
|
5733
|
+
"reopen_count": 0,
|
|
5734
|
+
"lang": "typescript",
|
|
5735
|
+
"suppressed": false,
|
|
5736
|
+
"suppressed_at": null,
|
|
5737
|
+
"suppression_pattern": null,
|
|
5738
|
+
"resolution_attestation": {
|
|
5739
|
+
"kind": "manual",
|
|
5740
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
|
|
5741
|
+
"attested_at": "2026-03-15T19:15:40+00:00",
|
|
5742
|
+
"scan_verified": false
|
|
5743
|
+
},
|
|
5744
|
+
"wontfix_scan_count": 13,
|
|
5745
|
+
"wontfix_snapshot": {
|
|
5746
|
+
"captured_at": "2026-03-15T19:15:40+00:00",
|
|
5747
|
+
"scan_count": 13,
|
|
5748
|
+
"tier": 3,
|
|
5749
|
+
"confidence": "medium",
|
|
5750
|
+
"detail": {
|
|
5751
|
+
"holistic": true,
|
|
5752
|
+
"dimension": "cross_module_architecture",
|
|
5753
|
+
"related_files": [
|
|
5754
|
+
"src/types.ts",
|
|
5755
|
+
"src/formats/types.ts",
|
|
5756
|
+
"src/formats/request-helpers.ts"
|
|
5757
|
+
],
|
|
5758
|
+
"evidence": [
|
|
5759
|
+
"src/types.ts re-exports request/reply/rule types into one root barrel, and format modules import from ../types.js rather than their specific domain files.",
|
|
5760
|
+
"This pattern makes any change to request/reply/rule type boundaries ripple through a single high-fan-in module."
|
|
5761
|
+
],
|
|
5762
|
+
"suggestion": "Split the barrel into domain entry points (for example: `src/types/request.ts`, `src/types/reply.ts`, `src/types/rule.ts`) and update format imports to target the specific domain paths; keep `src/types.ts` only for external package exports if needed, and avoid internal imports from it.",
|
|
5763
|
+
"reasoning": ""
|
|
5764
|
+
}
|
|
5765
|
+
}
|
|
5766
|
+
},
|
|
5767
|
+
"review::.::holistic::high_level_elegance::format_layer_owns_request_construction::24d2acb9": {
|
|
5768
|
+
"id": "review::.::holistic::high_level_elegance::format_layer_owns_request_construction::24d2acb9",
|
|
5769
|
+
"detector": "review",
|
|
5770
|
+
"file": ".",
|
|
5771
|
+
"tier": 3,
|
|
5772
|
+
"confidence": "medium",
|
|
5773
|
+
"summary": "Format layer builds the core MockRequest, blurring ownership of request lifecycle.",
|
|
5774
|
+
"detail": {
|
|
5775
|
+
"holistic": true,
|
|
5776
|
+
"dimension": "high_level_elegance",
|
|
5777
|
+
"related_files": [
|
|
5778
|
+
"src/formats/request-helpers.ts",
|
|
5779
|
+
"src/formats/types.ts",
|
|
5780
|
+
"src/types.ts"
|
|
5781
|
+
],
|
|
5782
|
+
"evidence": [
|
|
5783
|
+
"buildMockRequest in src/formats/request-helpers.ts derives lastMessage/systemMessage/toolNames and sets headers/path defaults, which are core request concerns.",
|
|
5784
|
+
"Format interface in src/formats/types.ts consumes this helper indirectly, keeping request shape tied to the formats package."
|
|
5785
|
+
],
|
|
5786
|
+
"suggestion": "Move MockRequest construction into a core module (for example `src/request/build-mock-request.ts` or `src/core/mock-request.ts`) and have format parsers return a minimal parsed shape; use the core builder to add shared defaults and derived fields.",
|
|
5787
|
+
"reasoning": ""
|
|
5788
|
+
},
|
|
5789
|
+
"status": "wontfix",
|
|
5790
|
+
"note": "Intentional design for a test utility",
|
|
5791
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5792
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5793
|
+
"resolved_at": "2026-03-15T19:15:41+00:00",
|
|
5794
|
+
"reopen_count": 0,
|
|
5795
|
+
"lang": "typescript",
|
|
5796
|
+
"suppressed": false,
|
|
5797
|
+
"suppressed_at": null,
|
|
5798
|
+
"suppression_pattern": null,
|
|
5799
|
+
"resolution_attestation": {
|
|
5800
|
+
"kind": "manual",
|
|
5801
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
|
|
5802
|
+
"attested_at": "2026-03-15T19:15:41+00:00",
|
|
5803
|
+
"scan_verified": false
|
|
5804
|
+
},
|
|
5805
|
+
"wontfix_scan_count": 13,
|
|
5806
|
+
"wontfix_snapshot": {
|
|
5807
|
+
"captured_at": "2026-03-15T19:15:41+00:00",
|
|
5808
|
+
"scan_count": 13,
|
|
5809
|
+
"tier": 3,
|
|
5810
|
+
"confidence": "medium",
|
|
5811
|
+
"detail": {
|
|
5812
|
+
"holistic": true,
|
|
5813
|
+
"dimension": "high_level_elegance",
|
|
5814
|
+
"related_files": [
|
|
5815
|
+
"src/formats/request-helpers.ts",
|
|
5816
|
+
"src/formats/types.ts",
|
|
5817
|
+
"src/types.ts"
|
|
5818
|
+
],
|
|
5819
|
+
"evidence": [
|
|
5820
|
+
"buildMockRequest in src/formats/request-helpers.ts derives lastMessage/systemMessage/toolNames and sets headers/path defaults, which are core request concerns.",
|
|
5821
|
+
"Format interface in src/formats/types.ts consumes this helper indirectly, keeping request shape tied to the formats package."
|
|
5822
|
+
],
|
|
5823
|
+
"suggestion": "Move MockRequest construction into a core module (for example `src/request/build-mock-request.ts` or `src/core/mock-request.ts`) and have format parsers return a minimal parsed shape; use the core builder to add shared defaults and derived fields.",
|
|
5824
|
+
"reasoning": ""
|
|
5825
|
+
}
|
|
5826
|
+
}
|
|
5827
|
+
},
|
|
5828
|
+
"review::.::holistic::package_organization::flat_src_mixed_concerns::ea663f68": {
|
|
5829
|
+
"id": "review::.::holistic::package_organization::flat_src_mixed_concerns::ea663f68",
|
|
5830
|
+
"detector": "review",
|
|
5831
|
+
"file": ".",
|
|
5832
|
+
"tier": 3,
|
|
5833
|
+
"confidence": "high",
|
|
5834
|
+
"summary": "The root src/ directory is a mixed-concern flat folder that hides ownership boundaries.",
|
|
5835
|
+
"detail": {
|
|
5836
|
+
"holistic": true,
|
|
5837
|
+
"dimension": "package_organization",
|
|
5838
|
+
"related_files": [
|
|
5839
|
+
"src/logger.ts",
|
|
5840
|
+
"src/rule-engine.ts",
|
|
5841
|
+
"src/types.ts",
|
|
5842
|
+
"src/cli.ts",
|
|
5843
|
+
"src/mock-server.ts",
|
|
5844
|
+
"src/route-handler.ts",
|
|
5845
|
+
"src/loader.ts"
|
|
5846
|
+
],
|
|
5847
|
+
"evidence": [
|
|
5848
|
+
"holistic_context.structure shows src/ contains 11 production files spanning CLI/server/logging/rules/types, indicating mixed responsibilities in a single directory.",
|
|
5849
|
+
"Core building blocks (logger, rule engine, types) live beside entrypoints, making navigation and change ownership less predictable.",
|
|
5850
|
+
"`src/` contains 11 files across CLI, HTTP server, rule engine, logging, and utilities (directory profile shows `file_count: 11`).",
|
|
5851
|
+
"Coupling shows bidirectional edges between `src/` and `src/formats/`, indicating blurred boundaries at the top level."
|
|
5852
|
+
],
|
|
5853
|
+
"suggestion": "Staged reorg plan: 1) Create target folders `src/core/`, `src/logging/`, and `src/entrypoints/`. 2) Move core building blocks: `git mv src/rule-engine.ts src/core/rule-engine.ts`, `git mv src/types.ts src/core/types.ts`. 3) Move logging: `git mv src/logger.ts src/logging/logger.ts`. 4) Update imports by searching: `rg -n \"from \\\"\\.\\/rule-engine\\\"|from \\\"\\.\\/types\\\"|from \\\"\\.\\/logger\\\"\" src test` and adjust to new paths. 5) Validate with `npm test` and `npm run build`.",
|
|
5854
|
+
"reasoning": ""
|
|
5855
|
+
},
|
|
5856
|
+
"status": "wontfix",
|
|
5857
|
+
"note": "Intentional design for a test utility",
|
|
5858
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5859
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5860
|
+
"resolved_at": "2026-03-15T19:15:22+00:00",
|
|
5861
|
+
"reopen_count": 0,
|
|
5862
|
+
"lang": "typescript",
|
|
5863
|
+
"suppressed": false,
|
|
5864
|
+
"suppressed_at": null,
|
|
5865
|
+
"suppression_pattern": null,
|
|
5866
|
+
"resolution_attestation": {
|
|
5867
|
+
"kind": "manual",
|
|
5868
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
|
|
5869
|
+
"attested_at": "2026-03-15T19:15:22+00:00",
|
|
5870
|
+
"scan_verified": false
|
|
5871
|
+
},
|
|
5872
|
+
"wontfix_scan_count": 13,
|
|
5873
|
+
"wontfix_snapshot": {
|
|
5874
|
+
"captured_at": "2026-03-15T19:15:22+00:00",
|
|
5875
|
+
"scan_count": 13,
|
|
5876
|
+
"tier": 3,
|
|
5877
|
+
"confidence": "high",
|
|
5878
|
+
"detail": {
|
|
5879
|
+
"holistic": true,
|
|
5880
|
+
"dimension": "package_organization",
|
|
5881
|
+
"related_files": [
|
|
5882
|
+
"src/logger.ts",
|
|
5883
|
+
"src/rule-engine.ts",
|
|
5884
|
+
"src/types.ts",
|
|
5885
|
+
"src/cli.ts",
|
|
5886
|
+
"src/mock-server.ts",
|
|
5887
|
+
"src/route-handler.ts",
|
|
5888
|
+
"src/loader.ts"
|
|
5889
|
+
],
|
|
5890
|
+
"evidence": [
|
|
5891
|
+
"holistic_context.structure shows src/ contains 11 production files spanning CLI/server/logging/rules/types, indicating mixed responsibilities in a single directory.",
|
|
5892
|
+
"Core building blocks (logger, rule engine, types) live beside entrypoints, making navigation and change ownership less predictable.",
|
|
5893
|
+
"`src/` contains 11 files across CLI, HTTP server, rule engine, logging, and utilities (directory profile shows `file_count: 11`).",
|
|
5894
|
+
"Coupling shows bidirectional edges between `src/` and `src/formats/`, indicating blurred boundaries at the top level."
|
|
5895
|
+
],
|
|
5896
|
+
"suggestion": "Staged reorg plan: 1) Create target folders `src/core/`, `src/logging/`, and `src/entrypoints/`. 2) Move core building blocks: `git mv src/rule-engine.ts src/core/rule-engine.ts`, `git mv src/types.ts src/core/types.ts`. 3) Move logging: `git mv src/logger.ts src/logging/logger.ts`. 4) Update imports by searching: `rg -n \"from \\\"\\.\\/rule-engine\\\"|from \\\"\\.\\/types\\\"|from \\\"\\.\\/logger\\\"\" src test` and adjust to new paths. 5) Validate with `npm test` and `npm run build`.",
|
|
5897
|
+
"reasoning": ""
|
|
5898
|
+
}
|
|
5899
|
+
}
|
|
5900
|
+
},
|
|
5901
|
+
"review::.::holistic::design_coherence::sequence_rule_duplication::d33d3334": {
|
|
5902
|
+
"id": "review::.::holistic::design_coherence::sequence_rule_duplication::d33d3334",
|
|
5903
|
+
"detector": "review",
|
|
5904
|
+
"file": ".",
|
|
5905
|
+
"tier": 3,
|
|
5906
|
+
"confidence": "medium",
|
|
5907
|
+
"summary": "Sequence rule normalization is duplicated in server API and loader paths",
|
|
5908
|
+
"detail": {
|
|
5909
|
+
"holistic": true,
|
|
5910
|
+
"dimension": "design_coherence",
|
|
5911
|
+
"related_files": [
|
|
5912
|
+
"src/mock-server.ts",
|
|
5913
|
+
"src/loader.ts",
|
|
5914
|
+
"src/rule-engine.ts"
|
|
5915
|
+
],
|
|
5916
|
+
"evidence": [
|
|
5917
|
+
"`MockServer.when().replySequence()` maps `SequenceEntry` values into steps, creates a sequence resolver, assigns `rule.resolve`, and sets `rule.remaining`.",
|
|
5918
|
+
"`addSequenceRule()` in `src/loader.ts` performs the same step normalization, `createSequenceResolver()` call, and `rule.remaining` setup for JSON5 rules."
|
|
5919
|
+
],
|
|
5920
|
+
"suggestion": "Extract a shared helper in `src/rule-engine.ts` (or a new `sequence` utility) that accepts normalized entries and returns a configured rule; use it from both `replySequence()` and `addSequenceRule()` to centralize sequence behavior.",
|
|
5921
|
+
"reasoning": ""
|
|
5922
|
+
},
|
|
5923
|
+
"status": "wontfix",
|
|
5924
|
+
"note": "Intentional design for a test utility",
|
|
5925
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5926
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5927
|
+
"resolved_at": "2026-03-15T19:15:41+00:00",
|
|
5928
|
+
"reopen_count": 0,
|
|
5929
|
+
"lang": "typescript",
|
|
5930
|
+
"suppressed": false,
|
|
5931
|
+
"suppressed_at": null,
|
|
5932
|
+
"suppression_pattern": null,
|
|
5933
|
+
"resolution_attestation": {
|
|
5934
|
+
"kind": "manual",
|
|
5935
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
|
|
5936
|
+
"attested_at": "2026-03-15T19:15:41+00:00",
|
|
5937
|
+
"scan_verified": false
|
|
5938
|
+
},
|
|
5939
|
+
"wontfix_scan_count": 13,
|
|
5940
|
+
"wontfix_snapshot": {
|
|
5941
|
+
"captured_at": "2026-03-15T19:15:41+00:00",
|
|
5942
|
+
"scan_count": 13,
|
|
5943
|
+
"tier": 3,
|
|
5944
|
+
"confidence": "medium",
|
|
5945
|
+
"detail": {
|
|
5946
|
+
"holistic": true,
|
|
5947
|
+
"dimension": "design_coherence",
|
|
5948
|
+
"related_files": [
|
|
5949
|
+
"src/mock-server.ts",
|
|
5950
|
+
"src/loader.ts",
|
|
5951
|
+
"src/rule-engine.ts"
|
|
5952
|
+
],
|
|
5953
|
+
"evidence": [
|
|
5954
|
+
"`MockServer.when().replySequence()` maps `SequenceEntry` values into steps, creates a sequence resolver, assigns `rule.resolve`, and sets `rule.remaining`.",
|
|
5955
|
+
"`addSequenceRule()` in `src/loader.ts` performs the same step normalization, `createSequenceResolver()` call, and `rule.remaining` setup for JSON5 rules."
|
|
5956
|
+
],
|
|
5957
|
+
"suggestion": "Extract a shared helper in `src/rule-engine.ts` (or a new `sequence` utility) that accepts normalized entries and returns a configured rule; use it from both `replySequence()` and `addSequenceRule()` to centralize sequence behavior.",
|
|
5958
|
+
"reasoning": ""
|
|
5959
|
+
}
|
|
5960
|
+
}
|
|
5961
|
+
},
|
|
5962
|
+
"review::.::holistic::design_coherence::mockserver_multi_role::8953649a": {
|
|
5963
|
+
"id": "review::.::holistic::design_coherence::mockserver_multi_role::8953649a",
|
|
5964
|
+
"detector": "review",
|
|
5965
|
+
"file": ".",
|
|
5966
|
+
"tier": 3,
|
|
5967
|
+
"confidence": "medium",
|
|
5968
|
+
"summary": "`MockServer` combines server lifecycle, rule authoring, and state tracking responsibilities",
|
|
5969
|
+
"detail": {
|
|
5970
|
+
"holistic": true,
|
|
5971
|
+
"dimension": "design_coherence",
|
|
5972
|
+
"related_files": [
|
|
5973
|
+
"src/mock-server.ts",
|
|
5974
|
+
"src/rule-engine.ts",
|
|
5975
|
+
"src/history.ts"
|
|
5976
|
+
],
|
|
5977
|
+
"evidence": [
|
|
5978
|
+
"`MockServer` constructs the Fastify server and registers format routes in the constructor, exposes rule authoring methods (`when`, `whenTool`, `nextError`), manages fallback state, and owns `RequestHistory` and logging.",
|
|
5979
|
+
"This blends HTTP runtime concerns with rule registry and history concerns that already exist as separate modules (`RuleEngine`, `RequestHistory`)."
|
|
5980
|
+
],
|
|
5981
|
+
"suggestion": "Split `MockServer` into a runtime/server wrapper and a rule/history registry (e.g., extract a `RuleRegistry` or `MockServerCore` that exposes `when*`, `history`, `rules`, and fallback), and keep Fastify lifecycle and route wiring in a thinner server class.",
|
|
5982
|
+
"reasoning": ""
|
|
5983
|
+
},
|
|
5984
|
+
"status": "wontfix",
|
|
5985
|
+
"note": "Intentional design for a test utility",
|
|
5986
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
5987
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
5988
|
+
"resolved_at": "2026-03-15T19:15:40+00:00",
|
|
5989
|
+
"reopen_count": 0,
|
|
5990
|
+
"lang": "typescript",
|
|
5991
|
+
"suppressed": false,
|
|
5992
|
+
"suppressed_at": null,
|
|
5993
|
+
"suppression_pattern": null,
|
|
5994
|
+
"resolution_attestation": {
|
|
5995
|
+
"kind": "manual",
|
|
5996
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
|
|
5997
|
+
"attested_at": "2026-03-15T19:15:40+00:00",
|
|
5998
|
+
"scan_verified": false
|
|
5999
|
+
},
|
|
6000
|
+
"wontfix_scan_count": 13,
|
|
6001
|
+
"wontfix_snapshot": {
|
|
6002
|
+
"captured_at": "2026-03-15T19:15:40+00:00",
|
|
6003
|
+
"scan_count": 13,
|
|
6004
|
+
"tier": 3,
|
|
6005
|
+
"confidence": "medium",
|
|
6006
|
+
"detail": {
|
|
6007
|
+
"holistic": true,
|
|
6008
|
+
"dimension": "design_coherence",
|
|
6009
|
+
"related_files": [
|
|
6010
|
+
"src/mock-server.ts",
|
|
6011
|
+
"src/rule-engine.ts",
|
|
6012
|
+
"src/history.ts"
|
|
6013
|
+
],
|
|
6014
|
+
"evidence": [
|
|
6015
|
+
"`MockServer` constructs the Fastify server and registers format routes in the constructor, exposes rule authoring methods (`when`, `whenTool`, `nextError`), manages fallback state, and owns `RequestHistory` and logging.",
|
|
6016
|
+
"This blends HTTP runtime concerns with rule registry and history concerns that already exist as separate modules (`RuleEngine`, `RequestHistory`)."
|
|
6017
|
+
],
|
|
6018
|
+
"suggestion": "Split `MockServer` into a runtime/server wrapper and a rule/history registry (e.g., extract a `RuleRegistry` or `MockServerCore` that exposes `when*`, `history`, `rules`, and fallback), and keep Fastify lifecycle and route wiring in a thinner server class.",
|
|
6019
|
+
"reasoning": ""
|
|
6020
|
+
}
|
|
6021
|
+
}
|
|
6022
|
+
},
|
|
6023
|
+
"review::.::holistic::error_consistency::resolver_errors_swallowed::3361a67b": {
|
|
6024
|
+
"id": "review::.::holistic::error_consistency::resolver_errors_swallowed::3361a67b",
|
|
6025
|
+
"detector": "review",
|
|
6026
|
+
"file": ".",
|
|
6027
|
+
"tier": 3,
|
|
6028
|
+
"confidence": "high",
|
|
6029
|
+
"summary": "Resolver exceptions are swallowed and returned as normal fallback replies",
|
|
6030
|
+
"detail": {
|
|
6031
|
+
"holistic": true,
|
|
6032
|
+
"dimension": "error_consistency",
|
|
6033
|
+
"related_files": [
|
|
6034
|
+
"src/route-handler.ts",
|
|
6035
|
+
"src/types/reply.ts",
|
|
6036
|
+
"src/mock-server.ts"
|
|
6037
|
+
],
|
|
6038
|
+
"evidence": [
|
|
6039
|
+
"`resolveReply` catches resolver errors and returns `normalizeReply(fallback)` with no error signal.",
|
|
6040
|
+
"Downstream in the handler, the fallback reply is serialized as a normal 200 response if it doesn\u2019t set `error`."
|
|
6041
|
+
],
|
|
6042
|
+
"suggestion": "Surface resolver failures explicitly: either rethrow and let Fastify return 500, or translate to `ReplyObject.error` with a 5xx status. Update `resolveReply` and `createRouteHandler` to propagate an error reply, and document the error contract in `src/types/reply.ts`.",
|
|
6043
|
+
"reasoning": ""
|
|
6044
|
+
},
|
|
6045
|
+
"status": "wontfix",
|
|
6046
|
+
"note": "Intentional design for a test utility",
|
|
6047
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
6048
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
6049
|
+
"resolved_at": "2026-03-15T19:15:20+00:00",
|
|
6050
|
+
"reopen_count": 0,
|
|
6051
|
+
"lang": "typescript",
|
|
6052
|
+
"suppressed": false,
|
|
6053
|
+
"suppressed_at": null,
|
|
6054
|
+
"suppression_pattern": null,
|
|
6055
|
+
"resolution_attestation": {
|
|
6056
|
+
"kind": "manual",
|
|
6057
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
|
|
6058
|
+
"attested_at": "2026-03-15T19:15:20+00:00",
|
|
6059
|
+
"scan_verified": false
|
|
6060
|
+
},
|
|
6061
|
+
"wontfix_scan_count": 13,
|
|
6062
|
+
"wontfix_snapshot": {
|
|
6063
|
+
"captured_at": "2026-03-15T19:15:20+00:00",
|
|
6064
|
+
"scan_count": 13,
|
|
6065
|
+
"tier": 3,
|
|
6066
|
+
"confidence": "high",
|
|
6067
|
+
"detail": {
|
|
6068
|
+
"holistic": true,
|
|
6069
|
+
"dimension": "error_consistency",
|
|
6070
|
+
"related_files": [
|
|
6071
|
+
"src/route-handler.ts",
|
|
6072
|
+
"src/types/reply.ts",
|
|
6073
|
+
"src/mock-server.ts"
|
|
6074
|
+
],
|
|
6075
|
+
"evidence": [
|
|
6076
|
+
"`resolveReply` catches resolver errors and returns `normalizeReply(fallback)` with no error signal.",
|
|
6077
|
+
"Downstream in the handler, the fallback reply is serialized as a normal 200 response if it doesn\u2019t set `error`."
|
|
6078
|
+
],
|
|
6079
|
+
"suggestion": "Surface resolver failures explicitly: either rethrow and let Fastify return 500, or translate to `ReplyObject.error` with a 5xx status. Update `resolveReply` and `createRouteHandler` to propagate an error reply, and document the error contract in `src/types/reply.ts`.",
|
|
6080
|
+
"reasoning": ""
|
|
6081
|
+
}
|
|
6082
|
+
}
|
|
6083
|
+
},
|
|
6084
|
+
"review::.::holistic::error_consistency::responses_tools_silent_drop::4c5b6b37": {
|
|
6085
|
+
"id": "review::.::holistic::error_consistency::responses_tools_silent_drop::4c5b6b37",
|
|
6086
|
+
"detector": "review",
|
|
6087
|
+
"file": ".",
|
|
6088
|
+
"tier": 3,
|
|
6089
|
+
"confidence": "medium",
|
|
6090
|
+
"summary": "Responses tool parsing silently drops invalid tools unlike other formats",
|
|
6091
|
+
"detail": {
|
|
6092
|
+
"holistic": true,
|
|
6093
|
+
"dimension": "error_consistency",
|
|
6094
|
+
"related_files": [
|
|
6095
|
+
"src/formats/responses/parse.ts",
|
|
6096
|
+
"src/formats/openai/parse.ts",
|
|
6097
|
+
"src/formats/anthropic/parse.ts"
|
|
6098
|
+
],
|
|
6099
|
+
"evidence": [
|
|
6100
|
+
"`parseTools` in responses uses `FunctionToolSchema.safeParse` and filters out failed parses, so malformed tool entries are ignored.",
|
|
6101
|
+
"OpenAI and Anthropic requests rely on schema parsing that fails the whole request on invalid structures."
|
|
6102
|
+
],
|
|
6103
|
+
"suggestion": "Align tool-validation behavior across formats: either treat invalid tools as a request error for responses, or document and apply a consistent \u201cbest-effort\u201d policy across all formats. Prefer failing the request for invalid tools to keep error handling predictable.",
|
|
6104
|
+
"reasoning": ""
|
|
6105
|
+
},
|
|
6106
|
+
"status": "wontfix",
|
|
6107
|
+
"note": "Intentional design for a test utility",
|
|
6108
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
6109
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
6110
|
+
"resolved_at": "2026-03-15T19:15:41+00:00",
|
|
6111
|
+
"reopen_count": 0,
|
|
6112
|
+
"lang": "typescript",
|
|
6113
|
+
"suppressed": false,
|
|
6114
|
+
"suppressed_at": null,
|
|
6115
|
+
"suppression_pattern": null,
|
|
6116
|
+
"resolution_attestation": {
|
|
6117
|
+
"kind": "manual",
|
|
6118
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice and I am not gaming the score by resolving without fixing.",
|
|
6119
|
+
"attested_at": "2026-03-15T19:15:41+00:00",
|
|
6120
|
+
"scan_verified": false
|
|
6121
|
+
},
|
|
6122
|
+
"wontfix_scan_count": 13,
|
|
6123
|
+
"wontfix_snapshot": {
|
|
6124
|
+
"captured_at": "2026-03-15T19:15:41+00:00",
|
|
6125
|
+
"scan_count": 13,
|
|
6126
|
+
"tier": 3,
|
|
6127
|
+
"confidence": "medium",
|
|
6128
|
+
"detail": {
|
|
6129
|
+
"holistic": true,
|
|
6130
|
+
"dimension": "error_consistency",
|
|
6131
|
+
"related_files": [
|
|
6132
|
+
"src/formats/responses/parse.ts",
|
|
6133
|
+
"src/formats/openai/parse.ts",
|
|
6134
|
+
"src/formats/anthropic/parse.ts"
|
|
6135
|
+
],
|
|
6136
|
+
"evidence": [
|
|
6137
|
+
"`parseTools` in responses uses `FunctionToolSchema.safeParse` and filters out failed parses, so malformed tool entries are ignored.",
|
|
6138
|
+
"OpenAI and Anthropic requests rely on schema parsing that fails the whole request on invalid structures."
|
|
6139
|
+
],
|
|
6140
|
+
"suggestion": "Align tool-validation behavior across formats: either treat invalid tools as a request error for responses, or document and apply a consistent \u201cbest-effort\u201d policy across all formats. Prefer failing the request for invalid tools to keep error handling predictable.",
|
|
6141
|
+
"reasoning": ""
|
|
6142
|
+
}
|
|
6143
|
+
}
|
|
6144
|
+
},
|
|
6145
|
+
"review::.::holistic::low_level_elegance::non_unique_ids::80424bff": {
|
|
6146
|
+
"id": "review::.::holistic::low_level_elegance::non_unique_ids::80424bff",
|
|
6147
|
+
"detector": "review",
|
|
6148
|
+
"file": ".",
|
|
6149
|
+
"tier": 3,
|
|
6150
|
+
"confidence": "high",
|
|
6151
|
+
"summary": "ID generation relies on Date.now(), risking collisions under concurrency",
|
|
6152
|
+
"detail": {
|
|
6153
|
+
"holistic": true,
|
|
6154
|
+
"dimension": "low_level_elegance",
|
|
6155
|
+
"related_files": [
|
|
6156
|
+
"src/formats/serialize-helpers.ts",
|
|
6157
|
+
"src/formats/openai/serialize.ts",
|
|
6158
|
+
"src/formats/responses/serialize.ts"
|
|
6159
|
+
],
|
|
6160
|
+
"evidence": [
|
|
6161
|
+
"`genId` and `toolId` use `Date.now().toString(36)` which can repeat in the same millisecond.",
|
|
6162
|
+
"Streaming serializers call these helpers multiple times per request, and concurrent requests can produce duplicate IDs."
|
|
6163
|
+
],
|
|
6164
|
+
"suggestion": "Switch to a collision-resistant ID source (e.g., `crypto.randomUUID()` or a process-wide monotonic counter with a random prefix). Update `genId`/`toolId` and regenerate IDs in the serializers to avoid duplicate response IDs.",
|
|
6165
|
+
"reasoning": ""
|
|
6166
|
+
},
|
|
6167
|
+
"status": "wontfix",
|
|
6168
|
+
"note": "Intentional design for a test utility",
|
|
6169
|
+
"first_seen": "2026-03-15T19:12:25+00:00",
|
|
6170
|
+
"last_seen": "2026-03-15T19:12:25+00:00",
|
|
6171
|
+
"resolved_at": "2026-03-15T19:15:21+00:00",
|
|
6172
|
+
"reopen_count": 0,
|
|
6173
|
+
"lang": "typescript",
|
|
6174
|
+
"suppressed": false,
|
|
6175
|
+
"suppressed_at": null,
|
|
6176
|
+
"suppression_pattern": null,
|
|
6177
|
+
"resolution_attestation": {
|
|
6178
|
+
"kind": "manual",
|
|
6179
|
+
"text": "I have actually reviewed this finding and confirmed it is an intentional design choice for a mock server test tool and I am not gaming the score by resolving without fixing.",
|
|
6180
|
+
"attested_at": "2026-03-15T19:15:21+00:00",
|
|
6181
|
+
"scan_verified": false
|
|
6182
|
+
},
|
|
6183
|
+
"wontfix_scan_count": 13,
|
|
6184
|
+
"wontfix_snapshot": {
|
|
6185
|
+
"captured_at": "2026-03-15T19:15:21+00:00",
|
|
6186
|
+
"scan_count": 13,
|
|
6187
|
+
"tier": 3,
|
|
6188
|
+
"confidence": "high",
|
|
6189
|
+
"detail": {
|
|
6190
|
+
"holistic": true,
|
|
6191
|
+
"dimension": "low_level_elegance",
|
|
6192
|
+
"related_files": [
|
|
6193
|
+
"src/formats/serialize-helpers.ts",
|
|
6194
|
+
"src/formats/openai/serialize.ts",
|
|
6195
|
+
"src/formats/responses/serialize.ts"
|
|
6196
|
+
],
|
|
6197
|
+
"evidence": [
|
|
6198
|
+
"`genId` and `toolId` use `Date.now().toString(36)` which can repeat in the same millisecond.",
|
|
6199
|
+
"Streaming serializers call these helpers multiple times per request, and concurrent requests can produce duplicate IDs."
|
|
6200
|
+
],
|
|
6201
|
+
"suggestion": "Switch to a collision-resistant ID source (e.g., `crypto.randomUUID()` or a process-wide monotonic counter with a random prefix). Update `genId`/`toolId` and regenerate IDs in the serializers to avoid duplicate response IDs.",
|
|
6202
|
+
"reasoning": ""
|
|
6203
|
+
}
|
|
6204
|
+
}
|
|
6205
|
+
}
|
|
6206
|
+
},
|
|
6207
|
+
"scan_coverage": {
|
|
6208
|
+
"typescript": {
|
|
6209
|
+
"status": "full",
|
|
6210
|
+
"confidence": 1.0,
|
|
6211
|
+
"detectors": {
|
|
6212
|
+
"security": {
|
|
6213
|
+
"detector": "security",
|
|
6214
|
+
"status": "full",
|
|
6215
|
+
"confidence": 1.0,
|
|
6216
|
+
"summary": "Security coverage complete for enabled detectors.",
|
|
6217
|
+
"impact": "",
|
|
6218
|
+
"remediation": "",
|
|
6219
|
+
"tool": "",
|
|
6220
|
+
"reason": ""
|
|
6221
|
+
}
|
|
6222
|
+
},
|
|
6223
|
+
"warnings": [],
|
|
6224
|
+
"updated_at": "2026-03-15T19:12:32+00:00"
|
|
6225
|
+
}
|
|
6226
|
+
},
|
|
6227
|
+
"score_confidence": {
|
|
6228
|
+
"status": "full",
|
|
6229
|
+
"confidence": 1.0,
|
|
6230
|
+
"detectors": [],
|
|
6231
|
+
"dimensions": []
|
|
6232
|
+
},
|
|
6233
|
+
"subjective_integrity": {
|
|
6234
|
+
"status": "disabled",
|
|
6235
|
+
"target_score": null,
|
|
6236
|
+
"matched_count": 0,
|
|
6237
|
+
"matched_dimensions": [],
|
|
6238
|
+
"reset_dimensions": []
|
|
6239
|
+
},
|
|
6240
|
+
"subjective_assessments": {
|
|
6241
|
+
"cross_module_architecture": {
|
|
6242
|
+
"score": 73.2,
|
|
6243
|
+
"source": "holistic",
|
|
6244
|
+
"assessed_at": "2026-03-15T19:12:25+00:00",
|
|
6245
|
+
"needs_review_refresh": true,
|
|
6246
|
+
"refresh_reason": "review_finding_wontfix",
|
|
6247
|
+
"stale_since": "2026-03-15T19:15:40+00:00"
|
|
6248
|
+
},
|
|
6249
|
+
"convention_outlier": {
|
|
6250
|
+
"score": 78.8,
|
|
6251
|
+
"source": "holistic",
|
|
6252
|
+
"assessed_at": "2026-03-15T19:12:25+00:00",
|
|
6253
|
+
"needs_review_refresh": true,
|
|
6254
|
+
"refresh_reason": "review_finding_wontfix",
|
|
6255
|
+
"stale_since": "2026-03-15T19:16:02+00:00"
|
|
6256
|
+
},
|
|
6257
|
+
"error_consistency": {
|
|
6258
|
+
"score": 67.8,
|
|
6259
|
+
"source": "holistic",
|
|
6260
|
+
"assessed_at": "2026-03-15T19:12:25+00:00",
|
|
6261
|
+
"needs_review_refresh": true,
|
|
6262
|
+
"refresh_reason": "review_finding_wontfix",
|
|
6263
|
+
"stale_since": "2026-03-15T19:15:41+00:00"
|
|
6264
|
+
},
|
|
6265
|
+
"abstraction_fitness": {
|
|
6266
|
+
"score": 79.3,
|
|
6267
|
+
"source": "holistic",
|
|
6268
|
+
"assessed_at": "2026-03-15T19:12:25+00:00",
|
|
6269
|
+
"components": [
|
|
6270
|
+
"Abstraction Leverage",
|
|
6271
|
+
"Indirection Cost",
|
|
6272
|
+
"Interface Honesty"
|
|
6273
|
+
],
|
|
6274
|
+
"component_scores": {
|
|
6275
|
+
"Abstraction Leverage": 82.0,
|
|
6276
|
+
"Indirection Cost": 85.7,
|
|
6277
|
+
"Interface Honesty": 86.0
|
|
6278
|
+
},
|
|
6279
|
+
"needs_review_refresh": true,
|
|
6280
|
+
"refresh_reason": "review_finding_wontfix",
|
|
6281
|
+
"stale_since": "2026-03-15T19:15:20+00:00"
|
|
6282
|
+
},
|
|
6283
|
+
"api_surface_coherence": {
|
|
6284
|
+
"score": 67.3,
|
|
6285
|
+
"source": "holistic",
|
|
6286
|
+
"assessed_at": "2026-03-15T19:12:25+00:00",
|
|
6287
|
+
"needs_review_refresh": true,
|
|
6288
|
+
"refresh_reason": "review_finding_wontfix",
|
|
6289
|
+
"stale_since": "2026-03-15T19:15:39+00:00"
|
|
6290
|
+
},
|
|
6291
|
+
"authorization_consistency": {
|
|
6292
|
+
"score": 92.8,
|
|
6293
|
+
"source": "holistic",
|
|
6294
|
+
"assessed_at": "2026-03-15T19:12:25+00:00"
|
|
6295
|
+
},
|
|
6296
|
+
"ai_generated_debt": {
|
|
6297
|
+
"score": 86.5,
|
|
6298
|
+
"source": "holistic",
|
|
6299
|
+
"assessed_at": "2026-03-15T19:12:25+00:00",
|
|
6300
|
+
"needs_review_refresh": true,
|
|
6301
|
+
"refresh_reason": "review_finding_wontfix",
|
|
6302
|
+
"stale_since": "2026-03-15T19:15:39+00:00"
|
|
6303
|
+
},
|
|
6304
|
+
"incomplete_migration": {
|
|
6305
|
+
"score": 95.7,
|
|
6306
|
+
"source": "holistic",
|
|
6307
|
+
"assessed_at": "2026-03-15T19:12:25+00:00"
|
|
6308
|
+
},
|
|
6309
|
+
"package_organization": {
|
|
6310
|
+
"score": 61.6,
|
|
6311
|
+
"source": "holistic",
|
|
6312
|
+
"assessed_at": "2026-03-15T19:12:25+00:00",
|
|
6313
|
+
"needs_review_refresh": true,
|
|
6314
|
+
"refresh_reason": "review_finding_wontfix",
|
|
6315
|
+
"stale_since": "2026-03-15T19:15:39+00:00"
|
|
6316
|
+
},
|
|
6317
|
+
"high_level_elegance": {
|
|
6318
|
+
"score": 66.7,
|
|
6319
|
+
"source": "holistic",
|
|
6320
|
+
"assessed_at": "2026-03-15T19:12:25+00:00",
|
|
4942
6321
|
"needs_review_refresh": true,
|
|
4943
6322
|
"refresh_reason": "review_finding_wontfix",
|
|
4944
|
-
"stale_since": "2026-03-
|
|
6323
|
+
"stale_since": "2026-03-15T19:16:02+00:00"
|
|
4945
6324
|
},
|
|
4946
6325
|
"mid_level_elegance": {
|
|
4947
|
-
"score":
|
|
6326
|
+
"score": 82.3,
|
|
4948
6327
|
"source": "holistic",
|
|
4949
|
-
"assessed_at": "2026-03-
|
|
6328
|
+
"assessed_at": "2026-03-15T19:12:25+00:00",
|
|
4950
6329
|
"needs_review_refresh": true,
|
|
4951
6330
|
"refresh_reason": "review_finding_wontfix",
|
|
4952
|
-
"stale_since": "2026-03-
|
|
6331
|
+
"stale_since": "2026-03-15T19:16:02+00:00"
|
|
4953
6332
|
},
|
|
4954
6333
|
"low_level_elegance": {
|
|
4955
|
-
"score":
|
|
6334
|
+
"score": 78.3,
|
|
4956
6335
|
"source": "holistic",
|
|
4957
|
-
"assessed_at": "2026-03-
|
|
6336
|
+
"assessed_at": "2026-03-15T19:12:25+00:00",
|
|
4958
6337
|
"needs_review_refresh": true,
|
|
4959
6338
|
"refresh_reason": "review_finding_wontfix",
|
|
4960
|
-
"stale_since": "2026-03-
|
|
6339
|
+
"stale_since": "2026-03-15T19:15:21+00:00"
|
|
4961
6340
|
},
|
|
4962
6341
|
"design_coherence": {
|
|
4963
|
-
"score":
|
|
6342
|
+
"score": 72.8,
|
|
4964
6343
|
"source": "holistic",
|
|
4965
|
-
"assessed_at": "2026-03-
|
|
6344
|
+
"assessed_at": "2026-03-15T19:12:25+00:00",
|
|
4966
6345
|
"needs_review_refresh": true,
|
|
4967
6346
|
"refresh_reason": "review_finding_wontfix",
|
|
4968
|
-
"stale_since": "2026-03-
|
|
6347
|
+
"stale_since": "2026-03-15T19:15:41+00:00"
|
|
4969
6348
|
}
|
|
4970
6349
|
},
|
|
4971
6350
|
"lang_capabilities": {
|
|
@@ -5604,12 +6983,214 @@
|
|
|
5604
6983
|
"diff_new": 0,
|
|
5605
6984
|
"diff_resolved": 0,
|
|
5606
6985
|
"ignored": 0,
|
|
5607
|
-
"raw_findings": 30,
|
|
6986
|
+
"raw_findings": 30,
|
|
6987
|
+
"suppressed_pct": 0.0,
|
|
6988
|
+
"ignore_patterns": 0,
|
|
6989
|
+
"subjective_integrity": {
|
|
6990
|
+
"status": "pass",
|
|
6991
|
+
"matched_count": 0,
|
|
6992
|
+
"reset_count": 0,
|
|
6993
|
+
"target_score": 95.0
|
|
6994
|
+
},
|
|
6995
|
+
"score_confidence": {
|
|
6996
|
+
"status": "full",
|
|
6997
|
+
"confidence": 1.0,
|
|
6998
|
+
"detector_count": 0,
|
|
6999
|
+
"dimension_count": 0
|
|
7000
|
+
},
|
|
7001
|
+
"dimension_scores": {
|
|
7002
|
+
"File health": {
|
|
7003
|
+
"score": 100.0,
|
|
7004
|
+
"strict": 100.0
|
|
7005
|
+
},
|
|
7006
|
+
"Code quality": {
|
|
7007
|
+
"score": 100.0,
|
|
7008
|
+
"strict": 96.4
|
|
7009
|
+
},
|
|
7010
|
+
"Duplication": {
|
|
7011
|
+
"score": 100.0,
|
|
7012
|
+
"strict": 100.0
|
|
7013
|
+
},
|
|
7014
|
+
"Test health": {
|
|
7015
|
+
"score": 100.0,
|
|
7016
|
+
"strict": 65.8
|
|
7017
|
+
},
|
|
7018
|
+
"Security": {
|
|
7019
|
+
"score": 100.0,
|
|
7020
|
+
"strict": 100.0
|
|
7021
|
+
},
|
|
7022
|
+
"Error consistency": {
|
|
7023
|
+
"score": 84.0,
|
|
7024
|
+
"strict": 84.0
|
|
7025
|
+
},
|
|
7026
|
+
"Abstraction fit": {
|
|
7027
|
+
"score": 93.0,
|
|
7028
|
+
"strict": 93.0
|
|
7029
|
+
},
|
|
7030
|
+
"AI generated debt": {
|
|
7031
|
+
"score": 82.0,
|
|
7032
|
+
"strict": 82.0
|
|
7033
|
+
},
|
|
7034
|
+
"High elegance": {
|
|
7035
|
+
"score": 93.0,
|
|
7036
|
+
"strict": 93.0
|
|
7037
|
+
},
|
|
7038
|
+
"Mid elegance": {
|
|
7039
|
+
"score": 90.0,
|
|
7040
|
+
"strict": 90.0
|
|
7041
|
+
},
|
|
7042
|
+
"Low elegance": {
|
|
7043
|
+
"score": 87.0,
|
|
7044
|
+
"strict": 87.0
|
|
7045
|
+
},
|
|
7046
|
+
"Cross-module arch": {
|
|
7047
|
+
"score": 92.0,
|
|
7048
|
+
"strict": 92.0
|
|
7049
|
+
},
|
|
7050
|
+
"Convention drift": {
|
|
7051
|
+
"score": 88.5,
|
|
7052
|
+
"strict": 88.5
|
|
7053
|
+
},
|
|
7054
|
+
"API coherence": {
|
|
7055
|
+
"score": 86.0,
|
|
7056
|
+
"strict": 86.0
|
|
7057
|
+
},
|
|
7058
|
+
"Auth consistency": {
|
|
7059
|
+
"score": 100.0,
|
|
7060
|
+
"strict": 100.0
|
|
7061
|
+
},
|
|
7062
|
+
"Stale migration": {
|
|
7063
|
+
"score": 97.0,
|
|
7064
|
+
"strict": 97.0
|
|
7065
|
+
},
|
|
7066
|
+
"Structure nav": {
|
|
7067
|
+
"score": 93.0,
|
|
7068
|
+
"strict": 93.0
|
|
7069
|
+
},
|
|
7070
|
+
"Design coherence": {
|
|
7071
|
+
"score": 84.0,
|
|
7072
|
+
"strict": 84.0
|
|
7073
|
+
}
|
|
7074
|
+
}
|
|
7075
|
+
},
|
|
7076
|
+
{
|
|
7077
|
+
"timestamp": "2026-03-15T05:00:28+00:00",
|
|
7078
|
+
"lang": "typescript",
|
|
7079
|
+
"strict_score": 93.6,
|
|
7080
|
+
"verified_strict_score": 100.0,
|
|
7081
|
+
"objective_score": 100.0,
|
|
7082
|
+
"overall_score": 93.6,
|
|
7083
|
+
"open": 19,
|
|
7084
|
+
"diff_new": 19,
|
|
7085
|
+
"diff_resolved": 31,
|
|
7086
|
+
"ignored": 0,
|
|
7087
|
+
"raw_findings": 19,
|
|
7088
|
+
"suppressed_pct": 0.0,
|
|
7089
|
+
"ignore_patterns": 0,
|
|
7090
|
+
"subjective_integrity": {
|
|
7091
|
+
"status": "disabled",
|
|
7092
|
+
"matched_count": 0,
|
|
7093
|
+
"reset_count": 0,
|
|
7094
|
+
"target_score": null
|
|
7095
|
+
},
|
|
7096
|
+
"score_confidence": {
|
|
7097
|
+
"status": "full",
|
|
7098
|
+
"confidence": 1.0,
|
|
7099
|
+
"detector_count": 0,
|
|
7100
|
+
"dimension_count": 0
|
|
7101
|
+
},
|
|
7102
|
+
"dimension_scores": {
|
|
7103
|
+
"File health": {
|
|
7104
|
+
"score": 100.0,
|
|
7105
|
+
"strict": 100.0
|
|
7106
|
+
},
|
|
7107
|
+
"Code quality": {
|
|
7108
|
+
"score": 100.0,
|
|
7109
|
+
"strict": 100.0
|
|
7110
|
+
},
|
|
7111
|
+
"Duplication": {
|
|
7112
|
+
"score": 100.0,
|
|
7113
|
+
"strict": 100.0
|
|
7114
|
+
},
|
|
7115
|
+
"Test health": {
|
|
7116
|
+
"score": 100.0,
|
|
7117
|
+
"strict": 100.0
|
|
7118
|
+
},
|
|
7119
|
+
"Security": {
|
|
7120
|
+
"score": 100.0,
|
|
7121
|
+
"strict": 100.0
|
|
7122
|
+
},
|
|
7123
|
+
"Error consistency": {
|
|
7124
|
+
"score": 82.0,
|
|
7125
|
+
"strict": 82.0
|
|
7126
|
+
},
|
|
7127
|
+
"Abstraction fit": {
|
|
7128
|
+
"score": 91.0,
|
|
7129
|
+
"strict": 91.0
|
|
7130
|
+
},
|
|
7131
|
+
"AI generated debt": {
|
|
7132
|
+
"score": 88.0,
|
|
7133
|
+
"strict": 88.0
|
|
7134
|
+
},
|
|
7135
|
+
"High elegance": {
|
|
7136
|
+
"score": 92.0,
|
|
7137
|
+
"strict": 92.0
|
|
7138
|
+
},
|
|
7139
|
+
"Mid elegance": {
|
|
7140
|
+
"score": 88.0,
|
|
7141
|
+
"strict": 88.0
|
|
7142
|
+
},
|
|
7143
|
+
"Low elegance": {
|
|
7144
|
+
"score": 86.0,
|
|
7145
|
+
"strict": 86.0
|
|
7146
|
+
},
|
|
7147
|
+
"Cross-module arch": {
|
|
7148
|
+
"score": 93.0,
|
|
7149
|
+
"strict": 93.0
|
|
7150
|
+
},
|
|
7151
|
+
"Convention drift": {
|
|
7152
|
+
"score": 90.0,
|
|
7153
|
+
"strict": 90.0
|
|
7154
|
+
},
|
|
7155
|
+
"API coherence": {
|
|
7156
|
+
"score": 85.0,
|
|
7157
|
+
"strict": 85.0
|
|
7158
|
+
},
|
|
7159
|
+
"Auth consistency": {
|
|
7160
|
+
"score": 100.0,
|
|
7161
|
+
"strict": 100.0
|
|
7162
|
+
},
|
|
7163
|
+
"Stale migration": {
|
|
7164
|
+
"score": 95.0,
|
|
7165
|
+
"strict": 95.0
|
|
7166
|
+
},
|
|
7167
|
+
"Structure nav": {
|
|
7168
|
+
"score": 94.0,
|
|
7169
|
+
"strict": 94.0
|
|
7170
|
+
},
|
|
7171
|
+
"Design coherence": {
|
|
7172
|
+
"score": 87.0,
|
|
7173
|
+
"strict": 87.0
|
|
7174
|
+
}
|
|
7175
|
+
}
|
|
7176
|
+
},
|
|
7177
|
+
{
|
|
7178
|
+
"timestamp": "2026-03-15T05:00:35+00:00",
|
|
7179
|
+
"lang": "typescript",
|
|
7180
|
+
"strict_score": 87.8,
|
|
7181
|
+
"verified_strict_score": 85.5,
|
|
7182
|
+
"objective_score": 85.5,
|
|
7183
|
+
"overall_score": 87.8,
|
|
7184
|
+
"open": 50,
|
|
7185
|
+
"diff_new": 2,
|
|
7186
|
+
"diff_resolved": 0,
|
|
7187
|
+
"ignored": 0,
|
|
7188
|
+
"raw_findings": 31,
|
|
5608
7189
|
"suppressed_pct": 0.0,
|
|
5609
7190
|
"ignore_patterns": 0,
|
|
5610
7191
|
"subjective_integrity": {
|
|
5611
|
-
"status": "
|
|
5612
|
-
"matched_count":
|
|
7192
|
+
"status": "warn",
|
|
7193
|
+
"matched_count": 1,
|
|
5613
7194
|
"reset_count": 0,
|
|
5614
7195
|
"target_score": 95.0
|
|
5615
7196
|
},
|
|
@@ -5625,94 +7206,94 @@
|
|
|
5625
7206
|
"strict": 100.0
|
|
5626
7207
|
},
|
|
5627
7208
|
"Code quality": {
|
|
5628
|
-
"score":
|
|
7209
|
+
"score": 96.4,
|
|
5629
7210
|
"strict": 96.4
|
|
5630
7211
|
},
|
|
5631
7212
|
"Duplication": {
|
|
5632
|
-
"score":
|
|
5633
|
-
"strict":
|
|
7213
|
+
"score": 99.0,
|
|
7214
|
+
"strict": 99.0
|
|
5634
7215
|
},
|
|
5635
7216
|
"Test health": {
|
|
5636
|
-
"score":
|
|
5637
|
-
"strict":
|
|
7217
|
+
"score": 63.1,
|
|
7218
|
+
"strict": 63.1
|
|
5638
7219
|
},
|
|
5639
7220
|
"Security": {
|
|
5640
7221
|
"score": 100.0,
|
|
5641
7222
|
"strict": 100.0
|
|
5642
7223
|
},
|
|
5643
7224
|
"Error consistency": {
|
|
5644
|
-
"score":
|
|
5645
|
-
"strict":
|
|
7225
|
+
"score": 82.0,
|
|
7226
|
+
"strict": 82.0
|
|
5646
7227
|
},
|
|
5647
7228
|
"Abstraction fit": {
|
|
5648
|
-
"score":
|
|
5649
|
-
"strict":
|
|
7229
|
+
"score": 91.0,
|
|
7230
|
+
"strict": 91.0
|
|
5650
7231
|
},
|
|
5651
7232
|
"AI generated debt": {
|
|
5652
|
-
"score":
|
|
5653
|
-
"strict":
|
|
7233
|
+
"score": 88.0,
|
|
7234
|
+
"strict": 88.0
|
|
5654
7235
|
},
|
|
5655
7236
|
"High elegance": {
|
|
5656
|
-
"score":
|
|
5657
|
-
"strict":
|
|
7237
|
+
"score": 92.0,
|
|
7238
|
+
"strict": 92.0
|
|
5658
7239
|
},
|
|
5659
7240
|
"Mid elegance": {
|
|
5660
|
-
"score":
|
|
5661
|
-
"strict":
|
|
7241
|
+
"score": 88.0,
|
|
7242
|
+
"strict": 88.0
|
|
5662
7243
|
},
|
|
5663
7244
|
"Low elegance": {
|
|
5664
|
-
"score":
|
|
5665
|
-
"strict":
|
|
7245
|
+
"score": 86.0,
|
|
7246
|
+
"strict": 86.0
|
|
5666
7247
|
},
|
|
5667
7248
|
"Cross-module arch": {
|
|
5668
|
-
"score":
|
|
5669
|
-
"strict":
|
|
7249
|
+
"score": 93.0,
|
|
7250
|
+
"strict": 93.0
|
|
5670
7251
|
},
|
|
5671
7252
|
"Convention drift": {
|
|
5672
|
-
"score":
|
|
5673
|
-
"strict":
|
|
7253
|
+
"score": 90.0,
|
|
7254
|
+
"strict": 90.0
|
|
5674
7255
|
},
|
|
5675
7256
|
"API coherence": {
|
|
5676
|
-
"score":
|
|
5677
|
-
"strict":
|
|
7257
|
+
"score": 85.0,
|
|
7258
|
+
"strict": 85.0
|
|
5678
7259
|
},
|
|
5679
7260
|
"Auth consistency": {
|
|
5680
7261
|
"score": 100.0,
|
|
5681
7262
|
"strict": 100.0
|
|
5682
7263
|
},
|
|
5683
7264
|
"Stale migration": {
|
|
5684
|
-
"score":
|
|
5685
|
-
"strict":
|
|
7265
|
+
"score": 95.0,
|
|
7266
|
+
"strict": 95.0
|
|
5686
7267
|
},
|
|
5687
7268
|
"Structure nav": {
|
|
5688
|
-
"score":
|
|
5689
|
-
"strict":
|
|
7269
|
+
"score": 94.0,
|
|
7270
|
+
"strict": 94.0
|
|
5690
7271
|
},
|
|
5691
7272
|
"Design coherence": {
|
|
5692
|
-
"score":
|
|
5693
|
-
"strict":
|
|
7273
|
+
"score": 87.0,
|
|
7274
|
+
"strict": 87.0
|
|
5694
7275
|
}
|
|
5695
7276
|
}
|
|
5696
7277
|
},
|
|
5697
7278
|
{
|
|
5698
|
-
"timestamp": "2026-03-15T05:
|
|
7279
|
+
"timestamp": "2026-03-15T05:08:48+00:00",
|
|
5699
7280
|
"lang": "typescript",
|
|
5700
|
-
"strict_score":
|
|
5701
|
-
"verified_strict_score":
|
|
5702
|
-
"objective_score":
|
|
5703
|
-
"overall_score":
|
|
5704
|
-
"open":
|
|
5705
|
-
"diff_new":
|
|
5706
|
-
"diff_resolved":
|
|
7281
|
+
"strict_score": 87.7,
|
|
7282
|
+
"verified_strict_score": 85.4,
|
|
7283
|
+
"objective_score": 85.4,
|
|
7284
|
+
"overall_score": 87.7,
|
|
7285
|
+
"open": 31,
|
|
7286
|
+
"diff_new": 0,
|
|
7287
|
+
"diff_resolved": 19,
|
|
5707
7288
|
"ignored": 0,
|
|
5708
|
-
"raw_findings":
|
|
7289
|
+
"raw_findings": 30,
|
|
5709
7290
|
"suppressed_pct": 0.0,
|
|
5710
7291
|
"ignore_patterns": 0,
|
|
5711
7292
|
"subjective_integrity": {
|
|
5712
|
-
"status": "
|
|
5713
|
-
"matched_count":
|
|
7293
|
+
"status": "warn",
|
|
7294
|
+
"matched_count": 1,
|
|
5714
7295
|
"reset_count": 0,
|
|
5715
|
-
"target_score":
|
|
7296
|
+
"target_score": 95.0
|
|
5716
7297
|
},
|
|
5717
7298
|
"score_confidence": {
|
|
5718
7299
|
"status": "full",
|
|
@@ -5726,16 +7307,16 @@
|
|
|
5726
7307
|
"strict": 100.0
|
|
5727
7308
|
},
|
|
5728
7309
|
"Code quality": {
|
|
5729
|
-
"score":
|
|
5730
|
-
"strict":
|
|
7310
|
+
"score": 96.4,
|
|
7311
|
+
"strict": 96.4
|
|
5731
7312
|
},
|
|
5732
7313
|
"Duplication": {
|
|
5733
|
-
"score":
|
|
5734
|
-
"strict":
|
|
7314
|
+
"score": 99.0,
|
|
7315
|
+
"strict": 99.0
|
|
5735
7316
|
},
|
|
5736
7317
|
"Test health": {
|
|
5737
|
-
"score":
|
|
5738
|
-
"strict":
|
|
7318
|
+
"score": 63.1,
|
|
7319
|
+
"strict": 63.1
|
|
5739
7320
|
},
|
|
5740
7321
|
"Security": {
|
|
5741
7322
|
"score": 100.0,
|
|
@@ -5796,17 +7377,17 @@
|
|
|
5796
7377
|
}
|
|
5797
7378
|
},
|
|
5798
7379
|
{
|
|
5799
|
-
"timestamp": "2026-03-
|
|
7380
|
+
"timestamp": "2026-03-15T18:53:52+00:00",
|
|
5800
7381
|
"lang": "typescript",
|
|
5801
|
-
"strict_score": 87.
|
|
5802
|
-
"verified_strict_score": 85.
|
|
5803
|
-
"objective_score":
|
|
5804
|
-
"overall_score":
|
|
5805
|
-
"open":
|
|
5806
|
-
"diff_new":
|
|
7382
|
+
"strict_score": 87.7,
|
|
7383
|
+
"verified_strict_score": 85.4,
|
|
7384
|
+
"objective_score": 100.0,
|
|
7385
|
+
"overall_score": 93.6,
|
|
7386
|
+
"open": 0,
|
|
7387
|
+
"diff_new": 0,
|
|
5807
7388
|
"diff_resolved": 0,
|
|
5808
7389
|
"ignored": 0,
|
|
5809
|
-
"raw_findings":
|
|
7390
|
+
"raw_findings": 30,
|
|
5810
7391
|
"suppressed_pct": 0.0,
|
|
5811
7392
|
"ignore_patterns": 0,
|
|
5812
7393
|
"subjective_integrity": {
|
|
@@ -5827,15 +7408,15 @@
|
|
|
5827
7408
|
"strict": 100.0
|
|
5828
7409
|
},
|
|
5829
7410
|
"Code quality": {
|
|
5830
|
-
"score":
|
|
7411
|
+
"score": 100.0,
|
|
5831
7412
|
"strict": 96.4
|
|
5832
7413
|
},
|
|
5833
7414
|
"Duplication": {
|
|
5834
|
-
"score":
|
|
7415
|
+
"score": 100.0,
|
|
5835
7416
|
"strict": 99.0
|
|
5836
7417
|
},
|
|
5837
7418
|
"Test health": {
|
|
5838
|
-
"score":
|
|
7419
|
+
"score": 100.0,
|
|
5839
7420
|
"strict": 63.1
|
|
5840
7421
|
},
|
|
5841
7422
|
"Security": {
|
|
@@ -5897,22 +7478,123 @@
|
|
|
5897
7478
|
}
|
|
5898
7479
|
},
|
|
5899
7480
|
{
|
|
5900
|
-
"timestamp": "2026-03-
|
|
7481
|
+
"timestamp": "2026-03-15T19:12:25+00:00",
|
|
5901
7482
|
"lang": "typescript",
|
|
5902
|
-
"strict_score":
|
|
5903
|
-
"verified_strict_score":
|
|
5904
|
-
"objective_score":
|
|
5905
|
-
"overall_score":
|
|
5906
|
-
"open":
|
|
7483
|
+
"strict_score": 84.9,
|
|
7484
|
+
"verified_strict_score": 100.0,
|
|
7485
|
+
"objective_score": 100.0,
|
|
7486
|
+
"overall_score": 84.9,
|
|
7487
|
+
"open": 23,
|
|
7488
|
+
"diff_new": 23,
|
|
7489
|
+
"diff_resolved": 31,
|
|
7490
|
+
"ignored": 0,
|
|
7491
|
+
"raw_findings": 23,
|
|
7492
|
+
"suppressed_pct": 0.0,
|
|
7493
|
+
"ignore_patterns": 0,
|
|
7494
|
+
"subjective_integrity": {
|
|
7495
|
+
"status": "disabled",
|
|
7496
|
+
"matched_count": 0,
|
|
7497
|
+
"reset_count": 0,
|
|
7498
|
+
"target_score": null
|
|
7499
|
+
},
|
|
7500
|
+
"score_confidence": {
|
|
7501
|
+
"status": "full",
|
|
7502
|
+
"confidence": 1.0,
|
|
7503
|
+
"detector_count": 0,
|
|
7504
|
+
"dimension_count": 0
|
|
7505
|
+
},
|
|
7506
|
+
"dimension_scores": {
|
|
7507
|
+
"File health": {
|
|
7508
|
+
"score": 100.0,
|
|
7509
|
+
"strict": 100.0
|
|
7510
|
+
},
|
|
7511
|
+
"Code quality": {
|
|
7512
|
+
"score": 100.0,
|
|
7513
|
+
"strict": 100.0
|
|
7514
|
+
},
|
|
7515
|
+
"Duplication": {
|
|
7516
|
+
"score": 100.0,
|
|
7517
|
+
"strict": 100.0
|
|
7518
|
+
},
|
|
7519
|
+
"Test health": {
|
|
7520
|
+
"score": 100.0,
|
|
7521
|
+
"strict": 100.0
|
|
7522
|
+
},
|
|
7523
|
+
"Security": {
|
|
7524
|
+
"score": 100.0,
|
|
7525
|
+
"strict": 100.0
|
|
7526
|
+
},
|
|
7527
|
+
"Error consistency": {
|
|
7528
|
+
"score": 67.8,
|
|
7529
|
+
"strict": 67.8
|
|
7530
|
+
},
|
|
7531
|
+
"Abstraction fit": {
|
|
7532
|
+
"score": 79.3,
|
|
7533
|
+
"strict": 79.3
|
|
7534
|
+
},
|
|
7535
|
+
"AI generated debt": {
|
|
7536
|
+
"score": 86.5,
|
|
7537
|
+
"strict": 86.5
|
|
7538
|
+
},
|
|
7539
|
+
"High elegance": {
|
|
7540
|
+
"score": 66.7,
|
|
7541
|
+
"strict": 66.7
|
|
7542
|
+
},
|
|
7543
|
+
"Mid elegance": {
|
|
7544
|
+
"score": 82.3,
|
|
7545
|
+
"strict": 82.3
|
|
7546
|
+
},
|
|
7547
|
+
"Low elegance": {
|
|
7548
|
+
"score": 78.3,
|
|
7549
|
+
"strict": 78.3
|
|
7550
|
+
},
|
|
7551
|
+
"Cross-module arch": {
|
|
7552
|
+
"score": 73.2,
|
|
7553
|
+
"strict": 73.2
|
|
7554
|
+
},
|
|
7555
|
+
"Convention drift": {
|
|
7556
|
+
"score": 78.8,
|
|
7557
|
+
"strict": 78.8
|
|
7558
|
+
},
|
|
7559
|
+
"API coherence": {
|
|
7560
|
+
"score": 67.3,
|
|
7561
|
+
"strict": 67.3
|
|
7562
|
+
},
|
|
7563
|
+
"Auth consistency": {
|
|
7564
|
+
"score": 92.8,
|
|
7565
|
+
"strict": 92.8
|
|
7566
|
+
},
|
|
7567
|
+
"Stale migration": {
|
|
7568
|
+
"score": 95.7,
|
|
7569
|
+
"strict": 95.7
|
|
7570
|
+
},
|
|
7571
|
+
"Structure nav": {
|
|
7572
|
+
"score": 61.6,
|
|
7573
|
+
"strict": 61.6
|
|
7574
|
+
},
|
|
7575
|
+
"Design coherence": {
|
|
7576
|
+
"score": 72.8,
|
|
7577
|
+
"strict": 72.8
|
|
7578
|
+
}
|
|
7579
|
+
}
|
|
7580
|
+
},
|
|
7581
|
+
{
|
|
7582
|
+
"timestamp": "2026-03-15T19:12:32+00:00",
|
|
7583
|
+
"lang": "typescript",
|
|
7584
|
+
"strict_score": 79.1,
|
|
7585
|
+
"verified_strict_score": 85.5,
|
|
7586
|
+
"objective_score": 85.5,
|
|
7587
|
+
"overall_score": 79.1,
|
|
7588
|
+
"open": 54,
|
|
5907
7589
|
"diff_new": 0,
|
|
5908
|
-
"diff_resolved":
|
|
7590
|
+
"diff_resolved": 0,
|
|
5909
7591
|
"ignored": 0,
|
|
5910
|
-
"raw_findings":
|
|
7592
|
+
"raw_findings": 31,
|
|
5911
7593
|
"suppressed_pct": 0.0,
|
|
5912
7594
|
"ignore_patterns": 0,
|
|
5913
7595
|
"subjective_integrity": {
|
|
5914
|
-
"status": "
|
|
5915
|
-
"matched_count":
|
|
7596
|
+
"status": "pass",
|
|
7597
|
+
"matched_count": 0,
|
|
5916
7598
|
"reset_count": 0,
|
|
5917
7599
|
"target_score": 95.0
|
|
5918
7600
|
},
|
|
@@ -5944,56 +7626,56 @@
|
|
|
5944
7626
|
"strict": 100.0
|
|
5945
7627
|
},
|
|
5946
7628
|
"Error consistency": {
|
|
5947
|
-
"score":
|
|
5948
|
-
"strict":
|
|
7629
|
+
"score": 67.8,
|
|
7630
|
+
"strict": 67.8
|
|
5949
7631
|
},
|
|
5950
7632
|
"Abstraction fit": {
|
|
5951
|
-
"score":
|
|
5952
|
-
"strict":
|
|
7633
|
+
"score": 79.3,
|
|
7634
|
+
"strict": 79.3
|
|
5953
7635
|
},
|
|
5954
7636
|
"AI generated debt": {
|
|
5955
|
-
"score":
|
|
5956
|
-
"strict":
|
|
7637
|
+
"score": 86.5,
|
|
7638
|
+
"strict": 86.5
|
|
5957
7639
|
},
|
|
5958
7640
|
"High elegance": {
|
|
5959
|
-
"score":
|
|
5960
|
-
"strict":
|
|
7641
|
+
"score": 66.7,
|
|
7642
|
+
"strict": 66.7
|
|
5961
7643
|
},
|
|
5962
7644
|
"Mid elegance": {
|
|
5963
|
-
"score":
|
|
5964
|
-
"strict":
|
|
7645
|
+
"score": 82.3,
|
|
7646
|
+
"strict": 82.3
|
|
5965
7647
|
},
|
|
5966
7648
|
"Low elegance": {
|
|
5967
|
-
"score":
|
|
5968
|
-
"strict":
|
|
7649
|
+
"score": 78.3,
|
|
7650
|
+
"strict": 78.3
|
|
5969
7651
|
},
|
|
5970
7652
|
"Cross-module arch": {
|
|
5971
|
-
"score":
|
|
5972
|
-
"strict":
|
|
7653
|
+
"score": 73.2,
|
|
7654
|
+
"strict": 73.2
|
|
5973
7655
|
},
|
|
5974
7656
|
"Convention drift": {
|
|
5975
|
-
"score":
|
|
5976
|
-
"strict":
|
|
7657
|
+
"score": 78.8,
|
|
7658
|
+
"strict": 78.8
|
|
5977
7659
|
},
|
|
5978
7660
|
"API coherence": {
|
|
5979
|
-
"score":
|
|
5980
|
-
"strict":
|
|
7661
|
+
"score": 67.3,
|
|
7662
|
+
"strict": 67.3
|
|
5981
7663
|
},
|
|
5982
7664
|
"Auth consistency": {
|
|
5983
|
-
"score":
|
|
5984
|
-
"strict":
|
|
7665
|
+
"score": 92.8,
|
|
7666
|
+
"strict": 92.8
|
|
5985
7667
|
},
|
|
5986
7668
|
"Stale migration": {
|
|
5987
|
-
"score": 95.
|
|
5988
|
-
"strict": 95.
|
|
7669
|
+
"score": 95.7,
|
|
7670
|
+
"strict": 95.7
|
|
5989
7671
|
},
|
|
5990
7672
|
"Structure nav": {
|
|
5991
|
-
"score":
|
|
5992
|
-
"strict":
|
|
7673
|
+
"score": 61.6,
|
|
7674
|
+
"strict": 61.6
|
|
5993
7675
|
},
|
|
5994
7676
|
"Design coherence": {
|
|
5995
|
-
"score":
|
|
5996
|
-
"strict":
|
|
7677
|
+
"score": 72.8,
|
|
7678
|
+
"strict": 72.8
|
|
5997
7679
|
}
|
|
5998
7680
|
}
|
|
5999
7681
|
}
|
|
@@ -6020,7 +7702,7 @@
|
|
|
6020
7702
|
"naming": 10,
|
|
6021
7703
|
"facade": 29,
|
|
6022
7704
|
"test_coverage": 240,
|
|
6023
|
-
"smells":
|
|
7705
|
+
"smells": 32,
|
|
6024
7706
|
"react": 0,
|
|
6025
7707
|
"security": 29,
|
|
6026
7708
|
"subjective_review": 23,
|
|
@@ -6032,7 +7714,7 @@
|
|
|
6032
7714
|
"codebase_metrics": {
|
|
6033
7715
|
"typescript": {
|
|
6034
7716
|
"total_files": 41,
|
|
6035
|
-
"total_loc":
|
|
7717
|
+
"total_loc": 6077,
|
|
6036
7718
|
"total_directories": 10
|
|
6037
7719
|
}
|
|
6038
7720
|
},
|
|
@@ -6058,7 +7740,7 @@
|
|
|
6058
7740
|
"score": 100.0,
|
|
6059
7741
|
"strict_score": 96.4,
|
|
6060
7742
|
"verified_strict_score": 96.4,
|
|
6061
|
-
"checks":
|
|
7743
|
+
"checks": 170,
|
|
6062
7744
|
"issues": 0,
|
|
6063
7745
|
"tier": 3,
|
|
6064
7746
|
"detectors": {
|
|
@@ -6081,7 +7763,7 @@
|
|
|
6081
7763
|
"weighted_failures": 0.0
|
|
6082
7764
|
},
|
|
6083
7765
|
"smells": {
|
|
6084
|
-
"potential":
|
|
7766
|
+
"potential": 32,
|
|
6085
7767
|
"pass_rate": 1.0,
|
|
6086
7768
|
"issues": 0,
|
|
6087
7769
|
"weighted_failures": 0.0
|
|
@@ -6120,11 +7802,11 @@
|
|
|
6120
7802
|
"strict": 96.4
|
|
6121
7803
|
},
|
|
6122
7804
|
"Duplication": {
|
|
6123
|
-
"score":
|
|
7805
|
+
"score": 100.0,
|
|
6124
7806
|
"strict_score": 99.0,
|
|
6125
7807
|
"verified_strict_score": 99.0,
|
|
6126
7808
|
"checks": 69,
|
|
6127
|
-
"issues":
|
|
7809
|
+
"issues": 0,
|
|
6128
7810
|
"tier": 3,
|
|
6129
7811
|
"detectors": {
|
|
6130
7812
|
"dupes": {
|
|
@@ -6135,9 +7817,9 @@
|
|
|
6135
7817
|
},
|
|
6136
7818
|
"boilerplate_duplication": {
|
|
6137
7819
|
"potential": 2,
|
|
6138
|
-
"pass_rate": 0
|
|
6139
|
-
"issues":
|
|
6140
|
-
"weighted_failures": 0.
|
|
7820
|
+
"pass_rate": 1.0,
|
|
7821
|
+
"issues": 0,
|
|
7822
|
+
"weighted_failures": 0.0
|
|
6141
7823
|
}
|
|
6142
7824
|
},
|
|
6143
7825
|
"strict": 99.0
|
|
@@ -6189,295 +7871,304 @@
|
|
|
6189
7871
|
"strict": 100.0
|
|
6190
7872
|
},
|
|
6191
7873
|
"Error consistency": {
|
|
6192
|
-
"score":
|
|
6193
|
-
"strict_score":
|
|
6194
|
-
"verified_strict_score":
|
|
7874
|
+
"score": 67.8,
|
|
7875
|
+
"strict_score": 67.8,
|
|
7876
|
+
"verified_strict_score": 67.8,
|
|
6195
7877
|
"checks": 10,
|
|
6196
7878
|
"issues": 0,
|
|
6197
7879
|
"tier": 4,
|
|
6198
7880
|
"detectors": {
|
|
6199
7881
|
"subjective_assessment": {
|
|
6200
7882
|
"potential": 10,
|
|
6201
|
-
"pass_rate": 0.
|
|
7883
|
+
"pass_rate": 0.678,
|
|
6202
7884
|
"issues": 0,
|
|
6203
|
-
"weighted_failures":
|
|
6204
|
-
"assessment_score":
|
|
7885
|
+
"weighted_failures": 3.22,
|
|
7886
|
+
"assessment_score": 67.8,
|
|
6205
7887
|
"placeholder": false,
|
|
6206
7888
|
"dimension_key": "error_consistency",
|
|
6207
7889
|
"configured_weight": 3.0,
|
|
6208
7890
|
"components": []
|
|
6209
7891
|
}
|
|
6210
7892
|
},
|
|
6211
|
-
"strict":
|
|
7893
|
+
"strict": 67.8
|
|
6212
7894
|
},
|
|
6213
7895
|
"Abstraction fit": {
|
|
6214
|
-
"score":
|
|
6215
|
-
"strict_score":
|
|
6216
|
-
"verified_strict_score":
|
|
7896
|
+
"score": 79.3,
|
|
7897
|
+
"strict_score": 79.3,
|
|
7898
|
+
"verified_strict_score": 79.3,
|
|
6217
7899
|
"checks": 10,
|
|
6218
7900
|
"issues": 0,
|
|
6219
7901
|
"tier": 4,
|
|
6220
7902
|
"detectors": {
|
|
6221
7903
|
"subjective_assessment": {
|
|
6222
7904
|
"potential": 10,
|
|
6223
|
-
"pass_rate": 0.
|
|
7905
|
+
"pass_rate": 0.793,
|
|
6224
7906
|
"issues": 0,
|
|
6225
|
-
"weighted_failures":
|
|
6226
|
-
"assessment_score":
|
|
7907
|
+
"weighted_failures": 2.07,
|
|
7908
|
+
"assessment_score": 79.3,
|
|
6227
7909
|
"placeholder": false,
|
|
6228
7910
|
"dimension_key": "abstraction_fitness",
|
|
6229
7911
|
"configured_weight": 8.0,
|
|
6230
|
-
"components": [
|
|
7912
|
+
"components": [
|
|
7913
|
+
"Abstraction Leverage",
|
|
7914
|
+
"Indirection Cost",
|
|
7915
|
+
"Interface Honesty"
|
|
7916
|
+
],
|
|
7917
|
+
"component_scores": {
|
|
7918
|
+
"Abstraction Leverage": 82.0,
|
|
7919
|
+
"Indirection Cost": 85.7,
|
|
7920
|
+
"Interface Honesty": 86.0
|
|
7921
|
+
}
|
|
6231
7922
|
}
|
|
6232
7923
|
},
|
|
6233
|
-
"strict":
|
|
7924
|
+
"strict": 79.3
|
|
6234
7925
|
},
|
|
6235
7926
|
"AI generated debt": {
|
|
6236
|
-
"score":
|
|
6237
|
-
"strict_score":
|
|
6238
|
-
"verified_strict_score":
|
|
7927
|
+
"score": 86.5,
|
|
7928
|
+
"strict_score": 86.5,
|
|
7929
|
+
"verified_strict_score": 86.5,
|
|
6239
7930
|
"checks": 10,
|
|
6240
7931
|
"issues": 0,
|
|
6241
7932
|
"tier": 4,
|
|
6242
7933
|
"detectors": {
|
|
6243
7934
|
"subjective_assessment": {
|
|
6244
7935
|
"potential": 10,
|
|
6245
|
-
"pass_rate": 0.
|
|
7936
|
+
"pass_rate": 0.865,
|
|
6246
7937
|
"issues": 0,
|
|
6247
|
-
"weighted_failures": 1.
|
|
6248
|
-
"assessment_score":
|
|
7938
|
+
"weighted_failures": 1.35,
|
|
7939
|
+
"assessment_score": 86.5,
|
|
6249
7940
|
"placeholder": false,
|
|
6250
7941
|
"dimension_key": "ai_generated_debt",
|
|
6251
7942
|
"configured_weight": 1.0,
|
|
6252
7943
|
"components": []
|
|
6253
7944
|
}
|
|
6254
7945
|
},
|
|
6255
|
-
"strict":
|
|
7946
|
+
"strict": 86.5
|
|
6256
7947
|
},
|
|
6257
7948
|
"High elegance": {
|
|
6258
|
-
"score":
|
|
6259
|
-
"strict_score":
|
|
6260
|
-
"verified_strict_score":
|
|
7949
|
+
"score": 66.7,
|
|
7950
|
+
"strict_score": 66.7,
|
|
7951
|
+
"verified_strict_score": 66.7,
|
|
6261
7952
|
"checks": 10,
|
|
6262
7953
|
"issues": 0,
|
|
6263
7954
|
"tier": 4,
|
|
6264
7955
|
"detectors": {
|
|
6265
7956
|
"subjective_assessment": {
|
|
6266
7957
|
"potential": 10,
|
|
6267
|
-
"pass_rate": 0.
|
|
7958
|
+
"pass_rate": 0.667,
|
|
6268
7959
|
"issues": 0,
|
|
6269
|
-
"weighted_failures":
|
|
6270
|
-
"assessment_score":
|
|
7960
|
+
"weighted_failures": 3.33,
|
|
7961
|
+
"assessment_score": 66.7,
|
|
6271
7962
|
"placeholder": false,
|
|
6272
7963
|
"dimension_key": "high_level_elegance",
|
|
6273
7964
|
"configured_weight": 22.0,
|
|
6274
7965
|
"components": []
|
|
6275
7966
|
}
|
|
6276
7967
|
},
|
|
6277
|
-
"strict":
|
|
7968
|
+
"strict": 66.7
|
|
6278
7969
|
},
|
|
6279
7970
|
"Mid elegance": {
|
|
6280
|
-
"score":
|
|
6281
|
-
"strict_score":
|
|
6282
|
-
"verified_strict_score":
|
|
7971
|
+
"score": 82.3,
|
|
7972
|
+
"strict_score": 82.3,
|
|
7973
|
+
"verified_strict_score": 82.3,
|
|
6283
7974
|
"checks": 10,
|
|
6284
7975
|
"issues": 0,
|
|
6285
7976
|
"tier": 4,
|
|
6286
7977
|
"detectors": {
|
|
6287
7978
|
"subjective_assessment": {
|
|
6288
7979
|
"potential": 10,
|
|
6289
|
-
"pass_rate": 0.
|
|
7980
|
+
"pass_rate": 0.823,
|
|
6290
7981
|
"issues": 0,
|
|
6291
|
-
"weighted_failures": 1.
|
|
6292
|
-
"assessment_score":
|
|
7982
|
+
"weighted_failures": 1.77,
|
|
7983
|
+
"assessment_score": 82.3,
|
|
6293
7984
|
"placeholder": false,
|
|
6294
7985
|
"dimension_key": "mid_level_elegance",
|
|
6295
7986
|
"configured_weight": 22.0,
|
|
6296
7987
|
"components": []
|
|
6297
7988
|
}
|
|
6298
7989
|
},
|
|
6299
|
-
"strict":
|
|
7990
|
+
"strict": 82.3
|
|
6300
7991
|
},
|
|
6301
7992
|
"Low elegance": {
|
|
6302
|
-
"score":
|
|
6303
|
-
"strict_score":
|
|
6304
|
-
"verified_strict_score":
|
|
7993
|
+
"score": 78.3,
|
|
7994
|
+
"strict_score": 78.3,
|
|
7995
|
+
"verified_strict_score": 78.3,
|
|
6305
7996
|
"checks": 10,
|
|
6306
7997
|
"issues": 0,
|
|
6307
7998
|
"tier": 4,
|
|
6308
7999
|
"detectors": {
|
|
6309
8000
|
"subjective_assessment": {
|
|
6310
8001
|
"potential": 10,
|
|
6311
|
-
"pass_rate": 0.
|
|
8002
|
+
"pass_rate": 0.783,
|
|
6312
8003
|
"issues": 0,
|
|
6313
|
-
"weighted_failures":
|
|
6314
|
-
"assessment_score":
|
|
8004
|
+
"weighted_failures": 2.17,
|
|
8005
|
+
"assessment_score": 78.3,
|
|
6315
8006
|
"placeholder": false,
|
|
6316
8007
|
"dimension_key": "low_level_elegance",
|
|
6317
8008
|
"configured_weight": 12.0,
|
|
6318
8009
|
"components": []
|
|
6319
8010
|
}
|
|
6320
8011
|
},
|
|
6321
|
-
"strict":
|
|
8012
|
+
"strict": 78.3
|
|
6322
8013
|
},
|
|
6323
8014
|
"Cross-module arch": {
|
|
6324
|
-
"score":
|
|
6325
|
-
"strict_score":
|
|
6326
|
-
"verified_strict_score":
|
|
8015
|
+
"score": 73.2,
|
|
8016
|
+
"strict_score": 73.2,
|
|
8017
|
+
"verified_strict_score": 73.2,
|
|
6327
8018
|
"checks": 10,
|
|
6328
8019
|
"issues": 0,
|
|
6329
8020
|
"tier": 4,
|
|
6330
8021
|
"detectors": {
|
|
6331
8022
|
"subjective_assessment": {
|
|
6332
8023
|
"potential": 10,
|
|
6333
|
-
"pass_rate": 0.
|
|
8024
|
+
"pass_rate": 0.732,
|
|
6334
8025
|
"issues": 0,
|
|
6335
|
-
"weighted_failures":
|
|
6336
|
-
"assessment_score":
|
|
8026
|
+
"weighted_failures": 2.68,
|
|
8027
|
+
"assessment_score": 73.2,
|
|
6337
8028
|
"placeholder": false,
|
|
6338
8029
|
"dimension_key": "cross_module_architecture",
|
|
6339
8030
|
"configured_weight": 1.0,
|
|
6340
8031
|
"components": []
|
|
6341
8032
|
}
|
|
6342
8033
|
},
|
|
6343
|
-
"strict":
|
|
8034
|
+
"strict": 73.2
|
|
6344
8035
|
},
|
|
6345
8036
|
"Convention drift": {
|
|
6346
|
-
"score":
|
|
6347
|
-
"strict_score":
|
|
6348
|
-
"verified_strict_score":
|
|
8037
|
+
"score": 78.8,
|
|
8038
|
+
"strict_score": 78.8,
|
|
8039
|
+
"verified_strict_score": 78.8,
|
|
6349
8040
|
"checks": 10,
|
|
6350
8041
|
"issues": 0,
|
|
6351
8042
|
"tier": 4,
|
|
6352
8043
|
"detectors": {
|
|
6353
8044
|
"subjective_assessment": {
|
|
6354
8045
|
"potential": 10,
|
|
6355
|
-
"pass_rate": 0.
|
|
8046
|
+
"pass_rate": 0.788,
|
|
6356
8047
|
"issues": 0,
|
|
6357
|
-
"weighted_failures":
|
|
6358
|
-
"assessment_score":
|
|
8048
|
+
"weighted_failures": 2.12,
|
|
8049
|
+
"assessment_score": 78.8,
|
|
6359
8050
|
"placeholder": false,
|
|
6360
8051
|
"dimension_key": "convention_outlier",
|
|
6361
8052
|
"configured_weight": 1.0,
|
|
6362
8053
|
"components": []
|
|
6363
8054
|
}
|
|
6364
8055
|
},
|
|
6365
|
-
"strict":
|
|
8056
|
+
"strict": 78.8
|
|
6366
8057
|
},
|
|
6367
8058
|
"API coherence": {
|
|
6368
|
-
"score":
|
|
6369
|
-
"strict_score":
|
|
6370
|
-
"verified_strict_score":
|
|
8059
|
+
"score": 67.3,
|
|
8060
|
+
"strict_score": 67.3,
|
|
8061
|
+
"verified_strict_score": 67.3,
|
|
6371
8062
|
"checks": 10,
|
|
6372
8063
|
"issues": 0,
|
|
6373
8064
|
"tier": 4,
|
|
6374
8065
|
"detectors": {
|
|
6375
8066
|
"subjective_assessment": {
|
|
6376
8067
|
"potential": 10,
|
|
6377
|
-
"pass_rate": 0.
|
|
8068
|
+
"pass_rate": 0.673,
|
|
6378
8069
|
"issues": 0,
|
|
6379
|
-
"weighted_failures":
|
|
6380
|
-
"assessment_score":
|
|
8070
|
+
"weighted_failures": 3.27,
|
|
8071
|
+
"assessment_score": 67.3,
|
|
6381
8072
|
"placeholder": false,
|
|
6382
8073
|
"dimension_key": "api_surface_coherence",
|
|
6383
8074
|
"configured_weight": 1.0,
|
|
6384
8075
|
"components": []
|
|
6385
8076
|
}
|
|
6386
8077
|
},
|
|
6387
|
-
"strict":
|
|
8078
|
+
"strict": 67.3
|
|
6388
8079
|
},
|
|
6389
8080
|
"Auth consistency": {
|
|
6390
|
-
"score":
|
|
6391
|
-
"strict_score":
|
|
6392
|
-
"verified_strict_score":
|
|
8081
|
+
"score": 92.8,
|
|
8082
|
+
"strict_score": 92.8,
|
|
8083
|
+
"verified_strict_score": 92.8,
|
|
6393
8084
|
"checks": 10,
|
|
6394
8085
|
"issues": 0,
|
|
6395
8086
|
"tier": 4,
|
|
6396
8087
|
"detectors": {
|
|
6397
8088
|
"subjective_assessment": {
|
|
6398
8089
|
"potential": 10,
|
|
6399
|
-
"pass_rate":
|
|
8090
|
+
"pass_rate": 0.928,
|
|
6400
8091
|
"issues": 0,
|
|
6401
|
-
"weighted_failures": 0.
|
|
6402
|
-
"assessment_score":
|
|
8092
|
+
"weighted_failures": 0.72,
|
|
8093
|
+
"assessment_score": 92.8,
|
|
6403
8094
|
"placeholder": false,
|
|
6404
8095
|
"dimension_key": "authorization_consistency",
|
|
6405
8096
|
"configured_weight": 1.0,
|
|
6406
8097
|
"components": []
|
|
6407
8098
|
}
|
|
6408
8099
|
},
|
|
6409
|
-
"strict":
|
|
8100
|
+
"strict": 92.8
|
|
6410
8101
|
},
|
|
6411
8102
|
"Stale migration": {
|
|
6412
|
-
"score": 95.
|
|
6413
|
-
"strict_score": 95.
|
|
6414
|
-
"verified_strict_score": 95.
|
|
8103
|
+
"score": 95.7,
|
|
8104
|
+
"strict_score": 95.7,
|
|
8105
|
+
"verified_strict_score": 95.7,
|
|
6415
8106
|
"checks": 10,
|
|
6416
8107
|
"issues": 0,
|
|
6417
8108
|
"tier": 4,
|
|
6418
8109
|
"detectors": {
|
|
6419
8110
|
"subjective_assessment": {
|
|
6420
8111
|
"potential": 10,
|
|
6421
|
-
"pass_rate": 0.
|
|
8112
|
+
"pass_rate": 0.957,
|
|
6422
8113
|
"issues": 0,
|
|
6423
|
-
"weighted_failures": 0.
|
|
6424
|
-
"assessment_score": 95.
|
|
8114
|
+
"weighted_failures": 0.43,
|
|
8115
|
+
"assessment_score": 95.7,
|
|
6425
8116
|
"placeholder": false,
|
|
6426
8117
|
"dimension_key": "incomplete_migration",
|
|
6427
8118
|
"configured_weight": 1.0,
|
|
6428
8119
|
"components": []
|
|
6429
8120
|
}
|
|
6430
8121
|
},
|
|
6431
|
-
"strict": 95.
|
|
8122
|
+
"strict": 95.7
|
|
6432
8123
|
},
|
|
6433
8124
|
"Structure nav": {
|
|
6434
|
-
"score":
|
|
6435
|
-
"strict_score":
|
|
6436
|
-
"verified_strict_score":
|
|
8125
|
+
"score": 61.6,
|
|
8126
|
+
"strict_score": 61.6,
|
|
8127
|
+
"verified_strict_score": 61.6,
|
|
6437
8128
|
"checks": 10,
|
|
6438
8129
|
"issues": 0,
|
|
6439
8130
|
"tier": 4,
|
|
6440
8131
|
"detectors": {
|
|
6441
8132
|
"subjective_assessment": {
|
|
6442
8133
|
"potential": 10,
|
|
6443
|
-
"pass_rate": 0.
|
|
8134
|
+
"pass_rate": 0.616,
|
|
6444
8135
|
"issues": 0,
|
|
6445
|
-
"weighted_failures":
|
|
6446
|
-
"assessment_score":
|
|
8136
|
+
"weighted_failures": 3.84,
|
|
8137
|
+
"assessment_score": 61.6,
|
|
6447
8138
|
"placeholder": false,
|
|
6448
8139
|
"dimension_key": "package_organization",
|
|
6449
8140
|
"configured_weight": 5.0,
|
|
6450
8141
|
"components": []
|
|
6451
8142
|
}
|
|
6452
8143
|
},
|
|
6453
|
-
"strict":
|
|
8144
|
+
"strict": 61.6
|
|
6454
8145
|
},
|
|
6455
8146
|
"Design coherence": {
|
|
6456
|
-
"score":
|
|
6457
|
-
"strict_score":
|
|
6458
|
-
"verified_strict_score":
|
|
8147
|
+
"score": 72.8,
|
|
8148
|
+
"strict_score": 72.8,
|
|
8149
|
+
"verified_strict_score": 72.8,
|
|
6459
8150
|
"checks": 10,
|
|
6460
8151
|
"issues": 0,
|
|
6461
8152
|
"tier": 4,
|
|
6462
8153
|
"detectors": {
|
|
6463
8154
|
"subjective_assessment": {
|
|
6464
8155
|
"potential": 10,
|
|
6465
|
-
"pass_rate": 0.
|
|
8156
|
+
"pass_rate": 0.728,
|
|
6466
8157
|
"issues": 0,
|
|
6467
|
-
"weighted_failures":
|
|
6468
|
-
"assessment_score":
|
|
8158
|
+
"weighted_failures": 2.72,
|
|
8159
|
+
"assessment_score": 72.8,
|
|
6469
8160
|
"placeholder": false,
|
|
6470
8161
|
"dimension_key": "design_coherence",
|
|
6471
8162
|
"configured_weight": 10.0,
|
|
6472
8163
|
"components": []
|
|
6473
8164
|
}
|
|
6474
8165
|
},
|
|
6475
|
-
"strict":
|
|
8166
|
+
"strict": 72.8
|
|
6476
8167
|
}
|
|
6477
8168
|
},
|
|
6478
8169
|
"reminder_history": {
|
|
6479
8170
|
"zone_classification": 3,
|
|
6480
|
-
"report_scores":
|
|
8171
|
+
"report_scores": 10,
|
|
6481
8172
|
"feedback_nudge": 3,
|
|
6482
8173
|
"review_findings_pending": 3,
|
|
6483
8174
|
"stagnant_nudge": 4,
|
|
@@ -6486,9 +8177,218 @@
|
|
|
6486
8177
|
},
|
|
6487
8178
|
"review_cache": {
|
|
6488
8179
|
"holistic": {
|
|
6489
|
-
"reviewed_at": "2026-03-
|
|
8180
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
6490
8181
|
"file_count_at_review": 41,
|
|
6491
|
-
"finding_count":
|
|
8182
|
+
"finding_count": 23,
|
|
8183
|
+
"reviewed_files_count": 41,
|
|
8184
|
+
"full_sweep_included": true
|
|
8185
|
+
},
|
|
8186
|
+
"files": {
|
|
8187
|
+
"src/types.ts": {
|
|
8188
|
+
"content_hash": "b221dd548de2b376",
|
|
8189
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8190
|
+
"finding_count": 0
|
|
8191
|
+
},
|
|
8192
|
+
"src/formats/types.ts": {
|
|
8193
|
+
"content_hash": "1b6851a6db5ad511",
|
|
8194
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8195
|
+
"finding_count": 0
|
|
8196
|
+
},
|
|
8197
|
+
"src/formats/request-helpers.ts": {
|
|
8198
|
+
"content_hash": "18a181b68e404c7e",
|
|
8199
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8200
|
+
"finding_count": 0
|
|
8201
|
+
},
|
|
8202
|
+
"src/logger.ts": {
|
|
8203
|
+
"content_hash": "cc2d63b53cf5d93b",
|
|
8204
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8205
|
+
"finding_count": 0
|
|
8206
|
+
},
|
|
8207
|
+
"src/rule-engine.ts": {
|
|
8208
|
+
"content_hash": "69ee77953fdd3b12",
|
|
8209
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8210
|
+
"finding_count": 0
|
|
8211
|
+
},
|
|
8212
|
+
"src/history.ts": {
|
|
8213
|
+
"content_hash": "777b19b5cb1ee7e7",
|
|
8214
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8215
|
+
"finding_count": 0
|
|
8216
|
+
},
|
|
8217
|
+
"test/history.test.ts": {
|
|
8218
|
+
"content_hash": "6c65896dea1b2315",
|
|
8219
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8220
|
+
"finding_count": 0
|
|
8221
|
+
},
|
|
8222
|
+
"src/cli.ts": {
|
|
8223
|
+
"content_hash": "897e9a0717868e91",
|
|
8224
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8225
|
+
"finding_count": 0
|
|
8226
|
+
},
|
|
8227
|
+
"src/formats/anthropic/schema.ts": {
|
|
8228
|
+
"content_hash": "9dc08b39938ea282",
|
|
8229
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8230
|
+
"finding_count": 0
|
|
8231
|
+
},
|
|
8232
|
+
"src/formats/openai/schema.ts": {
|
|
8233
|
+
"content_hash": "19f37eb38912b415",
|
|
8234
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8235
|
+
"finding_count": 0
|
|
8236
|
+
},
|
|
8237
|
+
"src/formats/responses/schema.ts": {
|
|
8238
|
+
"content_hash": "34908d5e507b6faa",
|
|
8239
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8240
|
+
"finding_count": 0
|
|
8241
|
+
},
|
|
8242
|
+
"src/types/request.ts": {
|
|
8243
|
+
"content_hash": "63ebbe2a0719caca",
|
|
8244
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8245
|
+
"finding_count": 0
|
|
8246
|
+
},
|
|
8247
|
+
"test/helpers/make-req.ts": {
|
|
8248
|
+
"content_hash": "2bba83baf834b0e1",
|
|
8249
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8250
|
+
"finding_count": 0
|
|
8251
|
+
},
|
|
8252
|
+
"test/cli-validators.test.ts": {
|
|
8253
|
+
"content_hash": "fd1f6cfd5c757935",
|
|
8254
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8255
|
+
"finding_count": 0
|
|
8256
|
+
},
|
|
8257
|
+
"test/mock-server.test.ts": {
|
|
8258
|
+
"content_hash": "ca3c7684253d31e5",
|
|
8259
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8260
|
+
"finding_count": 0
|
|
8261
|
+
},
|
|
8262
|
+
"test/rule-engine.test.ts": {
|
|
8263
|
+
"content_hash": "2f18fddb17e6aa76",
|
|
8264
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8265
|
+
"finding_count": 0
|
|
8266
|
+
},
|
|
8267
|
+
"src/cli-validators.ts": {
|
|
8268
|
+
"content_hash": "dcda1a1cb2052d67",
|
|
8269
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8270
|
+
"finding_count": 0
|
|
8271
|
+
},
|
|
8272
|
+
"src/mock-server.ts": {
|
|
8273
|
+
"content_hash": "6f522f864517d346",
|
|
8274
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8275
|
+
"finding_count": 0
|
|
8276
|
+
},
|
|
8277
|
+
"test/formats/anthropic.test.ts": {
|
|
8278
|
+
"content_hash": "4d1b4c6f5cb8596c",
|
|
8279
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8280
|
+
"finding_count": 0
|
|
8281
|
+
},
|
|
8282
|
+
"src/formats/responses/serialize.ts": {
|
|
8283
|
+
"content_hash": "61ac2854076d1fd4",
|
|
8284
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8285
|
+
"finding_count": 0
|
|
8286
|
+
},
|
|
8287
|
+
"test/formats/responses.test.ts": {
|
|
8288
|
+
"content_hash": "31412ab06123bda5",
|
|
8289
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8290
|
+
"finding_count": 0
|
|
8291
|
+
},
|
|
8292
|
+
"src/loader.ts": {
|
|
8293
|
+
"content_hash": "7392ea2c06294396",
|
|
8294
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8295
|
+
"finding_count": 0
|
|
8296
|
+
},
|
|
8297
|
+
"test/formats/openai.test.ts": {
|
|
8298
|
+
"content_hash": "8129b81740311d59",
|
|
8299
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8300
|
+
"finding_count": 0
|
|
8301
|
+
},
|
|
8302
|
+
"test/loader.test.ts": {
|
|
8303
|
+
"content_hash": "90925c506447c0ff",
|
|
8304
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8305
|
+
"finding_count": 0
|
|
8306
|
+
},
|
|
8307
|
+
"test/logger.test.ts": {
|
|
8308
|
+
"content_hash": "b5906dbcb870d043",
|
|
8309
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8310
|
+
"finding_count": 0
|
|
8311
|
+
},
|
|
8312
|
+
"src/formats/openai/serialize.ts": {
|
|
8313
|
+
"content_hash": "18e736608a179b08",
|
|
8314
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8315
|
+
"finding_count": 0
|
|
8316
|
+
},
|
|
8317
|
+
"src/types/rule.ts": {
|
|
8318
|
+
"content_hash": "9bd54482556f7046",
|
|
8319
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8320
|
+
"finding_count": 0
|
|
8321
|
+
},
|
|
8322
|
+
"vitest.config.ts": {
|
|
8323
|
+
"content_hash": "5f0ce27dfc7eb9e0",
|
|
8324
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8325
|
+
"finding_count": 0
|
|
8326
|
+
},
|
|
8327
|
+
"src/formats/anthropic/index.ts": {
|
|
8328
|
+
"content_hash": "17ca993eabb62ef5",
|
|
8329
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8330
|
+
"finding_count": 0
|
|
8331
|
+
},
|
|
8332
|
+
"src/formats/anthropic/parse.ts": {
|
|
8333
|
+
"content_hash": "0832b2ad7b297045",
|
|
8334
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8335
|
+
"finding_count": 0
|
|
8336
|
+
},
|
|
8337
|
+
"src/formats/serialize-helpers.ts": {
|
|
8338
|
+
"content_hash": "96055076388a0f6d",
|
|
8339
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8340
|
+
"finding_count": 0
|
|
8341
|
+
},
|
|
8342
|
+
"src/formats/openai/index.ts": {
|
|
8343
|
+
"content_hash": "dc713dbfa13b790e",
|
|
8344
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8345
|
+
"finding_count": 0
|
|
8346
|
+
},
|
|
8347
|
+
"src/formats/openai/parse.ts": {
|
|
8348
|
+
"content_hash": "37e4a427b19432f3",
|
|
8349
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8350
|
+
"finding_count": 0
|
|
8351
|
+
},
|
|
8352
|
+
"src/formats/responses/index.ts": {
|
|
8353
|
+
"content_hash": "8a092694cf19de68",
|
|
8354
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8355
|
+
"finding_count": 0
|
|
8356
|
+
},
|
|
8357
|
+
"src/formats/responses/parse.ts": {
|
|
8358
|
+
"content_hash": "330f6dd6bcd1e2d4",
|
|
8359
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8360
|
+
"finding_count": 0
|
|
8361
|
+
},
|
|
8362
|
+
"README.md": {
|
|
8363
|
+
"content_hash": "49ea8c32fd462e8e",
|
|
8364
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8365
|
+
"finding_count": 0
|
|
8366
|
+
},
|
|
8367
|
+
"src/formats/anthropic/serialize.ts": {
|
|
8368
|
+
"content_hash": "caf6e1e071be7a18",
|
|
8369
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8370
|
+
"finding_count": 0
|
|
8371
|
+
},
|
|
8372
|
+
"src/index.ts": {
|
|
8373
|
+
"content_hash": "d7d87ec508535067",
|
|
8374
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8375
|
+
"finding_count": 0
|
|
8376
|
+
},
|
|
8377
|
+
"src/route-handler.ts": {
|
|
8378
|
+
"content_hash": "4882477110ee7a76",
|
|
8379
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8380
|
+
"finding_count": 0
|
|
8381
|
+
},
|
|
8382
|
+
"src/sse-writer.ts": {
|
|
8383
|
+
"content_hash": "912ca4f9a35d4b51",
|
|
8384
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8385
|
+
"finding_count": 0
|
|
8386
|
+
},
|
|
8387
|
+
"src/types/reply.ts": {
|
|
8388
|
+
"content_hash": "6509bf0c94c7b751",
|
|
8389
|
+
"reviewed_at": "2026-03-15T19:12:25+00:00",
|
|
8390
|
+
"finding_count": 0
|
|
8391
|
+
}
|
|
6492
8392
|
}
|
|
6493
8393
|
},
|
|
6494
8394
|
"assessment_import_audit": [
|
|
@@ -6515,6 +8415,18 @@
|
|
|
6515
8415
|
"provisional_count": 0,
|
|
6516
8416
|
"attest": "I validated this review was completed without awareness of overall score and is unbiased.",
|
|
6517
8417
|
"import_file": "/Users/suyash.x.srijan/Documents/Personal_Projects/llm-mock-server/.desloppify/external_review_sessions/ext_20260315_045546_0587ea3b/canonical_import_20260315_050028.json"
|
|
8418
|
+
},
|
|
8419
|
+
{
|
|
8420
|
+
"timestamp": "2026-03-15T19:12:25+00:00",
|
|
8421
|
+
"mode": "trusted_internal",
|
|
8422
|
+
"trusted": true,
|
|
8423
|
+
"reason": "trusted internal run-batches import",
|
|
8424
|
+
"override_used": false,
|
|
8425
|
+
"attested_external": false,
|
|
8426
|
+
"provisional": false,
|
|
8427
|
+
"provisional_count": 0,
|
|
8428
|
+
"attest": "",
|
|
8429
|
+
"import_file": "/Users/suyash.x.srijan/Documents/Personal_Projects/llm-mock-server/.desloppify/subagents/runs/20260315_185613/holistic_findings_merged.json"
|
|
6518
8430
|
}
|
|
6519
8431
|
]
|
|
6520
8432
|
}
|