instar 1.3.886 → 1.3.887
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/dist/core/CapacityEnforcement.d.ts +27 -0
- package/dist/core/CapacityEnforcement.d.ts.map +1 -0
- package/dist/core/CapacityEnforcement.js +18 -0
- package/dist/core/CapacityEnforcement.js.map +1 -0
- package/dist/scheduler/JobRunHistory.d.ts +7 -4
- package/dist/scheduler/JobRunHistory.d.ts.map +1 -1
- package/dist/scheduler/JobRunHistory.js +41 -51
- package/dist/scheduler/JobRunHistory.js.map +1 -1
- package/package.json +2 -2
- package/scripts/lint-expected-capacity-degradations.js +144 -0
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.3.887.md +35 -0
- package/upgrades/side-effects/jobrunhistory-cap-outcome.md +144 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** Mechanically enumerable outcomes for a declared bounded-storage contract. */
|
|
2
|
+
export type CapacityEnforcementResult<T> = {
|
|
3
|
+
kind: 'within-budget';
|
|
4
|
+
value: T;
|
|
5
|
+
originalBytes: number;
|
|
6
|
+
storedBytes: number;
|
|
7
|
+
capBytes: number;
|
|
8
|
+
} | {
|
|
9
|
+
kind: 'condensed';
|
|
10
|
+
value: T;
|
|
11
|
+
originalBytes: number;
|
|
12
|
+
storedBytes: number;
|
|
13
|
+
capBytes: number;
|
|
14
|
+
} | {
|
|
15
|
+
kind: 'invariant-failure';
|
|
16
|
+
originalBytes: number;
|
|
17
|
+
storedBytes: number;
|
|
18
|
+
capBytes: number;
|
|
19
|
+
};
|
|
20
|
+
export declare function capacityOutcome<T>(opts: {
|
|
21
|
+
value: T;
|
|
22
|
+
originalBytes: number;
|
|
23
|
+
storedBytes: number;
|
|
24
|
+
capBytes: number;
|
|
25
|
+
condensed: boolean;
|
|
26
|
+
}): CapacityEnforcementResult<T>;
|
|
27
|
+
//# sourceMappingURL=CapacityEnforcement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CapacityEnforcement.d.ts","sourceRoot":"","sources":["../../src/core/CapacityEnforcement.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,MAAM,yBAAyB,CAAC,CAAC,IACnC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACjG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhG,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE;IACvC,KAAK,EAAE,CAAC,CAAC;IACT,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAgB/B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function capacityOutcome(opts) {
|
|
2
|
+
if (opts.storedBytes > opts.capBytes) {
|
|
3
|
+
return {
|
|
4
|
+
kind: 'invariant-failure',
|
|
5
|
+
originalBytes: opts.originalBytes,
|
|
6
|
+
storedBytes: opts.storedBytes,
|
|
7
|
+
capBytes: opts.capBytes,
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
return {
|
|
11
|
+
kind: opts.condensed ? 'condensed' : 'within-budget',
|
|
12
|
+
value: opts.value,
|
|
13
|
+
originalBytes: opts.originalBytes,
|
|
14
|
+
storedBytes: opts.storedBytes,
|
|
15
|
+
capBytes: opts.capBytes,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=CapacityEnforcement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CapacityEnforcement.js","sourceRoot":"","sources":["../../src/core/CapacityEnforcement.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,eAAe,CAAI,IAMlC;IACC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO;YACL,IAAI,EAAE,mBAAmB;YACzB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe;QACpD,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;AACJ,CAAC"}
|
|
@@ -99,6 +99,8 @@ export interface JobRunStats {
|
|
|
99
99
|
};
|
|
100
100
|
/** Runs per day over the stats window */
|
|
101
101
|
runsPerDay: number;
|
|
102
|
+
/** Completed rows that were intentionally condensed to the storage budget. */
|
|
103
|
+
budgetCondensedRuns: number;
|
|
102
104
|
}
|
|
103
105
|
export declare class JobRunHistory {
|
|
104
106
|
private ledgerDir;
|
|
@@ -109,7 +111,6 @@ export declare class JobRunHistory {
|
|
|
109
111
|
private cachedMtimeMs;
|
|
110
112
|
constructor(stateDir: string);
|
|
111
113
|
setMachineId(machineId: string): void;
|
|
112
|
-
static _resetRowCapDegradationDedupForTesting(): void;
|
|
113
114
|
/**
|
|
114
115
|
* Record that a job was triggered. Returns the runId for later completion.
|
|
115
116
|
*/
|
|
@@ -219,13 +220,15 @@ export declare class JobRunHistory {
|
|
|
219
220
|
/**
|
|
220
221
|
* Enforce the 2 KB per-row cap from spec §"Run-record observability".
|
|
221
222
|
* If the serialized row exceeds the cap, non-essential fields are
|
|
222
|
-
* progressively dropped (longest first by TRUNCATABLE_FIELDS order)
|
|
223
|
-
*
|
|
223
|
+
* progressively dropped (longest first by TRUNCATABLE_FIELDS order).
|
|
224
|
+
* Essential fields are always preserved. Successful budget enforcement is
|
|
225
|
+
* recorded durably on the row (`truncated: true`) and in aggregate stats; it
|
|
226
|
+
* is not a degradation because the bounded write path completed as designed.
|
|
224
227
|
*/
|
|
225
228
|
private applyRowSizeCap;
|
|
229
|
+
private reportCapacityInvariantFailure;
|
|
226
230
|
private fitStringFieldToRowCap;
|
|
227
231
|
private headTailFit;
|
|
228
|
-
private reportRowCapDegradation;
|
|
229
232
|
/**
|
|
230
233
|
* Parse a JSONL string into JobRun rows, skipping torn/corrupt lines
|
|
231
234
|
* (matches the long-standing readLines convention — a corrupt line reads as
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JobRunHistory.d.ts","sourceRoot":"","sources":["../../src/scheduler/JobRunHistory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"JobRunHistory.d.ts","sourceRoot":"","sources":["../../src/scheduler/JobRunHistory.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,16 +17,16 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import fs from 'node:fs';
|
|
19
19
|
import path from 'node:path';
|
|
20
|
+
import { capacityOutcome } from '../core/CapacityEnforcement.js';
|
|
20
21
|
import { DegradationReporter } from '../monitoring/DegradationReporter.js';
|
|
21
22
|
/** Monotonic counter to ensure unique runIds even within the same millisecond */
|
|
22
23
|
let runCounter = 0;
|
|
23
24
|
/** Per-row size cap from spec §"Run-record observability". When a row's
|
|
24
25
|
* serialized JSON exceeds this many bytes, non-essential fields are
|
|
25
|
-
*
|
|
26
|
+
* condensed and the row carries durable outcome telemetry. The essential set —
|
|
26
27
|
* runId, slug, sessionId, trigger, startedAt, result, origin — is
|
|
27
28
|
* always preserved so query results remain coherent. */
|
|
28
29
|
const ROW_SIZE_CAP_BYTES = 2 * 1024;
|
|
29
|
-
const ROW_SIZE_CAP_DEGRADATION_WINDOW_MS = 60 * 60 * 1000;
|
|
30
30
|
const ERROR_OMISSION_MARKER_PREFIX = '\n...[omitted ';
|
|
31
31
|
const ERROR_OMISSION_MARKER_SUFFIX = ' bytes to fit JobRunHistory row cap]...\n';
|
|
32
32
|
/** Fields that are dropped first when a row exceeds the size cap.
|
|
@@ -37,7 +37,6 @@ const TRUNCATABLE_FIELDS = [
|
|
|
37
37
|
'handoffNotes',
|
|
38
38
|
'reflection',
|
|
39
39
|
];
|
|
40
|
-
const rowCapDegradationWindows = new Map();
|
|
41
40
|
export class JobRunHistory {
|
|
42
41
|
ledgerDir;
|
|
43
42
|
file;
|
|
@@ -74,9 +73,6 @@ export class JobRunHistory {
|
|
|
74
73
|
setMachineId(machineId) {
|
|
75
74
|
this.machineId = machineId;
|
|
76
75
|
}
|
|
77
|
-
static _resetRowCapDegradationDedupForTesting() {
|
|
78
|
-
rowCapDegradationWindows.clear();
|
|
79
|
-
}
|
|
80
76
|
/**
|
|
81
77
|
* Record that a job was triggered. Returns the runId for later completion.
|
|
82
78
|
*/
|
|
@@ -210,6 +206,7 @@ export class JobRunHistory {
|
|
|
210
206
|
const completed = runs.filter(r => r.result !== 'pending');
|
|
211
207
|
const successes = completed.filter(r => r.result === 'success').length;
|
|
212
208
|
const failures = completed.filter(r => r.result !== 'success').length;
|
|
209
|
+
const budgetCondensedRuns = completed.filter(r => r.truncated === true).length;
|
|
213
210
|
const withDuration = completed.filter(r => r.durationSeconds != null && r.durationSeconds > 0);
|
|
214
211
|
const totalDuration = withDuration.reduce((sum, r) => sum + (r.durationSeconds ?? 0), 0);
|
|
215
212
|
// Calculate runs per day
|
|
@@ -243,6 +240,7 @@ export class JobRunHistory {
|
|
|
243
240
|
lastRun: runs[0],
|
|
244
241
|
longestRun,
|
|
245
242
|
runsPerDay,
|
|
243
|
+
budgetCondensedRuns,
|
|
246
244
|
};
|
|
247
245
|
}
|
|
248
246
|
/**
|
|
@@ -392,7 +390,12 @@ export class JobRunHistory {
|
|
|
392
390
|
}
|
|
393
391
|
appendLine(data) {
|
|
394
392
|
try {
|
|
395
|
-
const
|
|
393
|
+
const outcome = this.applyRowSizeCap(data);
|
|
394
|
+
if (outcome.kind === 'invariant-failure') {
|
|
395
|
+
this.reportCapacityInvariantFailure(data, outcome);
|
|
396
|
+
return;
|
|
397
|
+
}
|
|
398
|
+
const capped = outcome.value;
|
|
396
399
|
const serialized = JSON.stringify(capped) + '\n';
|
|
397
400
|
fs.appendFileSync(this.file, serialized);
|
|
398
401
|
// Keep the in-memory cache coherent with our own append so the read that
|
|
@@ -423,42 +426,62 @@ export class JobRunHistory {
|
|
|
423
426
|
/**
|
|
424
427
|
* Enforce the 2 KB per-row cap from spec §"Run-record observability".
|
|
425
428
|
* If the serialized row exceeds the cap, non-essential fields are
|
|
426
|
-
* progressively dropped (longest first by TRUNCATABLE_FIELDS order)
|
|
427
|
-
*
|
|
429
|
+
* progressively dropped (longest first by TRUNCATABLE_FIELDS order).
|
|
430
|
+
* Essential fields are always preserved. Successful budget enforcement is
|
|
431
|
+
* recorded durably on the row (`truncated: true`) and in aggregate stats; it
|
|
432
|
+
* is not a degradation because the bounded write path completed as designed.
|
|
428
433
|
*/
|
|
429
434
|
applyRowSizeCap(row) {
|
|
430
435
|
const initialSize = Buffer.byteLength(JSON.stringify(row), 'utf-8');
|
|
431
|
-
if (initialSize <= ROW_SIZE_CAP_BYTES)
|
|
432
|
-
return
|
|
436
|
+
if (initialSize <= ROW_SIZE_CAP_BYTES) {
|
|
437
|
+
return capacityOutcome({
|
|
438
|
+
value: row,
|
|
439
|
+
originalBytes: initialSize,
|
|
440
|
+
storedBytes: initialSize,
|
|
441
|
+
capBytes: ROW_SIZE_CAP_BYTES,
|
|
442
|
+
condensed: false,
|
|
443
|
+
});
|
|
444
|
+
}
|
|
433
445
|
const limited = { ...row, ["truncated"]: true };
|
|
434
|
-
const droppedFields = [];
|
|
435
446
|
for (const field of TRUNCATABLE_FIELDS) {
|
|
436
447
|
if (limited[field] === undefined)
|
|
437
448
|
continue;
|
|
438
449
|
delete limited[field];
|
|
439
|
-
droppedFields.push(field);
|
|
440
450
|
if (Buffer.byteLength(JSON.stringify(limited), 'utf-8') <= ROW_SIZE_CAP_BYTES) {
|
|
441
451
|
break;
|
|
442
452
|
}
|
|
443
453
|
}
|
|
444
454
|
const originalError = limited.error;
|
|
445
|
-
let errorShortened = false;
|
|
446
455
|
if (Buffer.byteLength(JSON.stringify(limited), 'utf-8') > ROW_SIZE_CAP_BYTES &&
|
|
447
456
|
typeof originalError === 'string') {
|
|
448
457
|
const fitted = this.fitStringFieldToRowCap(limited, 'error', originalError);
|
|
449
458
|
if (fitted !== null) {
|
|
450
459
|
limited.error = fitted;
|
|
451
|
-
errorShortened = fitted !== originalError;
|
|
452
460
|
}
|
|
453
461
|
}
|
|
454
462
|
const finalSize = Buffer.byteLength(JSON.stringify(limited), 'utf-8');
|
|
455
463
|
if (finalSize > ROW_SIZE_CAP_BYTES && limited.error !== undefined) {
|
|
456
464
|
delete limited.error;
|
|
457
|
-
droppedFields.push('error');
|
|
458
465
|
}
|
|
459
466
|
const storedSize = Buffer.byteLength(JSON.stringify(limited), 'utf-8');
|
|
460
|
-
|
|
461
|
-
|
|
467
|
+
return capacityOutcome({
|
|
468
|
+
value: limited,
|
|
469
|
+
originalBytes: initialSize,
|
|
470
|
+
storedBytes: storedSize,
|
|
471
|
+
capBytes: ROW_SIZE_CAP_BYTES,
|
|
472
|
+
condensed: true,
|
|
473
|
+
});
|
|
474
|
+
}
|
|
475
|
+
reportCapacityInvariantFailure(row, outcome) {
|
|
476
|
+
const safeSlug = row.slug.slice(0, 120);
|
|
477
|
+
// @unexpected-capacity-degradation contract=job-run-history-row@1
|
|
478
|
+
DegradationReporter.getInstance().report({
|
|
479
|
+
feature: 'JobRunHistory.appendLine',
|
|
480
|
+
primary: `Store a run-history row at or below ${outcome.capBytes}B`,
|
|
481
|
+
fallback: 'Refuse the over-budget row; no partial or oversized JSONL write was made',
|
|
482
|
+
reason: `Capacity invariant failed for slug=${safeSlug}: essential row remained ${outcome.storedBytes}B after condensing (${outcome.originalBytes}B original)`,
|
|
483
|
+
impact: 'This run-history transition was not persisted; the failure is explicit and operator-visible',
|
|
484
|
+
});
|
|
462
485
|
}
|
|
463
486
|
fitStringFieldToRowCap(row, field, value) {
|
|
464
487
|
let low = 0;
|
|
@@ -487,39 +510,6 @@ export class JobRunHistory {
|
|
|
487
510
|
const marker = `${ERROR_OMISSION_MARKER_PREFIX}${omittedBytes}${ERROR_OMISSION_MARKER_SUFFIX}`;
|
|
488
511
|
return `${value.slice(0, headChars)}${marker}${tailChars > 0 ? value.slice(value.length - tailChars) : ''}`;
|
|
489
512
|
}
|
|
490
|
-
reportRowCapDegradation(row, initialSize, finalSize, droppedFields, errorShortened) {
|
|
491
|
-
const key = `${row.slug}:row-size-cap`;
|
|
492
|
-
const now = Date.now();
|
|
493
|
-
const existing = rowCapDegradationWindows.get(key);
|
|
494
|
-
const inWindow = existing && now - existing.windowStartedAt < ROW_SIZE_CAP_DEGRADATION_WINDOW_MS;
|
|
495
|
-
const window = inWindow ? existing : { windowStartedAt: now, count: 0 };
|
|
496
|
-
window.count += 1;
|
|
497
|
-
rowCapDegradationWindows.set(key, window);
|
|
498
|
-
const reason = `Row size ${initialSize}B exceeded ${ROW_SIZE_CAP_BYTES}B cap for slug=${row.slug}; dedupKey=${key}; count=${window.count}`;
|
|
499
|
-
const fallback = `Fit oversized run record fields (dropped: ${droppedFields.join(', ') || 'none'}; error=${errorShortened ? 'head-tail shortened' : 'preserved'})`;
|
|
500
|
-
const impact = `Run record stored at ${finalSize}B with truncated:true flag set; deduped ${window.count} oversized row(s) for slug=${row.slug} in the current window`;
|
|
501
|
-
const reporter = DegradationReporter.getInstance();
|
|
502
|
-
if (window.event && reporter.getEvents().includes(window.event)) {
|
|
503
|
-
window.event.reason = reason;
|
|
504
|
-
window.event.fallback = fallback;
|
|
505
|
-
window.event.impact = impact;
|
|
506
|
-
window.event.timestamp = new Date().toISOString();
|
|
507
|
-
return;
|
|
508
|
-
}
|
|
509
|
-
try {
|
|
510
|
-
reporter.report({
|
|
511
|
-
feature: 'JobRunHistory.appendLine',
|
|
512
|
-
primary: 'Write full run record with all fields',
|
|
513
|
-
fallback,
|
|
514
|
-
reason,
|
|
515
|
-
impact,
|
|
516
|
-
});
|
|
517
|
-
window.event = reporter.getEvents().at(-1);
|
|
518
|
-
}
|
|
519
|
-
catch {
|
|
520
|
-
// @silent-fallback-ok — degradation reporting is best-effort
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
513
|
/**
|
|
524
514
|
* Parse a JSONL string into JobRun rows, skipping torn/corrupt lines
|
|
525
515
|
* (matches the long-standing readLines convention — a corrupt line reads as
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JobRunHistory.js","sourceRoot":"","sources":["../../src/scheduler/JobRunHistory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"JobRunHistory.js","sourceRoot":"","sources":["../../src/scheduler/JobRunHistory.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "instar",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.887",
|
|
4
4
|
"description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"test:contract": "node scripts/run-contract-tests.js",
|
|
29
29
|
"test:contract:raw": "vitest run --config vitest.contract.config.ts",
|
|
30
30
|
"test:all": "vitest run && vitest run --config vitest.integration.config.ts && vitest run --config vitest.e2e.config.ts",
|
|
31
|
-
"lint": "tsc --noEmit && node scripts/lint-no-direct-destructive.js && node scripts/lint-no-direct-llm-http.js && node scripts/lint-no-direct-url-log.js && node scripts/lint-no-unfunneled-topic-creation.js && node scripts/lint-no-unfunneled-headless-launch.js && node scripts/lint-no-unbounded-llm-spawn.js && node scripts/lint-no-unregistered-self-action.js && node scripts/lint-no-unfunneled-credential-write.js && node scripts/lint-state-registry.js && node scripts/lint-store-retention-declared.js && node scripts/lint-no-wholefile-sync-read.js && node scripts/lint-cas-emit-placement.js && node scripts/lint-journal-actuation-ban.js && node scripts/lint-no-blocking-process-scans.js && node scripts/lint-sync-subprocess-chokepoint.js && node scripts/lint-dev-agent-dark-gate.js && node scripts/lint-guard-manifest.js && node scripts/lint-llm-attribution.js && node scripts/lint-no-mainthread-cartographer-walk.js && node scripts/lint-scrape-fixture-realness.js && node scripts/check-codex-rule1-drift.js && node scripts/lint-routing-registry-freshness.js && node scripts/lint-no-opus-claude-cli-gating.js && node scripts/lint-model-registry-freshness.mjs && node scripts/lint-no-unreachable-messaging-gate.js && node scripts/lint-nature-chains.mjs && node scripts/lint-emit-without-admit.js && node scripts/lint-migration-consumer-completeness.js",
|
|
31
|
+
"lint": "tsc --noEmit && node scripts/lint-no-direct-destructive.js && node scripts/lint-no-direct-llm-http.js && node scripts/lint-no-direct-url-log.js && node scripts/lint-no-unfunneled-topic-creation.js && node scripts/lint-no-unfunneled-headless-launch.js && node scripts/lint-no-unbounded-llm-spawn.js && node scripts/lint-no-unregistered-self-action.js && node scripts/lint-no-unfunneled-credential-write.js && node scripts/lint-state-registry.js && node scripts/lint-store-retention-declared.js && node scripts/lint-no-wholefile-sync-read.js && node scripts/lint-cas-emit-placement.js && node scripts/lint-journal-actuation-ban.js && node scripts/lint-no-blocking-process-scans.js && node scripts/lint-sync-subprocess-chokepoint.js && node scripts/lint-dev-agent-dark-gate.js && node scripts/lint-guard-manifest.js && node scripts/lint-llm-attribution.js && node scripts/lint-no-mainthread-cartographer-walk.js && node scripts/lint-scrape-fixture-realness.js && node scripts/check-codex-rule1-drift.js && node scripts/lint-routing-registry-freshness.js && node scripts/lint-no-opus-claude-cli-gating.js && node scripts/lint-model-registry-freshness.mjs && node scripts/lint-no-unreachable-messaging-gate.js && node scripts/lint-nature-chains.mjs && node scripts/lint-emit-without-admit.js && node scripts/lint-migration-consumer-completeness.js && node scripts/lint-expected-capacity-degradations.js",
|
|
32
32
|
"lint:routing-registry": "node scripts/lint-routing-registry-freshness.js",
|
|
33
33
|
"lint:no-opus-claude-cli-gating": "node scripts/lint-no-opus-claude-cli-gating.js",
|
|
34
34
|
"lint:nature-chains": "node scripts/lint-nature-chains.mjs",
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// safe-git-allow: read-only merge-base/show establish the removal ratchet.
|
|
3
|
+
/** Mechanical contract lint for bounded-storage outcome classification. */
|
|
4
|
+
import fs from 'node:fs';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
import { execFileSync } from 'node:child_process';
|
|
7
|
+
import { fileURLToPath } from 'node:url';
|
|
8
|
+
|
|
9
|
+
const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
|
10
|
+
const REGISTRY = 'docs/capacity-enforcement-contracts.json';
|
|
11
|
+
const MARKER_RE = /capacity-enforcement-contract:\s*([a-z0-9][a-z0-9-]*)@(\d+)/g;
|
|
12
|
+
const ID_RE = /^[a-z0-9][a-z0-9-]*$/;
|
|
13
|
+
|
|
14
|
+
function walk(dir, files = []) {
|
|
15
|
+
if (!fs.existsSync(dir)) return files;
|
|
16
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
17
|
+
if (entry.name === 'node_modules' || entry.name === 'dist' || entry.name === '.git') continue;
|
|
18
|
+
const full = path.join(dir, entry.name);
|
|
19
|
+
if (entry.isDirectory()) walk(full, files);
|
|
20
|
+
else if (entry.isFile() && /\.(?:ts|tsx|js|mjs|cjs)$/.test(entry.name)) files.push(full);
|
|
21
|
+
}
|
|
22
|
+
return files;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function validRelativeSource(value) {
|
|
26
|
+
return typeof value === 'string' && value.startsWith('src/') && !path.isAbsolute(value) && !value.split('/').includes('..');
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function parseRegistry(raw, label) {
|
|
30
|
+
const findings = [];
|
|
31
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw)) return { findings: [{ code: 'registry-shape', file: label }], contracts: [], retiredContracts: [] };
|
|
32
|
+
if (raw.version !== 1) findings.push({ code: 'registry-version', file: label });
|
|
33
|
+
if (!Array.isArray(raw.contracts) || raw.contracts.length === 0) findings.push({ code: 'contracts-nonempty', file: label });
|
|
34
|
+
if (raw.retiredContracts !== undefined && !Array.isArray(raw.retiredContracts)) findings.push({ code: 'retired-contracts-shape', file: label });
|
|
35
|
+
const contracts = Array.isArray(raw.contracts) ? raw.contracts : [];
|
|
36
|
+
const retiredContracts = Array.isArray(raw.retiredContracts) ? raw.retiredContracts : [];
|
|
37
|
+
const ids = new Set();
|
|
38
|
+
for (const contract of contracts) {
|
|
39
|
+
if (!contract || typeof contract !== 'object' || Array.isArray(contract)) { findings.push({ code: 'contract-shape', file: label }); continue; }
|
|
40
|
+
if (typeof contract.id !== 'string' || !ID_RE.test(contract.id)) findings.push({ code: 'contract-id', file: label, contract: contract.id });
|
|
41
|
+
if (ids.has(contract.id)) findings.push({ code: 'duplicate-contract-id', file: label, contract: contract.id });
|
|
42
|
+
ids.add(contract.id);
|
|
43
|
+
if (!Number.isInteger(contract.revision) || contract.revision < 1) findings.push({ code: 'contract-revision', file: label, contract: contract.id });
|
|
44
|
+
if (!validRelativeSource(contract.sourcePath)) findings.push({ code: 'contract-source-path', file: label, contract: contract.id });
|
|
45
|
+
if (contract.outcomeType !== 'CapacityEnforcementResult') findings.push({ code: 'contract-outcome-type', file: label, contract: contract.id });
|
|
46
|
+
for (const field of ['durableOutcomeBinding', 'aggregateOutcomeBinding']) {
|
|
47
|
+
if (typeof contract[field] !== 'string' || contract[field].trim() === '') findings.push({ code: 'contract-binding', field, file: label, contract: contract.id });
|
|
48
|
+
}
|
|
49
|
+
if (!Array.isArray(contract.requiredSymbols) || contract.requiredSymbols.length === 0 || contract.requiredSymbols.some((v) => typeof v !== 'string' || v.length === 0)) {
|
|
50
|
+
findings.push({ code: 'contract-required-symbols', file: label, contract: contract.id });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
for (const retired of retiredContracts) {
|
|
54
|
+
if (!retired || typeof retired !== 'object' || !ID_RE.test(retired.id ?? '') || !Number.isInteger(retired.revision) || retired.revision < 1 ||
|
|
55
|
+
typeof retired.retiredAt !== 'string' || Number.isNaN(Date.parse(retired.retiredAt)) || typeof retired.reason !== 'string' || retired.reason.trim() === '' ||
|
|
56
|
+
typeof retired.reviewRef !== 'string' || retired.reviewRef.trim() === '') {
|
|
57
|
+
findings.push({ code: 'retired-contract-shape', file: label, contract: retired?.id });
|
|
58
|
+
}
|
|
59
|
+
if (ids.has(retired?.id)) findings.push({ code: 'active-retired-id-collision', file: label, contract: retired?.id });
|
|
60
|
+
ids.add(retired?.id);
|
|
61
|
+
}
|
|
62
|
+
return { findings, contracts, retiredContracts };
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function readBaseRegistry(root, explicitBase) {
|
|
66
|
+
let base = explicitBase;
|
|
67
|
+
if (!base) {
|
|
68
|
+
for (const candidate of ['upstream/main', 'origin/main']) {
|
|
69
|
+
try { base = execFileSync('git', ['merge-base', 'HEAD', candidate], { cwd: root, encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim(); break; }
|
|
70
|
+
catch { /* try next read-only candidate */ }
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (!base) return null;
|
|
74
|
+
try {
|
|
75
|
+
const text = execFileSync('git', ['show', `${base}:${REGISTRY}`], { cwd: root, encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] });
|
|
76
|
+
return JSON.parse(text);
|
|
77
|
+
} catch { return null; }
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function validateCapacityEnforcementContracts(root = ROOT, opts = {}) {
|
|
81
|
+
const registryPath = path.join(root, REGISTRY);
|
|
82
|
+
if (!fs.existsSync(registryPath)) return [{ code: 'registry-missing', file: REGISTRY }];
|
|
83
|
+
let raw;
|
|
84
|
+
try { raw = JSON.parse(fs.readFileSync(registryPath, 'utf8')); }
|
|
85
|
+
catch { return [{ code: 'registry-invalid-json', file: REGISTRY }]; }
|
|
86
|
+
const parsed = parseRegistry(raw, REGISTRY);
|
|
87
|
+
const findings = [...parsed.findings];
|
|
88
|
+
const byKey = new Map(parsed.contracts.map((c) => [`${c.id}@${c.revision}`, c]));
|
|
89
|
+
|
|
90
|
+
const markers = [];
|
|
91
|
+
for (const file of walk(path.join(root, 'src'))) {
|
|
92
|
+
const relative = path.relative(root, file);
|
|
93
|
+
const source = fs.readFileSync(file, 'utf8');
|
|
94
|
+
for (const match of source.matchAll(MARKER_RE)) markers.push({ key: `${match[1]}@${match[2]}`, file: relative });
|
|
95
|
+
}
|
|
96
|
+
const markerCounts = new Map();
|
|
97
|
+
for (const marker of markers) {
|
|
98
|
+
markerCounts.set(marker.key, (markerCounts.get(marker.key) ?? 0) + 1);
|
|
99
|
+
const contract = byKey.get(marker.key);
|
|
100
|
+
if (!contract) findings.push({ code: 'unregistered-source-marker', contract: marker.key, file: marker.file });
|
|
101
|
+
else if (contract.sourcePath !== marker.file) findings.push({ code: 'marker-path-mismatch', contract: marker.key, file: marker.file });
|
|
102
|
+
}
|
|
103
|
+
for (const [key, count] of markerCounts) if (count !== 1) findings.push({ code: 'duplicate-source-marker', contract: key, count });
|
|
104
|
+
|
|
105
|
+
for (const [key, contract] of byKey) {
|
|
106
|
+
const full = path.join(root, contract.sourcePath);
|
|
107
|
+
if (!fs.existsSync(full)) { findings.push({ code: 'source-missing', contract: key, file: contract.sourcePath }); continue; }
|
|
108
|
+
const source = fs.readFileSync(full, 'utf8');
|
|
109
|
+
if (markerCounts.get(key) !== 1) findings.push({ code: 'marker-missing-or-duplicate', contract: key, file: contract.sourcePath });
|
|
110
|
+
const bindings = [
|
|
111
|
+
contract.outcomeType,
|
|
112
|
+
contract.durableOutcomeBinding,
|
|
113
|
+
contract.aggregateOutcomeBinding,
|
|
114
|
+
...(contract.requiredSymbols ?? []),
|
|
115
|
+
`@unexpected-capacity-degradation contract=${key}`,
|
|
116
|
+
];
|
|
117
|
+
for (const binding of bindings) if (typeof binding === 'string' && !source.includes(binding)) findings.push({ code: 'required-binding-missing', contract: key, file: contract.sourcePath, binding });
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const baseRaw = opts.baseRegistry === undefined ? readBaseRegistry(root, opts.diffBase) : opts.baseRegistry;
|
|
121
|
+
if (baseRaw) {
|
|
122
|
+
const base = parseRegistry(baseRaw, 'diff-base');
|
|
123
|
+
const activeIds = new Set(parsed.contracts.map((c) => c.id));
|
|
124
|
+
const retiredById = new Map(parsed.retiredContracts.map((c) => [c.id, c]));
|
|
125
|
+
for (const old of base.contracts) {
|
|
126
|
+
if (activeIds.has(old.id)) continue;
|
|
127
|
+
const tombstone = retiredById.get(old.id);
|
|
128
|
+
if (!tombstone || tombstone.revision < old.revision) findings.push({ code: 'contract-removal-without-reviewed-retirement', contract: old.id });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return findings;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (process.argv[1] && path.resolve(process.argv[1]) === fileURLToPath(import.meta.url)) {
|
|
135
|
+
const args = process.argv.slice(2);
|
|
136
|
+
const rootArg = args.indexOf('--root');
|
|
137
|
+
const baseArg = args.indexOf('--diff-base');
|
|
138
|
+
const root = rootArg >= 0 && args[rootArg + 1] ? path.resolve(args[rootArg + 1]) : ROOT;
|
|
139
|
+
const findings = validateCapacityEnforcementContracts(root, { diffBase: baseArg >= 0 ? args[baseArg + 1] : undefined });
|
|
140
|
+
if (findings.length === 0) { console.log('[capacity-enforcement-contracts] PASS'); process.exit(0); }
|
|
141
|
+
console.error('[capacity-enforcement-contracts] Contract violations:');
|
|
142
|
+
for (const finding of findings) console.error(` ${JSON.stringify(finding)}`);
|
|
143
|
+
process.exit(1);
|
|
144
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-07-
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-07-20T01:22:15.563Z",
|
|
5
|
+
"instarVersion": "1.3.887",
|
|
6
6
|
"entryCount": 202,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
Successful 2 KB JobRunHistory budget enforcement no longer files a degradation
|
|
9
|
+
as though the write path broke. Capped rows still preserve the beginning and end
|
|
10
|
+
of large errors, retain `truncated: true`, and now contribute to the additive
|
|
11
|
+
`budgetCondensedRuns` job statistic. A typed capacity-outcome contract and
|
|
12
|
+
registry lint prevent future bounded writers from skipping the same distinction;
|
|
13
|
+
an essential-fields overflow is rechecked, refused, and reported explicitly.
|
|
14
|
+
|
|
15
|
+
## What to Tell Your User
|
|
16
|
+
|
|
17
|
+
The feedback and health surfaces will stop filling with repeated JobRunHistory
|
|
18
|
+
row-cap bugs when the history ledger is behaving exactly as designed. Oversized
|
|
19
|
+
job errors remain visible in shortened form and remain measurable in job stats.
|
|
20
|
+
|
|
21
|
+
## Summary of New Capabilities
|
|
22
|
+
|
|
23
|
+
- Durable per-job counts of history rows condensed to their storage budget.
|
|
24
|
+
- A structural guard against misclassifying successful capacity enforcement as
|
|
25
|
+
a system degradation.
|
|
26
|
+
|
|
27
|
+
## Evidence
|
|
28
|
+
|
|
29
|
+
- 65 focused unit tests, including strict schema, duplicate-marker,
|
|
30
|
+
retirement-ratchet, essential-field, and source-tree canaries.
|
|
31
|
+
- 330-test changed-file smoke set, including the legacy scheduler consumer.
|
|
32
|
+
- Integration proof across four reopened JobRunHistory instances.
|
|
33
|
+
- End-to-end restart and legacy-window proof with zero feedback submissions.
|
|
34
|
+
- Disk-read proof that an impossible-to-fit row is absent while its explicit
|
|
35
|
+
invariant-failure event survives a reporter reset.
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Side-Effects Review — JobRunHistory cap outcome classification
|
|
2
|
+
|
|
3
|
+
**Version / slug:** `jobrunhistory-cap-outcome`
|
|
4
|
+
**Date:** `2026-07-19`
|
|
5
|
+
**Author:** `instar-codey`
|
|
6
|
+
**Second-pass reviewer:** `independent Codex review lane`
|
|
7
|
+
|
|
8
|
+
## Summary of the change
|
|
9
|
+
|
|
10
|
+
`JobRunHistory` stops routing successful 2 KB row-budget enforcement into
|
|
11
|
+
`DegradationReporter`, keeps the existing durable `truncated` row signal, and
|
|
12
|
+
adds `budgetCondensedRuns` to computed job stats. The standards registry names
|
|
13
|
+
the class; `CapacityEnforcementResult` makes the three outcomes explicit; and a
|
|
14
|
+
versioned contract registry plus lint binds each source, typed result, durable
|
|
15
|
+
signal, and unexpected-failure annotation mechanically. The final serialized
|
|
16
|
+
size is rechecked after every transform; an essential-fields overflow is refused
|
|
17
|
+
and emits one bounded, revision-bound unexpected degradation.
|
|
18
|
+
The registry is strictly versioned and non-empty, rejects duplicate or
|
|
19
|
+
cross-path markers, validates every binding field, and refuses base-contract
|
|
20
|
+
removal without a reviewed retirement tombstone.
|
|
21
|
+
|
|
22
|
+
## Decision-point inventory
|
|
23
|
+
|
|
24
|
+
- `JobRunHistory.applyRowSizeCap` — modified — successful budget enforcement
|
|
25
|
+
remains deterministic, but no longer enters the defect-reporting pipeline.
|
|
26
|
+
- `lint-expected-capacity-degradations` — added — a structural invariant checks
|
|
27
|
+
exact contract/marker/type/failure bindings at build time.
|
|
28
|
+
- No runtime block/allow decision is added. The linter is a build invariant over
|
|
29
|
+
a closed source-code shape, not a judgment about user intent.
|
|
30
|
+
|
|
31
|
+
## 1. Over-block
|
|
32
|
+
|
|
33
|
+
No runtime input is blocked. The lint can block a legitimate source edit when an
|
|
34
|
+
author changes a contract revision or symbol without updating the registry and
|
|
35
|
+
marker together; its error names the exact missing mechanical binding.
|
|
36
|
+
|
|
37
|
+
## 2. Under-block
|
|
38
|
+
|
|
39
|
+
The lint cannot decide whether an unregistered source ought to be a bounded-store
|
|
40
|
+
contract; semantic review remains responsible for enrollment. Once enrolled,
|
|
41
|
+
synonymous prose and stale nearby annotations cannot bypass the exact typed and
|
|
42
|
+
revision-bound checks. Essential-field overflow is covered by an adversarial
|
|
43
|
+
test and now takes the explicit invariant-failure branch.
|
|
44
|
+
Silent contract removal is checked against the Git diff base and requires a
|
|
45
|
+
timestamped, reasoned, review-referenced retirement tombstone.
|
|
46
|
+
|
|
47
|
+
## 3. Level-of-abstraction fit
|
|
48
|
+
|
|
49
|
+
The behavior change sits at the storage component that owns the budget outcome.
|
|
50
|
+
The class guard is a shared typed primitive plus registry convention for bounded
|
|
51
|
+
writers; it does not try to infer semantics from reporter prose. Outcome counts
|
|
52
|
+
are computed from the durable row flag rather than introducing a second ledger.
|
|
53
|
+
|
|
54
|
+
## 4. Signal vs authority compliance
|
|
55
|
+
|
|
56
|
+
Required reference: [docs/signal-vs-authority.md](../../docs/signal-vs-authority.md)
|
|
57
|
+
|
|
58
|
+
- [x] No — this change has no block/allow surface.
|
|
59
|
+
|
|
60
|
+
The runtime outcome is deterministic storage mechanics. The build lint enforces
|
|
61
|
+
closed registry/marker/type/revision equality and does not interpret natural
|
|
62
|
+
language from a user, source comments, or report strings.
|
|
63
|
+
|
|
64
|
+
## 4b. Judgment-point check
|
|
65
|
+
|
|
66
|
+
No new static heuristic at a competing-signals decision point. Whether a
|
|
67
|
+
serialized row exceeded a declared byte cap and was stored within it is an
|
|
68
|
+
enumerable invariant. Semantic review still owns whether a source exception is
|
|
69
|
+
truthfully an unexpected failure.
|
|
70
|
+
|
|
71
|
+
## 5. Interactions
|
|
72
|
+
|
|
73
|
+
- **Shadowing:** JobRunHistory no longer opens DegradationReporter or Remediator
|
|
74
|
+
episodes for successful condensing. Final over-budget rows take one explicit
|
|
75
|
+
invariant-failure report path; filesystem write failures retain their existing
|
|
76
|
+
console error path.
|
|
77
|
+
- **Double-fire:** Removed; a capped row has one durable outcome flag and no
|
|
78
|
+
parallel degradation event.
|
|
79
|
+
- **Races:** Stats derive from the existing deduplicated ledger view, preserving
|
|
80
|
+
current multi-instance cache validation and compaction semantics.
|
|
81
|
+
- **Feedback loops:** The feedback factory stops receiving healthy cap outcomes;
|
|
82
|
+
real degradation reports remain unchanged.
|
|
83
|
+
|
|
84
|
+
## 6. External surfaces
|
|
85
|
+
|
|
86
|
+
`JobRunStats` gains the additive `budgetCondensedRuns` number. Health, feedback,
|
|
87
|
+
and remediation surfaces no longer receive successful JobRun cap events. The
|
|
88
|
+
JSONL schema is unchanged because `truncated` already existed. No operator action,
|
|
89
|
+
external API mutation, credential, URL, or notification path is added.
|
|
90
|
+
|
|
91
|
+
## 6b. Operator-surface quality
|
|
92
|
+
|
|
93
|
+
No operator surface — not applicable.
|
|
94
|
+
|
|
95
|
+
## 7. Multi-machine posture
|
|
96
|
+
|
|
97
|
+
Machine-local by design: job-run ledgers describe executions on the machine that
|
|
98
|
+
ran them, and the existing job-history read surface already follows that model.
|
|
99
|
+
No user-facing notice is emitted, no new durable state is introduced, and no URL
|
|
100
|
+
is generated. Each machine computes its own truthful cap count from its own rows.
|
|
101
|
+
|
|
102
|
+
## 8. Rollback cost
|
|
103
|
+
|
|
104
|
+
Hot-fix revert only. No migration or state repair is needed. Existing rows remain
|
|
105
|
+
valid, and older code ignores the additive stats field. Reverting would resume
|
|
106
|
+
the known feedback flood but would not corrupt data.
|
|
107
|
+
|
|
108
|
+
## Conclusion
|
|
109
|
+
|
|
110
|
+
The design removes a category error while preserving both the storage invariant
|
|
111
|
+
and durable observability. Review caught and removed an English-regex authority
|
|
112
|
+
and added the missing final-byte failure branch. Restart-spanning and adversarial
|
|
113
|
+
tests now prove both successful and impossible-to-fit outcomes. Clear to ship
|
|
114
|
+
after independent second-pass review.
|
|
115
|
+
|
|
116
|
+
## Second-pass review (if required)
|
|
117
|
+
|
|
118
|
+
**Reviewer:** independent Codex review lane
|
|
119
|
+
**Independent read of the artifact:** concur
|
|
120
|
+
|
|
121
|
+
Concur with the review. Three review rounds verified the final-byte
|
|
122
|
+
invariant-failure branch, removed the original English-regex authority, and
|
|
123
|
+
hardened the contract registry against malformed schema, duplicate/cross-path
|
|
124
|
+
markers, unbound fields, and silent contract removal. The final review reran 54
|
|
125
|
+
targeted tests, TypeScript, the upstream-main contract lint, and inspected a
|
|
126
|
+
clean diff.
|
|
127
|
+
|
|
128
|
+
## Evidence pointers
|
|
129
|
+
|
|
130
|
+
- Focused unit evidence — 65 passed across JobRunHistory, the contract lint,
|
|
131
|
+
and the scheduler run-record consumer.
|
|
132
|
+
- Changed-file pre-push smoke — 330 tests (the legacy scheduler expectation was
|
|
133
|
+
updated from degradation emission to durable outcome telemetry).
|
|
134
|
+
- Integration: `jobrunhistory-budget-outcome.test.ts` — 1 passed.
|
|
135
|
+
- E2E: `jobrunhistory-cap-feedback-boundary.test.ts` — 1 passed.
|
|
136
|
+
- `node scripts/lint-expected-capacity-degradations.js --diff-base upstream/main` — PASS.
|
|
137
|
+
- Essential-field overflow — no JSONL row; degradation re-read from disk after
|
|
138
|
+
`DegradationReporter.resetForTesting()`.
|
|
139
|
+
|
|
140
|
+
## Class-Closure Declaration (display-only mirror)
|
|
141
|
+
|
|
142
|
+
No agent-authored-artifact defect and no self-triggered controller addition —
|
|
143
|
+
not applicable. The runtime defect class is expected-capacity-outcome
|
|
144
|
+
misclassification; closure is the registered standard plus blocking source lint.
|