From 0bbb0bbef8e61c8af6a21abc56b6be77e18f994e Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Tue, 21 Jul 2026 15:03:03 -0700 Subject: [PATCH] fix(doctor): categorize timeline_coverage as a brain check (takeover of #2817) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only the doctor-categories half of #2817 — the auto_chronicle config registration already landed on master via another PR. timeline_coverage is emitted by src/core/onboard/checks.ts but was missing from BRAIN_CHECK_NAMES, so it fell through the warn-once unknown-name path to 'meta'. Co-authored-by: davidfragnoli-lang Co-Authored-By: Claude Fable 5 --- src/core/doctor-categories.ts | 1 + test/doctor-categories.test.ts | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/core/doctor-categories.ts b/src/core/doctor-categories.ts index e445bfeea..9e8f5b24c 100644 --- a/src/core/doctor-categories.ts +++ b/src/core/doctor-categories.ts @@ -103,6 +103,7 @@ export const BRAIN_CHECK_NAMES: ReadonlySet = new Set([ 'sync_failures', 'sync_freshness', 'takes_weight_grid', + 'timeline_coverage', 'unified_multimodal_coverage', 'voice_gate_health', ]); diff --git a/test/doctor-categories.test.ts b/test/doctor-categories.test.ts index b6bbf3b8f..ea4e89de6 100644 --- a/test/doctor-categories.test.ts +++ b/test/doctor-categories.test.ts @@ -124,6 +124,10 @@ describe('categorizeCheck', () => { expect(categorizeCheck('sync_freshness')).toBe('brain'); }); + test('timeline_coverage (emitted by onboard/checks.ts, not doctor.ts) is brain, not meta fallthrough (#2817)', () => { + expect(categorizeCheck('timeline_coverage')).toBe('brain'); + }); + test('returns the right category for a known skill name', () => { expect(categorizeCheck('resolver_health')).toBe('skill'); expect(categorizeCheck('skill_conformance')).toBe('skill');