instar 1.3.14 → 1.3.16

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.
@@ -0,0 +1,40 @@
1
+ /**
2
+ * verify.ts — TS port of the feedback-factory fix-verification logic.
3
+ *
4
+ * Byte-exact port of `can_transition_to_verified` (:1084) from the reference
5
+ * `the-portal/.claude/scripts/feedback-processor.py`. Decides whether a fixed
6
+ * cluster has actually stayed fixed (so it may transition to `verified`), via two
7
+ * strategies: version-anchored (HIGH confidence — no recurrence on the fixed
8
+ * version) and silence-based (LOW confidence — quiet long enough relative to its
9
+ * historical report frequency).
10
+ *
11
+ * The reference is time- and DB-dependent (`datetime.now()` + a recent-reports
12
+ * query). This port keeps it PURE by INJECTING both: `now` and the version-
13
+ * anchored query result (`recentReportsSinceFix`) are passed in by the caller
14
+ * (the real store adapter does `datetime.now()` + the query). Parity is verified
15
+ * by monkeypatching the reference's `datetime.now` + `run_prisma_query` to the
16
+ * same fixed values.
17
+ */
18
+ import type { Cluster } from './types.js';
19
+ export interface VerifyOptions {
20
+ /** Injected "now" (ISO string). The reference uses datetime.now(timezone.utc). */
21
+ now: string;
22
+ /**
23
+ * The version-anchored recent-reports query result (items with the cluster's
24
+ * fingerprint received since fixAppliedAt). Only consulted when the cluster has
25
+ * BOTH fixedInVersion and fingerprint. The real adapter runs the query; tests
26
+ * inject it. Treated as empty when omitted.
27
+ */
28
+ recentReportsSinceFix?: unknown[];
29
+ }
30
+ export interface VerifyResult {
31
+ allowed: boolean;
32
+ evidence: string;
33
+ recommendation?: string;
34
+ confidence?: string;
35
+ verified_by?: string;
36
+ }
37
+ /** Reproduce Python `f"{x:.0f}"` — round-half-to-even to an integer, as a string. */
38
+ export declare function pyFormat0f(x: number): string;
39
+ export declare function canTransitionToVerified(cluster: Cluster, opts: VerifyOptions): VerifyResult;
40
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/feedback-factory/processor/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC5B,kFAAkF;IAClF,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,OAAO,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ5C;AAOD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,GAAG,YAAY,CAwD3F"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * verify.ts — TS port of the feedback-factory fix-verification logic.
3
+ *
4
+ * Byte-exact port of `can_transition_to_verified` (:1084) from the reference
5
+ * `the-portal/.claude/scripts/feedback-processor.py`. Decides whether a fixed
6
+ * cluster has actually stayed fixed (so it may transition to `verified`), via two
7
+ * strategies: version-anchored (HIGH confidence — no recurrence on the fixed
8
+ * version) and silence-based (LOW confidence — quiet long enough relative to its
9
+ * historical report frequency).
10
+ *
11
+ * The reference is time- and DB-dependent (`datetime.now()` + a recent-reports
12
+ * query). This port keeps it PURE by INJECTING both: `now` and the version-
13
+ * anchored query result (`recentReportsSinceFix`) are passed in by the caller
14
+ * (the real store adapter does `datetime.now()` + the query). Parity is verified
15
+ * by monkeypatching the reference's `datetime.now` + `run_prisma_query` to the
16
+ * same fixed values.
17
+ */
18
+ /** Reproduce Python `f"{x:.0f}"` — round-half-to-even to an integer, as a string. */
19
+ export function pyFormat0f(x) {
20
+ const floor = Math.floor(x);
21
+ const diff = x - floor;
22
+ let r;
23
+ if (diff > 0.5)
24
+ r = floor + 1;
25
+ else if (diff < 0.5)
26
+ r = floor;
27
+ else
28
+ r = floor % 2 === 0 ? floor : floor + 1;
29
+ return String(r);
30
+ }
31
+ /** Parse an ISO timestamp to epoch ms (mirrors datetime.fromisoformat(s.replace('Z','+00:00'))). */
32
+ function parseIso(s) {
33
+ return new Date(s).getTime();
34
+ }
35
+ export function canTransitionToVerified(cluster, opts) {
36
+ const fingerprint = cluster.fingerprint;
37
+ const fixedVersion = cluster.fixedInVersion;
38
+ // Fall back to dispatchedAt when fixAppliedAt is missing (reference comment:
39
+ // dispatch happens after the fix is applied, so it's a safe proxy timestamp).
40
+ const fixAppliedAt = cluster.fixAppliedAt || cluster.dispatchedAt;
41
+ if (!fixAppliedAt) {
42
+ return {
43
+ allowed: false,
44
+ evidence: 'No fixAppliedAt or dispatchedAt timestamp',
45
+ recommendation: 'set_fix_applied_at',
46
+ };
47
+ }
48
+ const nowMs = parseIso(opts.now);
49
+ const fixTimeMs = parseIso(fixAppliedAt);
50
+ const hoursSinceFix = (nowMs - fixTimeMs) / 1000 / 3600;
51
+ // Strategy 1: Version-anchored (HIGH confidence).
52
+ if (fixedVersion && fingerprint) {
53
+ const recentItems = opts.recentReportsSinceFix ?? [];
54
+ if (recentItems.length > 0) {
55
+ return { allowed: false, evidence: `Still seeing ${recentItems.length} reports since fix`, recommendation: 'revert_to_investigating' };
56
+ }
57
+ if (hoursSinceFix >= 24) {
58
+ return {
59
+ allowed: true,
60
+ evidence: `No recurrence on v${fixedVersion}+ in ${pyFormat0f(hoursSinceFix)}h`,
61
+ confidence: 'high',
62
+ verified_by: `auto:version_check:v${fixedVersion}`,
63
+ };
64
+ }
65
+ }
66
+ // Strategy 2: Silence-based (LOW confidence).
67
+ const createdAt = cluster.createdAt;
68
+ const firstSeenMs = parseIso(createdAt);
69
+ const lastSeenStr = cluster.updatedAt ?? createdAt;
70
+ const lastSeenMs = parseIso(lastSeenStr);
71
+ const reportCount = cluster.reportCount ?? 1;
72
+ const spanHours = (lastSeenMs - firstSeenMs) / 1000 / 3600;
73
+ const freqHours = (spanHours < 1 || reportCount < 2) ? 24.0 : spanHours / Math.max(reportCount - 1, 1);
74
+ const silenceRequired = Math.max(freqHours * 3, 48);
75
+ if (hoursSinceFix < silenceRequired) {
76
+ return { allowed: false, evidence: `Only ${pyFormat0f(hoursSinceFix)}h since fix, need ${pyFormat0f(silenceRequired)}h`, recommendation: 'wait' };
77
+ }
78
+ return {
79
+ allowed: true,
80
+ evidence: `No recurrence in ${pyFormat0f(hoursSinceFix)}h (required: ${pyFormat0f(silenceRequired)}h)`,
81
+ confidence: 'low',
82
+ verified_by: 'auto:silence_check',
83
+ };
84
+ }
85
+ //# sourceMappingURL=verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/feedback-factory/processor/verify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * MentorStageBForensics — the "look under the hood" analysis of Stage B
3
+ * (FRAMEWORK-ONBOARDING-MENTOR-SPEC §3.2, §19.4 deep-forensics follow-on).
4
+ *
5
+ * After Stage A drives the mentee, Stage B reads the mentee's actual signals
6
+ * (recent rollout/session activity + server-log errors/sentinel events) and
7
+ * classifies what went wrong into the three buckets, writing findings to the
8
+ * ledger. This module is the PURE core: prompt assembly + defensive parsing of
9
+ * the LLM's classification. The I/O (reading rollouts/logs) and the LLM call are
10
+ * injected, so it's fully unit-testable without an LLM or the filesystem.
11
+ *
12
+ * Signal-only: produces ForensicFinding[] for the ledger; never gates or acts.
13
+ */
14
+ import { type ForensicFinding } from '../monitoring/FrameworkIssueLedger.js';
15
+ /**
16
+ * Build the Stage-B forensic prompt. The model is asked to classify ONLY what
17
+ * the signals actually evidence into the three buckets, and to output a strict
18
+ * JSON array — no prose. Conservative by instruction: report nothing rather than
19
+ * speculate (false findings poison the ledger/playbook).
20
+ */
21
+ export declare function buildForensicPrompt(framework: string, signals: string): string;
22
+ /**
23
+ * Parse the model's forensic output into validated findings. Defensive: tolerates
24
+ * markdown fences / surrounding prose, drops malformed or invalid-enum entries,
25
+ * caps count + field lengths, and derives a conservative dedupKey when the model
26
+ * omits one. Returns [] on any parse failure (never throws — a bad forensic read
27
+ * must not crash a tick).
28
+ */
29
+ export declare function parseForensicFindings(raw: string, framework: string): ForensicFinding[];
30
+ export interface AnalyzeForensicsInput {
31
+ framework: string;
32
+ /** Assembled forensic signals (log tail + session digest). Empty ⇒ no findings. */
33
+ signals: string;
34
+ /** The LLM call (injected — IntelligenceProvider.evaluate in production). */
35
+ evaluate: (prompt: string) => Promise<string>;
36
+ }
37
+ /**
38
+ * Run the Stage-B forensic analysis: classify the assembled signals into findings.
39
+ * Returns [] when there are no signals (nothing observed this tick) so the tick
40
+ * still records a run in the funnel. Never throws.
41
+ */
42
+ export declare function analyzeForensics(input: AnalyzeForensicsInput): Promise<ForensicFinding[]>;
43
+ //# sourceMappingURL=MentorStageBForensics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MentorStageBForensics.d.ts","sourceRoot":"","sources":["../../src/scheduler/MentorStageBForensics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,uCAAuC,CAAC;AAU/C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAiB9E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE,CAgCvF;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/C;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAS/F"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * MentorStageBForensics — the "look under the hood" analysis of Stage B
3
+ * (FRAMEWORK-ONBOARDING-MENTOR-SPEC §3.2, §19.4 deep-forensics follow-on).
4
+ *
5
+ * After Stage A drives the mentee, Stage B reads the mentee's actual signals
6
+ * (recent rollout/session activity + server-log errors/sentinel events) and
7
+ * classifies what went wrong into the three buckets, writing findings to the
8
+ * ledger. This module is the PURE core: prompt assembly + defensive parsing of
9
+ * the LLM's classification. The I/O (reading rollouts/logs) and the LLM call are
10
+ * injected, so it's fully unit-testable without an LLM or the filesystem.
11
+ *
12
+ * Signal-only: produces ForensicFinding[] for the ledger; never gates or acts.
13
+ */
14
+ import { ISSUE_BUCKETS, ISSUE_SEVERITIES, } from '../monitoring/FrameworkIssueLedger.js';
15
+ const MAX_FINDINGS_PER_RUN = 10; // bound a single tick's output
16
+ const MAX_TITLE = 200;
17
+ /** A normalized slug for a conservative dedupKey when the model omits one. */
18
+ function slug(s) {
19
+ return s.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '').slice(0, 80) || 'untitled';
20
+ }
21
+ /**
22
+ * Build the Stage-B forensic prompt. The model is asked to classify ONLY what
23
+ * the signals actually evidence into the three buckets, and to output a strict
24
+ * JSON array — no prose. Conservative by instruction: report nothing rather than
25
+ * speculate (false findings poison the ledger/playbook).
26
+ */
27
+ export function buildForensicPrompt(framework, signals) {
28
+ return [
29
+ `You are the "developer hat" of a framework-onboarding mentor, doing forensics on the agent`,
30
+ `framework "${framework}". Below are real signals from its recent activity (logs, session`,
31
+ `usage, errors). Identify concrete behavioral issues these signals EVIDENCE — do not speculate.`,
32
+ `Classify each into exactly one bucket:`,
33
+ ` - "framework-limitation": the engine's own limit (e.g. argv overflow, context truncation)`,
34
+ ` - "instar-integration-gap": Instar not fitting this engine right (a wiring/config defect)`,
35
+ ` - "generic-agent-mistake": a one-off mistake any agent could make`,
36
+ ``,
37
+ `Output ONLY a JSON array (no markdown, no prose). Each element:`,
38
+ ` {"bucket": "...", "title": "<short>", "severity": "low|medium|high", "dedupKey": "<stable-id>"}`,
39
+ `If the signals evidence no concrete issue, output []. Never invent issues.`,
40
+ ``,
41
+ `--- Signals ---`,
42
+ signals.slice(0, 12000), // bound the prompt
43
+ ].join('\n');
44
+ }
45
+ /**
46
+ * Parse the model's forensic output into validated findings. Defensive: tolerates
47
+ * markdown fences / surrounding prose, drops malformed or invalid-enum entries,
48
+ * caps count + field lengths, and derives a conservative dedupKey when the model
49
+ * omits one. Returns [] on any parse failure (never throws — a bad forensic read
50
+ * must not crash a tick).
51
+ */
52
+ export function parseForensicFindings(raw, framework) {
53
+ if (!raw || !raw.trim())
54
+ return [];
55
+ // Extract the first JSON array in the output (tolerate ```json fences / prose).
56
+ const start = raw.indexOf('[');
57
+ const end = raw.lastIndexOf(']');
58
+ if (start === -1 || end === -1 || end <= start)
59
+ return [];
60
+ let parsed;
61
+ try {
62
+ parsed = JSON.parse(raw.slice(start, end + 1));
63
+ }
64
+ catch {
65
+ return [];
66
+ }
67
+ if (!Array.isArray(parsed))
68
+ return [];
69
+ const out = [];
70
+ for (const item of parsed) {
71
+ if (out.length >= MAX_FINDINGS_PER_RUN)
72
+ break;
73
+ if (!item || typeof item !== 'object')
74
+ continue;
75
+ const o = item;
76
+ const bucket = o.bucket;
77
+ if (!ISSUE_BUCKETS.includes(bucket))
78
+ continue; // drop invalid bucket
79
+ const title = typeof o.title === 'string' ? o.title.trim().slice(0, MAX_TITLE) : '';
80
+ if (!title)
81
+ continue;
82
+ const severity = ISSUE_SEVERITIES.includes(o.severity)
83
+ ? o.severity
84
+ : 'medium';
85
+ const dedupKey = typeof o.dedupKey === 'string' && o.dedupKey.trim()
86
+ ? `${framework}::${slug(o.dedupKey)}`
87
+ : `${framework}::${slug(title)}`;
88
+ out.push({ bucket: bucket, title, severity, dedupKey, signature: title });
89
+ }
90
+ return out;
91
+ }
92
+ /**
93
+ * Run the Stage-B forensic analysis: classify the assembled signals into findings.
94
+ * Returns [] when there are no signals (nothing observed this tick) so the tick
95
+ * still records a run in the funnel. Never throws.
96
+ */
97
+ export async function analyzeForensics(input) {
98
+ if (!input.signals || !input.signals.trim())
99
+ return [];
100
+ let raw;
101
+ try {
102
+ raw = await input.evaluate(buildForensicPrompt(input.framework, input.signals));
103
+ }
104
+ catch {
105
+ return []; // a failed forensic LLM call is a no-op tick, not a crash
106
+ }
107
+ return parseForensicFindings(raw, input.framework);
108
+ }
109
+ //# sourceMappingURL=MentorStageBForensics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MentorStageBForensics.js","sourceRoot":"","sources":["../../src/scheduler/MentorStageBForensics.ts"],"names":[],"mappings":"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"}
@@ -221,6 +221,9 @@ export declare class AgentServer {
221
221
  * graduated-rollout track. The live spawn/forensics paths are real code, gated
222
222
  * behind that flag and validated via test-as-self before promotion.
223
223
  */
224
+ /** Find the N most recently-modified rollout .jsonl files under a codex sessions
225
+ * dir (nested year/month/day). Best-effort; returns [] on any error. */
226
+ private findRecentRolloutFiles;
224
227
  private buildMentorRunner;
225
228
  /**
226
229
  * Start the HTTP server.
@@ -1 +1 @@
1
- {"version":3,"file":"AgentServer.d.ts","sourceRoot":"","sources":["../../src/server/AgentServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentServer.d.ts","sourceRoot":"","sources":["../../src/server/AgentServer.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,8 @@ import { TokenLedgerPoller } from '../monitoring/TokenLedgerPoller.js';
33
33
  import { FrameworkIssueLedger } from '../monitoring/FrameworkIssueLedger.js';
34
34
  import { MentorOnboardingRunner, DEFAULT_MENTOR_CONFIG } from '../scheduler/MentorOnboardingRunner.js';
35
35
  import { STAGE_A_ALLOWED_TOOLS } from '../monitoring/MentorStageA.js';
36
+ import { analyzeForensics } from '../scheduler/MentorStageBForensics.js';
37
+ import { parseCodexRollout } from '../monitoring/CodexRolloutParser.js';
36
38
  import { BurnDetector } from '../monitoring/BurnDetector.js';
37
39
  import { BurnThrottleRunbook } from '../monitoring/BurnThrottleRunbook.js';
38
40
  import { BurnVerifier } from '../monitoring/BurnVerifier.js';
@@ -467,6 +469,37 @@ export class AgentServer {
467
469
  * graduated-rollout track. The live spawn/forensics paths are real code, gated
468
470
  * behind that flag and validated via test-as-self before promotion.
469
471
  */
472
+ /** Find the N most recently-modified rollout .jsonl files under a codex sessions
473
+ * dir (nested year/month/day). Best-effort; returns [] on any error. */
474
+ findRecentRolloutFiles(sessionsDir, n) {
475
+ const found = [];
476
+ const walk = (dir, depth) => {
477
+ if (depth > 5)
478
+ return;
479
+ let entries;
480
+ try {
481
+ entries = fs.readdirSync(dir, { withFileTypes: true });
482
+ }
483
+ catch {
484
+ return;
485
+ }
486
+ for (const e of entries) {
487
+ const full = path.join(dir, e.name);
488
+ if (e.isDirectory())
489
+ walk(full, depth + 1);
490
+ else if (e.name.endsWith('.jsonl')) {
491
+ try {
492
+ found.push({ path: full, mtime: fs.statSync(full).mtimeMs });
493
+ }
494
+ catch {
495
+ /* ignore */
496
+ }
497
+ }
498
+ }
499
+ };
500
+ walk(sessionsDir, 0);
501
+ return found.sort((a, b) => b.mtime - a.mtime).slice(0, n).map((f) => f.path);
502
+ }
470
503
  buildMentorRunner(ledger, options, serverDataDir) {
471
504
  const getConfig = () => ({
472
505
  ...DEFAULT_MENTOR_CONFIG,
@@ -508,13 +541,49 @@ export class AgentServer {
508
541
  }
509
542
  return self.sessionManager.captureOutput(tmux, 200) ?? '';
510
543
  },
511
- // Stage-B deep log-forensics (assembling the mentee's rollouts/diffs and
512
- // classifying) is a tracked follow-on; today the loop's real signal is the
513
- // Stage-A leak detector (§4.3). Returns [] when no forensic inputs exist so
514
- // the funnel still logs the run. <!-- tracked: topic-13435 -->
515
- runStageBForensics: async () => {
516
- void intelligence;
517
- return [];
544
+ // Stage-B deep forensics (§3.2): assemble the mentee's real signals
545
+ // (recent server-log errors/sentinel lines + a codex-rollout usage digest)
546
+ // and classify them into bucketed findings via the LLM. Returns [] when no
547
+ // intelligence provider or no signals (so the funnel still logs the run).
548
+ // The pure prompt/parse logic lives in MentorStageBForensics (tested);
549
+ // this closure only does the I/O (read logs/rollouts).
550
+ runStageBForensics: async (framework) => {
551
+ if (!intelligence)
552
+ return [];
553
+ let signals = '';
554
+ try {
555
+ const logPath = path.join(options.config.stateDir, 'logs', 'server.log');
556
+ if (fs.existsSync(logPath)) {
557
+ const buf = fs.readFileSync(logPath, 'utf-8');
558
+ const errLines = buf
559
+ .split('\n')
560
+ .filter((l) => /error|sentinel|delivery|fail|timeout|degrad/i.test(l))
561
+ .slice(-40);
562
+ if (errLines.length)
563
+ signals += `## Recent server-log signals\n${errLines.join('\n')}\n\n`;
564
+ }
565
+ // Codex-rollout usage digest (rate-limit pressure / token burn) for codex frameworks.
566
+ if (framework.startsWith('codex')) {
567
+ const sessionsDir = path.join(os.homedir(), '.codex', 'sessions');
568
+ const recent = self.findRecentRolloutFiles(sessionsDir, 3);
569
+ for (const f of recent) {
570
+ const parsed = parseCodexRollout(fs.readFileSync(f, 'utf-8'));
571
+ if (parsed) {
572
+ signals += `## Codex session ${parsed.sessionId.slice(0, 8)} (model ${parsed.model ?? '?'})\n` +
573
+ `tokens=${parsed.totalTokens} primaryRateLimit=${parsed.primaryUsedPercent ?? '?'}% ` +
574
+ `secondaryRateLimit=${parsed.secondaryUsedPercent ?? '?'}% turns=${parsed.tokenCountEvents}\n\n`;
575
+ }
576
+ }
577
+ }
578
+ }
579
+ catch (err) {
580
+ console.warn('[mentor] Stage-B signal gathering failed (non-fatal):', err);
581
+ }
582
+ return analyzeForensics({
583
+ framework,
584
+ signals,
585
+ evaluate: (prompt) => intelligence.evaluate(prompt, { model: 'capable', maxTokens: 1500, attribution: { component: 'mentor-stage-b' } }),
586
+ });
518
587
  },
519
588
  // Safe-window: any other running (non-protected) session means the system
520
589
  // is busy — conservative "don't interrupt." Refined per-mentee at live
@@ -1 +1 @@
1
- {"version":3,"file":"AgentServer.js","sourceRoot":"","sources":["../../src/server/AgentServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentServer.js","sourceRoot":"","sources":["../../src/server/AgentServer.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.14",
3
+ "version": "1.3.16",
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",
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/env python3
2
+ """Parity reference: run the REAL can_transition_to_verified deterministically.
3
+
4
+ The reference is time- and DB-dependent. We monkeypatch the processor's
5
+ `datetime` (so .now() returns the case's fixed `now`) and `run_prisma_query` (so
6
+ the version-anchored query returns the case's recentReportsSinceFix), then call
7
+ the actual, unmodified can_transition_to_verified. Emits JSON {case, result}.
8
+
9
+ Usage: python3 _py_verify_ref.py <processor_path> <corpus_path>
10
+ """
11
+ import sys
12
+ import json
13
+ import importlib.util
14
+ import datetime as _dt
15
+
16
+
17
+ def load_processor(path):
18
+ spec = importlib.util.spec_from_file_location("_feedback_processor_ref_vf", path)
19
+ mod = importlib.util.module_from_spec(spec)
20
+ spec.loader.exec_module(mod)
21
+ return mod
22
+
23
+
24
+ def make_fake_datetime(fixed_now_iso):
25
+ real = _dt.datetime
26
+
27
+ class FakeDateTime:
28
+ @staticmethod
29
+ def now(tz=None):
30
+ return real.fromisoformat(fixed_now_iso.replace('Z', '+00:00'))
31
+
32
+ @staticmethod
33
+ def fromisoformat(s):
34
+ return real.fromisoformat(s)
35
+ return FakeDateTime
36
+
37
+
38
+ def main():
39
+ if len(sys.argv) != 3:
40
+ print("usage: _py_verify_ref.py <processor_path> <corpus_path>", file=sys.stderr)
41
+ sys.exit(2)
42
+ processor_path, corpus_path = sys.argv[1], sys.argv[2]
43
+ proc = load_processor(processor_path)
44
+ with open(corpus_path, encoding="utf-8") as f:
45
+ corpus = json.load(f)
46
+
47
+ out = []
48
+ for case in corpus["cases"]:
49
+ proc.datetime = make_fake_datetime(case["now"])
50
+ recent = case.get("recentReportsSinceFix", [])
51
+ proc.run_prisma_query = lambda *a, **k: json.dumps(recent)
52
+ result = proc.can_transition_to_verified(case["cluster"])
53
+ out.append({"clusterId": case["cluster"]["clusterId"], "result": result})
54
+
55
+ sys.stdout.write(json.dumps(out, ensure_ascii=False))
56
+
57
+
58
+ if __name__ == "__main__":
59
+ main()
@@ -0,0 +1,14 @@
1
+ {
2
+ "_comment": "Parity corpus for can_transition_to_verified. Each case fixes `now` and the version-anchored query result (recentReportsSinceFix) so the time/DB-dependent reference is deterministic. The Python ref monkeypatches datetime.now + run_prisma_query to these. Timestamps are UTC (Z).",
3
+ "cases": [
4
+ { "_name": "no fix timestamp", "now": "2026-05-27T00:00:00Z", "cluster": { "clusterId": "c1", "title": "t", "description": "d", "createdAt": "2026-05-20T00:00:00Z" } },
5
+ { "_name": "silence: too soon → wait", "now": "2026-05-27T00:00:00Z", "cluster": { "clusterId": "c2", "title": "t", "description": "d", "createdAt": "2026-05-20T00:00:00Z", "updatedAt": "2026-05-26T00:00:00Z", "reportCount": 1, "fixAppliedAt": "2026-05-26T14:00:00Z" } },
6
+ { "_name": "silence: quiet long enough → verified low", "now": "2026-05-27T00:00:00Z", "cluster": { "clusterId": "c3", "title": "t", "description": "d", "createdAt": "2026-05-20T00:00:00Z", "updatedAt": "2026-05-22T00:00:00Z", "reportCount": 1, "fixAppliedAt": "2026-05-22T20:00:00Z" } },
7
+ { "_name": "version-anchored: recent reports → revert", "now": "2026-05-27T00:00:00Z", "recentReportsSinceFix": [ { "instarVersion": "1.2.4", "receivedAt": "2026-05-26T00:00:00Z" } ], "cluster": { "clusterId": "c4", "title": "t", "description": "d", "createdAt": "2026-05-20T00:00:00Z", "fixedInVersion": "1.2.3", "fingerprint": "abc123", "fixAppliedAt": "2026-05-25T18:00:00Z" } },
8
+ { "_name": "version-anchored: no recent, >=24h → verified high", "now": "2026-05-27T00:00:00Z", "recentReportsSinceFix": [], "cluster": { "clusterId": "c5", "title": "t", "description": "d", "createdAt": "2026-05-20T00:00:00Z", "fixedInVersion": "1.2.3", "fingerprint": "abc123", "fixAppliedAt": "2026-05-25T18:00:00Z" } },
9
+ { "_name": "version-anchored: no recent, <24h → falls through to silence (wait)", "now": "2026-05-27T00:00:00Z", "recentReportsSinceFix": [], "cluster": { "clusterId": "c6", "title": "t", "description": "d", "createdAt": "2026-05-20T00:00:00Z", "updatedAt": "2026-05-26T00:00:00Z", "reportCount": 1, "fixedInVersion": "1.2.3", "fingerprint": "abc123", "fixAppliedAt": "2026-05-26T14:00:00Z" } },
10
+ { "_name": "dispatchedAt fallback when no fixAppliedAt", "now": "2026-05-27T00:00:00Z", "cluster": { "clusterId": "c7", "title": "t", "description": "d", "createdAt": "2026-05-20T00:00:00Z", "updatedAt": "2026-05-22T00:00:00Z", "reportCount": 1, "dispatchedAt": "2026-05-22T20:00:00Z" } },
11
+ { "_name": "fractional hours exercises :.0f rounding", "now": "2026-05-27T00:00:00Z", "cluster": { "clusterId": "c8", "title": "t", "description": "d", "createdAt": "2026-05-20T00:00:00Z", "updatedAt": "2026-05-25T00:00:00Z", "reportCount": 1, "fixAppliedAt": "2026-05-24T23:30:00Z" } },
12
+ { "_name": "multi-report frequency drives silence_required", "now": "2026-05-27T00:00:00Z", "cluster": { "clusterId": "c9", "title": "t", "description": "d", "createdAt": "2026-05-20T00:00:00Z", "updatedAt": "2026-05-26T00:00:00Z", "reportCount": 7, "fixAppliedAt": "2026-05-26T20:00:00Z" } }
13
+ ]
14
+ }
@@ -0,0 +1,69 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * verify-parity.mjs — LOCAL parity gate for the fix-verification port.
4
+ *
5
+ * Runs the REAL can_transition_to_verified (datetime.now + DB query monkeypatched
6
+ * deterministically to each case) and the TS canTransitionToVerified over the same
7
+ * fixed `now` + recentReportsSinceFix, and asserts the full result object matches
8
+ * (allowed, evidence, recommendation, confidence, verified_by). LOCAL evidence
9
+ * gate, not CI.
10
+ *
11
+ * Exit 0 = parity; exit 1 = mismatch.
12
+ */
13
+
14
+ import { spawnSync } from 'node:child_process';
15
+ import fs from 'node:fs';
16
+ import path from 'node:path';
17
+ import { fileURLToPath } from 'node:url';
18
+
19
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
20
+ const ROOT = path.resolve(__dirname, '..', '..');
21
+
22
+ const PROCESSOR = process.env.PORTAL_PROCESSOR
23
+ || '/Users/justin/Documents/Projects/the-portal/.claude/scripts/feedback-processor.py';
24
+ const CORPUS = path.join(__dirname, 'verify-corpus.json');
25
+ const PY_REF = path.join(__dirname, '_py_verify_ref.py');
26
+
27
+ if (!fs.existsSync(PROCESSOR)) {
28
+ console.error(`[verify-parity] reference processor not found: ${PROCESSOR}`);
29
+ process.exit(2);
30
+ }
31
+
32
+ const py = spawnSync('python3', [PY_REF, PROCESSOR, CORPUS], { encoding: 'utf8' });
33
+ if (py.status !== 0) {
34
+ console.error('[verify-parity] python reference failed:\n', py.stderr || py.stdout);
35
+ process.exit(2);
36
+ }
37
+ const reference = JSON.parse(py.stdout);
38
+
39
+ const corpus = JSON.parse(fs.readFileSync(CORPUS, 'utf8'));
40
+ const distUrl = new URL('file://' + path.join(ROOT, 'dist', 'feedback-factory', 'processor', 'verify.js'));
41
+ const { canTransitionToVerified } = await import(distUrl.href);
42
+
43
+ const norm = (r) => JSON.stringify({
44
+ allowed: r.allowed, evidence: r.evidence,
45
+ recommendation: r.recommendation ?? null, confidence: r.confidence ?? null,
46
+ verified_by: r.verified_by ?? null,
47
+ });
48
+
49
+ let mismatches = 0;
50
+ for (let i = 0; i < corpus.cases.length; i++) {
51
+ const c = corpus.cases[i];
52
+ const got = canTransitionToVerified(c.cluster, { now: c.now, recentReportsSinceFix: c.recentReportsSinceFix });
53
+ const want = reference[i].result;
54
+ if (norm(got) !== norm(want)) {
55
+ mismatches++;
56
+ console.error(`[MISMATCH] ${c._name || c.cluster.clusterId}`);
57
+ console.error(` python: ${norm(want)}`);
58
+ console.error(` ts : ${norm(got)}`);
59
+ }
60
+ }
61
+
62
+ const total = corpus.cases.length;
63
+ if (mismatches === 0) {
64
+ console.error(`[verify-parity] ✓ ${total}/${total} verification results match the reference can_transition_to_verified.`);
65
+ process.exit(0);
66
+ } else {
67
+ console.error(`[verify-parity] ✗ ${mismatches}/${total} mismatches — the TS port diverges from the reference.`);
68
+ process.exit(1);
69
+ }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-05-27T06:14:27.030Z",
5
- "instarVersion": "1.3.14",
4
+ "generatedAt": "2026-05-27T06:41:15.968Z",
5
+ "instarVersion": "1.3.16",
6
6
  "entryCount": 192,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -1449,7 +1449,7 @@
1449
1449
  "type": "subsystem",
1450
1450
  "domain": "server",
1451
1451
  "sourcePath": "src/server/AgentServer.ts",
1452
- "contentHash": "75aaa59ade72e28362b53041b5e0e90958740f8d15174381d52f7ff97cd5561e",
1452
+ "contentHash": "ade569bff63caeadbdad23e2546acced4aae7954055df97d635fc9e9b197cb9a",
1453
1453
  "since": "2025-01-01"
1454
1454
  },
1455
1455
  "subsystem:session-manager": {
@@ -0,0 +1,38 @@
1
+ # Instar Upgrade Guide — NEXT
2
+
3
+ <!-- bump: minor -->
4
+
5
+ ## What Changed
6
+
7
+ **Framework-Onboarding Mentor System — Stage-B deep forensics.** The "look under the hood" half of
8
+ the mentor loop is now real. Instead of recording nothing, Stage B reads the mentee's actual recent
9
+ signals — error/sentinel lines from the server log plus a usage digest from its recent Codex session
10
+ rollouts (token burn, rate-limit pressure) — and asks the model to classify any concrete issues into
11
+ the three buckets (engine limitation / Instar integration gap / one-off mistake), writing them to the
12
+ ledger. The prompt-and-parse logic is a separate pure module, defensively tested: malformed or
13
+ invented entries are dropped, and a failed forensic read is a no-op tick, never a crash or a poisoned
14
+ ledger. Still dormant.
15
+
16
+ ## What to Tell Your User
17
+
18
+ - When the mentor inspects the mentee, it now actually reads its logs and recent sessions and writes
19
+ down what it finds — bucketed and ranked — rather than just noting that an inspection happened.
20
+ - It's deliberately cautious: it reports nothing rather than guess, so the notebook stays trustworthy.
21
+
22
+ ## Summary of New Capabilities
23
+
24
+ | Capability | How to Use |
25
+ |-----------|-----------|
26
+ | Stage-B forensics | Automatic inside a live/dry-run mentor tick — reads server-log errors + codex-rollout digest, classifies into ledger findings |
27
+ | Defensive forensic parse | `MentorStageBForensics.parseForensicFindings()` — drops malformed/invalid entries; never throws |
28
+
29
+ ## Evidence
30
+
31
+ Net-new feature, not a bug fix — no prior production failure. Proven by tests: the parser is asserted
32
+ to handle clean JSON, markdown-fenced output, and surrounding prose; to **drop invalid-bucket and
33
+ titleless entries**; to return `[]` for non-JSON/empty/broken input (never throw); to cap findings
34
+ per run; and to derive a stable dedupKey when the model omits one. `analyzeForensics` is asserted to
35
+ **skip the LLM call entirely when there are no signals**, to classify real signals via the injected
36
+ model, and to return `[]` (no crash) when the LLM throws. 10 unit tests + an e2e confirming the server
37
+ boots clean with the forensics wiring and stays dormant; affected push-config suite green (488) vs
38
+ canonical main.
@@ -0,0 +1,26 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- bump: patch -->
4
+
5
+ ## What Changed
6
+
7
+ Fifth increment of the **Feedback Factory Migration** (Dawn → Echo; spec `docs/specs/feedback-factory-migration.md`, approved). Ports the **fix verifier** — `can_transition_to_verified` — from the reference Python (`the-portal/.claude/scripts/feedback-processor.py`) to TypeScript at `src/feedback-factory/processor/verify.ts`.
8
+
9
+ This is the logic that decides whether a bug marked "fixed" has actually stayed fixed before it's allowed to move to "verified": a high-confidence check (no recurrence on the fixed version) and a low-confidence fallback (quiet long enough relative to how often the bug used to be reported). The clock and the recent-reports lookup are passed in by the caller, so the decision itself is pure and deterministic. **Not wired into any route or job yet** — no behavioral change.
10
+
11
+ ## What to Tell Your User
12
+
13
+ - The part of the feedback brain that guards against declaring a bug fixed too early is now ported — it won't mark something verified while reports are still coming in, or before enough quiet time has passed.
14
+ - Proven against Dawn's original by feeding both the same fixed clock and the same recent-report data: identical verdicts, 9 for 9 — including the exact wording of the "how many hours" explanations.
15
+
16
+ ## Summary of New Capabilities
17
+
18
+ | Capability | How to Use |
19
+ |-----------|-----------|
20
+ | Fix verifier (TS port) | Internal module `src/feedback-factory/processor/verify.ts` — not yet wired |
21
+ | Verifier parity harness | `node scripts/feedback-factory/verify-parity.mjs` (local; set `PORTAL_PROCESSOR`) |
22
+
23
+ ## Evidence
24
+
25
+ - **Parity vs the REAL `can_transition_to_verified`:** the harness monkeypatches the reference's clock (`datetime.now`) and database query to fixed per-case values and runs the actual function, then compares the full verdict (allowed, evidence text, recommendation, confidence, verified-by) to the TS port. Result: **9/9 identical** across no-fix-timestamp, silence too-soon vs quiet-enough, version-anchored (recent reports / clean / under-24h fallthrough), the dispatched-at fallback, and a fractional-hours case that exercises Python's round-half-to-even number formatting.
26
+ - **CI anchors:** unit tests assert each branch plus the half-to-even rounding, so a regression fails in CI even without the reference checkout.
@@ -0,0 +1,31 @@
1
+ # Side-Effects Review — feedback-factory fix verifier (Phase 1, increment 5)
2
+
3
+ **Slug:** `feedback-factory-verify`
4
+ **Date:** `2026-05-27`
5
+ **Author:** Echo (autonomous)
6
+ **Spec:** `docs/specs/feedback-factory-migration.md` (converged v2, approved by Justin 2026-05-26)
7
+ **Scope:** `can_transition_to_verified` (:1084) — decide whether a fixed cluster has stayed fixed (version-anchored HIGH-confidence + silence-based LOW-confidence). The real `datetime.now()` + recent-reports query are injected by the caller; this is the pure decision.
8
+
9
+ ## Summary of the change
10
+
11
+ Byte-exact port of `can_transition_to_verified` from `the-portal/.claude/scripts/feedback-processor.py` to `src/feedback-factory/processor/verify.ts` (`canTransitionToVerified`). Pure: `now` and the version-anchored query result (`recentReportsSinceFix`) are injected via `VerifyOptions` (the real store adapter does `datetime.now()` + the query). Adds `pyFormat0f` (Python `:.0f` round-half-to-even), the parity harness, and Tier-1 unit tests. **Not wired into any route/job yet** — no behavioral change.
12
+
13
+ ## Equivalence verification
14
+
15
+ - **9/9 cases match the REAL `can_transition_to_verified`.** The parity harness monkeypatches the reference's `datetime` (so `.now()` returns each case's fixed `now`) and `run_prisma_query` (so the version-anchored query returns each case's `recentReportsSinceFix`), then runs the actual, unmodified function — full result object compared (allowed, evidence, recommendation, confidence, verified_by). Cases cover: no-fix-timestamp, silence too-soon/quiet-enough, version-anchored recent-reports/clean/under-24h-fallthrough, the `dispatchedAt` fallback, fractional-hours `:.0f` rounding, and multi-report frequency.
16
+
17
+ ## Seven-dimension review
18
+
19
+ 1. **Over/under-reach** — Pure deterministic function (given injected now + reports), no I/O, no global state, not imported by any runtime path.
20
+ 2. **Level-of-abstraction fit** — Processor-logic layer. Time + DB are injected at the function boundary (dependency injection), keeping the decision pure + the real query/clock in the adapter — the cleanest seam.
21
+ 3. **Signal vs Authority** — N/A; produces a recommendation object. The actual transition is still gated by `canTransition` (increment 3) + the curated lifecycle.
22
+ 4. **Interactions** — None. New isolated module. Parity scripts LOCAL-only.
23
+ 5. **Rollback cost** — Trivial: delete the module + tests + scripts.
24
+ 6. **Migration parity** — N/A. New internal library code; no agent-installed file touched.
25
+ 7. **Failure modes** — (a) Port diverges → parity harness (9/9, against the real function) + unit tests. (b) `:.0f` half-rounding divergence → `pyFormat0f` unit-tested on exact-half cases + parity (fractional-hours case). (c) Timezone/ISO parse divergence → both sides parse to epoch ms (UTC); corpus uses tz-aware Z timestamps; parity verifies. (d) Caller forgets to inject `recentReportsSinceFix` when version+fingerprint present → treated as empty (no recent reports), matching "no recurrence"; documented in the type.
26
+
27
+ ## Tests
28
+
29
+ - Tier-1 unit (CI): `tests/unit/feedback-factory/verify.test.ts` — pyFormat0f (half-to-even), no-timestamp, version-anchored revert/high/fallthrough, silence verified, dispatchedAt fallback. 7 tests.
30
+ - Parity (local gate, evidence): `scripts/feedback-factory/verify-parity.mjs` → **9/9** vs the real `can_transition_to_verified`.
31
+ - No integration/E2E this increment: not wired to a route/job; those tiers attach when the transition driver + job land. Reasoned decision, documented.
@@ -0,0 +1,62 @@
1
+ # Side-Effects Review — Stage-B deep forensics (§19.4 follow-on)
2
+
3
+ **Spec:** `docs/specs/FRAMEWORK-ONBOARDING-MENTOR-SPEC.md` (converged 5 iters, approved by Justin)
4
+ **Change:** Makes Stage B *real* — instead of returning `[]`, it now reads the mentee's actual
5
+ signals (recent server-log error/sentinel lines + a codex-rollout usage digest) and classifies them
6
+ into bucketed findings via the LLM. New pure module `MentorStageBForensics` (prompt assembly +
7
+ defensive parse, fully unit-tested); the AgentServer closure does the I/O (read logs/rollouts) and
8
+ injects `IntelligenceProvider.evaluate`.
9
+ **Files:** `src/scheduler/MentorStageBForensics.ts` (new), `src/server/AgentServer.ts`,
10
+ `tests/unit/MentorStageBForensics.test.ts` (new), `tests/e2e/mentor-onboarding-lifecycle.test.ts`,
11
+ `upgrades/NEXT.md`.
12
+
13
+ ## Principle check (Phase 1)
14
+
15
+ Decision point? No new one. Stage B produces *signal* (ForensicFinding[] → the ledger). It reads
16
+ logs/rollouts (read-only) and classifies via the LLM. No gating, no action. Still dormant
17
+ (`mentor.enabled=false`), and Stage B only runs inside an enabled+safe+in-budget tick.
18
+
19
+ ## The seven questions
20
+
21
+ 1. **Over-block.** N/A — produces findings, blocks nothing. The prompt instructs the model to
22
+ report `[]` rather than speculate, biasing toward fewer (real) findings over false ones.
23
+ 2. **Under-block.** Forensic signals are bounded (last 40 error-ish log lines + ≤3 recent rollout
24
+ digests); a subtle issue not evidenced in those signals won't be caught — acceptable (the loop's
25
+ other signal is the Stage-A leak detector, and the funnel logs every run). The parse is defensive:
26
+ invalid-bucket / titleless / malformed entries are dropped; a non-JSON or throwing LLM call yields
27
+ `[]`, never a crash or a poisoned ledger entry.
28
+ 3. **Level-of-abstraction fit.** Prompt + parse are a pure module (`MentorStageBForensics`) — no I/O,
29
+ no LLM — so the classification logic is unit-tested in isolation. The AgentServer closure owns the
30
+ I/O (reads `logs/server.log` + `~/.codex/sessions/` via the existing `parseCodexRollout`). Correct
31
+ split; reuses the established rollout parser rather than re-implementing.
32
+ 4. **Signal vs authority.** Compliant. Findings are signal; the human + normal gates hold authority.
33
+ The model is constrained to the three buckets + JSON; free-text is title-only and length-capped.
34
+ 5. **Interactions.** Reuses `parseCodexRollout` (no new rollout logic) and `IntelligenceProvider`
35
+ (the established judgment-call path, `model: capable`, attributed `mentor-stage-b`). Findings flow
36
+ to `ledger.captureRun` (existing funnel). Signal-gathering is wrapped in try/catch — a log/rollout
37
+ read failure degrades to fewer signals, never a crash.
38
+ 6. **External surfaces.** No new routes. Reads existing on-disk logs/rollouts (read-only). The LLM
39
+ call is a background-attributed judgment call. Still Bearer-gated overall; still dormant.
40
+ 7. **Rollback cost.** Low. Revert restores the `[]` stub. No schema/migration change.
41
+
42
+ ## Phase 5 — second-pass
43
+
44
+ Not required. No new decision surface — Stage B was always specced to read + classify; this fills in
45
+ the real reader/classifier behind the §19.4 loop (which carried the dedicated second-pass). The new
46
+ logic is pure + defensively-tested; the I/O is read-only with try/catch. Bias is explicitly toward
47
+ no-finding over false-finding.
48
+
49
+ ## Remaining before `live`
50
+
51
+ `getSurface` still returns an empty conversation history (Stage A has thin context until the
52
+ Threadline conversation source is wired) — tracked (<!-- tracked: topic-13435 -->), and validated at
53
+ the live step. Forensic depth is intentionally bounded; richer diff/PR analysis is a future follow-on.
54
+
55
+ ## Testing
56
+
57
+ - Tier 1 (unit, +10): prompt names framework + buckets + JSON-only; parse handles clean JSON,
58
+ markdown fences, invalid-bucket/titleless drops, non-JSON/empty → [], finding cap, dedupKey
59
+ derivation; analyzeForensics no-LLM-call-without-signals, classifies real signals, []-on-throw.
60
+ - Tier 3 (e2e, +1): server boots clean with the forensics wiring; mentor stays dormant
61
+ (`/mentor/tick` → disabled) on the production path.
62
+ - route-completeness + discoverability gates pass; affected push-config suite green (488) vs main.