diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0408436f1..3509431f3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -255,6 +255,37 @@ All notable changes to MeMesh are documented here.
append path gets the same content guard, so this dedup is now a property of
writing an observation at all, not just of these three hooks.
+- **`memesh doctor` now says when an AI-backed feature has quietly stopped
+ working.** `llm_telemetry` recorded every Smart-Mode call but nothing read
+ it for a health signal — measured on a real graph, `guard_proposer` had
+ failed all 69 of its calls, every one, across the four days it ran between
+ 2026-08-28 and 2026-09-01, invisible to doctor. A new zero-cost check
+ (`inspectLlmTelemetryHealth`, no `--probe`
+ gate) reads the last 7 days and warns when a flow's recent calls (≥3) all
+ failed; a shorter window than `memesh telemetry`'s 30-day default is
+ deliberate — a longer one blends in stale successes and hides a flow that
+ has been 100% broken all week. Silent (not a false PASS) when the table is
+ empty or a flow has never run; informational when calls exist and none are
+ 100%-failing. New `doctor.msg.llm-telemetry.silent-failure` catalogue entry
+ in all 11 dashboard locales.
+
+- **A split lesson no longer starts its life carrying its parent bucket's
+ stale recall history.** `splitFusedLessons` moves a fused `-other` bucket's
+ observations into their own entities but left `recall_hits`/`recall_misses`
+ on the now-empty, archived bucket forever — measured, 4 of 49 already-split
+ shells on a real graph still carried nonzero history (one at 3 hits / 61
+ misses), which `scripts/audit/measure-signals.mjs`'s unfiltered
+ `SUM(recall_hits) FROM entities` counts to this day. The bucket's rate is
+ itself an artifact of the fusion being repaired — a bucket fusing many
+ unrelated lessons gets injected broadly and cited rarely, which is not a
+ measurement of what any one lesson in it is worth — so it is not divided or
+ copied onto the successors (they correctly start at 0/0); the shell's own
+ counters are zeroed and the number is kept for forensic reading under
+ `metadata.retired_recall`. A new one-shot repair
+ (`repairFusedLessonShellHistory`) retires the history on shells already in
+ this state, and `scripts/audit/memory-invariants.mjs` gained
+ `split-lesson-shell-carries-no-recall-history` to keep it caught.
+
- **The Ollama host guard now rebuilds the request origin instead of forwarding
the configured string.** `resolveOllamaHost` used to validate a persisted
`llm.host` and then pass the same string to `fetch`, which left CodeQL alert
diff --git a/dashboard/dist/index.html b/dashboard/dist/index.html
index dafcbfceb..09d3fdf12 100644
--- a/dashboard/dist/index.html
+++ b/dashboard/dist/index.html
@@ -10,7 +10,7 @@
Newsreader = memory content (italic carries the inferred-vs-verbatim
distinction), Geist Mono = data. Offline, the stacks fall back. -->
-
+`)}`,G=`https://github.com/PCIRCLE-AI/memesh/issues/new?title=${encodeURIComponent("[Bug] memesh doctor reported issues")}&body=${encodeURIComponent(A)}&labels=${encodeURIComponent("feedback,from-dashboard,bug,doctor-warning")}`;wo(G)||(i(G),c(!1))}async function y(){if(a)try{await navigator.clipboard.writeText(a),c(!0)}catch{c(!1)}}const k=t.status==="FAIL",z=k?"var(--danger)":"var(--warning)",x=k?"var(--danger-soft)":"var(--warning-soft)";return e("div",{role:"alert",style:{position:"relative",margin:"12px auto 0",maxWidth:920,padding:"12px 16px",border:`1px solid ${z}`,borderRadius:"var(--radius)",background:x,color:"var(--text-1)"},children:[e("button",{type:"button",onClick:h,"aria-label":s("doctorBanner.dismiss"),style:{position:"absolute",top:6,right:8,background:"transparent",border:"none",color:"var(--text-3)",fontSize:18,lineHeight:1,cursor:"pointer",padding:4},children:"×"}),e("div",{style:{fontSize:13,fontWeight:600,color:z,marginBottom:6},children:s(k?"doctorBanner.failTitle":"doctorBanner.warnTitleSoft")}),e("ul",{style:{margin:"6px 0 10px",paddingLeft:18,fontSize:12,lineHeight:1.5,color:"var(--text-2)"},children:[u.slice(0,3).map(b=>{const A=ei(b);return e("li",{children:[e("strong",{children:[ti(b),":"]})," ",Za(b),A&&e(ue,{children:[" — ",e("em",{style:{color:"var(--text-3)"},children:A}),Ya(A).map(j=>e(Rt,{id:"doctor-fix-command",command:j},j))]})]},b.id)}),u.length>3&&e("li",{style:{color:"var(--text-3)"},children:s("doctorBanner.moreCount",{n:u.length-3})})]}),k&&e("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[e("button",{type:"button",class:"btn",onClick:m,style:{fontSize:12,padding:"4px 12px"},children:s("doctorBanner.getHelp")}),e(vo,{id:"doctor-help"}),e("span",{style:{fontSize:11,color:"var(--text-3)"},children:s("doctorBanner.helpHint")})]}),a&&e("div",{role:"alert",style:{marginTop:8,fontSize:12},children:[e("div",{children:s("feedback.popupBlocked")}),e("a",{href:a,target:"_blank",rel:"noopener noreferrer",children:s("feedback.retry")})," ",e("button",{type:"button",class:"btn btn-sm",onClick:()=>{y()},children:s(d?"feedback.linkCopied":"feedback.copyLink")})]})]})}const Ks="memesh.insightsBanner.dismissed";function ri({currentTab:t,onNavigateToInsights:n}){const[o,r]=p(0),[a,i]=p(()=>{try{return sessionStorage.getItem(Ks)==="true"}catch{return!1}});if(oe(()=>{let u=!0;const l=()=>{$("GET","/v1/dream/proposals?status=pending").then(m=>{if(!u)return;const y=Array.isArray(m)?m:m?.data??[];r(y.length)}).catch(()=>{})};l();const h=()=>l();return window.addEventListener("memesh:data-changed",h),()=>{u=!1,window.removeEventListener("memesh:data-changed",h)}},[]),t==="Home"||a||o===0)return null;function d(u){u.stopPropagation(),i(!0);try{sessionStorage.setItem(Ks,"true")}catch{}}const c=s("banner.pendingInsights",{n:o,s:o===1?"":"s"});return e("div",{role:"button","aria-label":s("banner.viewAll"),onClick:n,onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),n())},tabIndex:0,style:{position:"relative",margin:"12px auto 0",maxWidth:920,padding:"10px 40px 10px 16px",border:"1px solid rgba(143, 242, 92, 0.32)",borderRadius:"var(--radius)",background:"var(--life-soft)",color:"var(--text-1)",cursor:"pointer",fontSize:13,lineHeight:1.5,display:"flex",alignItems:"center",justifyContent:"space-between",gap:8},children:[e("span",{style:{flex:1},children:[e("span",{style:{marginRight:6},"aria-hidden":"true",children:"💡"}),c]}),e("button",{type:"button",onClick:d,"aria-label":s("banner.dismiss"),style:{position:"absolute",top:6,right:8,background:"transparent",border:"none",color:"var(--text-3)",fontSize:18,lineHeight:1,cursor:"pointer",padding:4},children:"×"})]})}const Mo=["Home","Memories","Project","Graph","Settings"],ai={Home:"tab.home",Memories:"tab.memories",Project:"tab.project",Graph:"tab.graph",Settings:"tab.settings"},ii={Insights:"Home",Analytics:"Home",Search:"Memories",Browse:"Memories",Manage:"Memories",Lessons:"Memories"},So="memesh.tab";function li(){const t=n=>n?Mo.includes(n)?n:ii[n]??null:null;try{const n=new URLSearchParams(window.location.search),o=t(n.get("tab"));if(o)return o;const r=t(localStorage.getItem(So));if(r)return r}catch{}return"Home"}function ci(){const[t,n]=p(()=>Go()),[o,r]=p(li),[a,i]=p(!1),d=Ee(f=>{o==="Settings"&&f!=="Settings"&&a&&!confirm(s("settings.unsavedConfirm"))||r(f)},[a,o]),[c,u]=p(()=>new Set);oe(()=>{u(f=>f.has(o)?f:new Set(f).add(o))},[o]);const l=f=>c.has(f)||o===f;oe(()=>{try{localStorage.setItem(So,o)}catch{}try{const f=new URL(window.location.href);f.searchParams.set("tab",o),history.replaceState(null,"",f)}catch{}},[o]);const[h,m]=p(null),[y,k]=p(0),z=Z(0),[x,E]=p(""),[b,A]=p(!1);oe(()=>{const f=()=>A(!0);return window.addEventListener("memesh:auth-required",f),()=>window.removeEventListener("memesh:auth-required",f)},[]);const[j,G]=p(!1),O=Ee(()=>{const f=++z.current;$("GET","/v1/health").then(P=>{f===z.current&&(m(P),E(""),A(!1))}).catch(P=>{if(f===z.current){if(P instanceof Qn){G(Bn()!==null),A(!0),E("");return}E(P.message)}})},[]);oe(()=>{O();const f=()=>{k(P=>P+1),O()};return window.addEventListener("memesh:data-changed",f),()=>window.removeEventListener("memesh:data-changed",f)},[O]);const g=Mo.map(f=>({key:f,label:s(ai[f])}));return b?e(Qa,{currentToken:Bn(),rejected:j,onSubmit:f=>{Qo(f),G(!1),A(!1),O()}}):e("div",{class:"shell",children:[e(Yo,{health:h,error:x}),h&&x&&e("div",{class:"error-box",role:"alert",style:{margin:"8px 16px 0"},children:[s("common.error"),": ",x]}),(h?.demo_entity_count??0)>0&&e(Ws,{health:h}),e("div",{class:"notice-slot",children:[e(oi,{}),(h?.demo_entity_count??0)===0&&e(Ws,{health:h}),e(ri,{currentTab:o,onNavigateToInsights:()=>d("Home")})]}),e(Xo,{tabs:g,active:o,onSelect:f=>d(f)}),e("div",{class:"main",children:[e("div",{id:"panel-Home",role:"tabpanel","aria-labelledby":"tab-Home",class:`panel ${o==="Home"?"active":""}`,children:o==="Home"&&e(Br,{health:h,dataRevision:y,onNavigate:d})}),e("div",{id:"panel-Memories",role:"tabpanel","aria-labelledby":"tab-Memories",class:`panel ${o==="Memories"?"active":""}`,children:l("Memories")&&e(la,{health:h,dataRevision:y})}),e("div",{id:"panel-Project",role:"tabpanel","aria-labelledby":"tab-Project",class:`panel ${o==="Project"?"active":""}`,children:l("Project")&&e(Ea,{health:h,dataRevision:y})}),e("div",{id:"panel-Graph",role:"tabpanel","aria-labelledby":"tab-Graph",class:`panel ${o==="Graph"?"active":""}`,children:o==="Graph"&&e($a,{dataRevision:y})}),e("div",{id:"panel-Settings",role:"tabpanel","aria-labelledby":"tab-Settings",class:`panel ${o==="Settings"?"active":""}`,children:o==="Settings"&&e(Da,{locale:t,onLocaleChange:n,onDirtyChange:i})})]}),e(Ja,{health:h})]})}Io(e(ci,{}),document.getElementById("app"));
diff --git a/dashboard/src/lib/i18n.ts b/dashboard/src/lib/i18n.ts
index 9d10fd69a..bfd1c163d 100644
--- a/dashboard/src/lib/i18n.ts
+++ b/dashboard/src/lib/i18n.ts
@@ -497,6 +497,8 @@ const translations: Record> = {
'doctor.msg.llm.unreachable.fix': 'Check the API key and connection, then run `memesh doctor --probe` again.',
'doctor.msg.llm.threw.summary': 'Testing the AI provider ({provider}) failed: {detail}. AI features are silently doing nothing.',
'doctor.msg.llm.threw.fix': 'Check the API key and connection, then run `memesh doctor --probe` again.',
+ 'doctor.msg.llm-telemetry.silent-failure.summary': 'One or more AI-backed features failed every call in the last {windowDays} days: {detail}. Those features are silently doing nothing.',
+ 'doctor.msg.llm-telemetry.silent-failure.fix': 'Run `memesh telemetry` for the full per-flow detail, then check the model/provider configured for the failing flow. `memesh doctor --probe` confirms whether it answers a live call.',
'doctor.msg.install-channel.unknown.summary': 'Could not tell how memesh was installed.',
'doctor.msg.install-channel.unknown.fix': 'If this is a source checkout, run from the repo root; otherwise reinstall with `npm install -g @pcircle/memesh`.',
'doctor.msg.fts.unsegmented.summary': 'The keyword index has {count} entries in an old format — some memories only match their exact full text.',
@@ -1288,6 +1290,8 @@ const translations: Record> = {
'doctor.msg.llm.unreachable.fix': '檢查 API key 和連線,再執行 `memesh doctor --probe`。',
'doctor.msg.llm.threw.summary': '測試 AI 服務({provider})失敗:{detail}。AI 相關功能目前默默停擺。',
'doctor.msg.llm.threw.fix': '檢查 API key 和連線,再執行 `memesh doctor --probe`。',
+ 'doctor.msg.llm-telemetry.silent-failure.summary': '有一個以上的 AI 功能在過去 {windowDays} 天內每次呼叫都失敗,卻沒有任何提示:{detail}。這些功能其實已經默默停擺。',
+ 'doctor.msg.llm-telemetry.silent-failure.fix': '執行 `memesh telemetry` 看每個功能的詳細記錄,再檢查該功能設定的模型/服務。執行 `memesh doctor --probe` 可確認它是否能即時回應。',
'doctor.msg.install-channel.unknown.summary': '看不出 memesh 是怎麼安裝的。',
'doctor.msg.install-channel.unknown.fix': '原始碼安裝請在 repo 根目錄執行;套件安裝請用 `npm install -g @pcircle/memesh` 重裝。',
'doctor.msg.fts.unsegmented.summary': '關鍵字索引有 {count} 筆是舊格式——部分記憶只有完整原文才搜得到。',
@@ -2079,6 +2083,8 @@ const translations: Record> = {
'doctor.msg.llm.unreachable.fix': '检查 API key 和连接,再运行 `memesh doctor --probe`。',
'doctor.msg.llm.threw.summary': '测试 AI 服务({provider})失败:{detail}。AI 相关功能目前默默停摆。',
'doctor.msg.llm.threw.fix': '检查 API key 和连接,再运行 `memesh doctor --probe`。',
+ 'doctor.msg.llm-telemetry.silent-failure.summary': '一个或多个 AI 功能在过去 {windowDays} 天内每次调用都失败,却没有任何提示:{detail}。这些功能其实已经默默停摆。',
+ 'doctor.msg.llm-telemetry.silent-failure.fix': '运行 `memesh telemetry` 查看每个功能的详细记录,再检查该功能配置的模型/服务。运行 `memesh doctor --probe` 可确认它是否能实时响应。',
'doctor.msg.install-channel.unknown.summary': '看不出 memesh 是怎么安装的。',
'doctor.msg.install-channel.unknown.fix': '源码安装请在 repo 根目录运行;包安装请用 `npm install -g @pcircle/memesh` 重装。',
'doctor.msg.fts.unsegmented.summary': '关键字索引有 {count} 条是旧格式——部分记忆只有完整原文才搜得到。',
@@ -2870,6 +2876,8 @@ const translations: Record> = {
'doctor.msg.llm.unreachable.fix': 'API key と接続を確認し、もう一度 `memesh doctor --probe` を実行してください。',
'doctor.msg.llm.threw.summary': 'AI プロバイダー({provider})のテストに失敗しました: {detail}。AI 機能は何もしないまま止まっています。',
'doctor.msg.llm.threw.fix': 'API key と接続を確認し、もう一度 `memesh doctor --probe` を実行してください。',
+ 'doctor.msg.llm-telemetry.silent-failure.summary': '過去{windowDays}日間、1つ以上のAI機能ですべての呼び出しが失敗しているのに、何も表示されていません: {detail}。これらの機能は静かに動作を停止しています。',
+ 'doctor.msg.llm-telemetry.silent-failure.fix': '`memesh telemetry` を実行してフローごとの詳細を確認し、失敗している機能に設定されたモデル/プロバイダーを確認してください。`memesh doctor --probe` で実際に応答するか確認できます。',
'doctor.msg.install-channel.unknown.summary': 'memesh がどうインストールされたか判別できませんでした。',
'doctor.msg.install-channel.unknown.fix': 'ソースからならリポジトリのルートで実行してください。そうでなければ `npm install -g @pcircle/memesh` で再インストールしてください。',
'doctor.msg.fts.unsegmented.summary': 'キーワード索引に旧形式の項目が {count} 件あります — 一部の記憶は全文が完全に一致しないと見つかりません。',
@@ -3661,6 +3669,8 @@ const translations: Record> = {
'doctor.msg.llm.unreachable.fix': 'API key와 연결을 확인한 뒤 `memesh doctor --probe`를 다시 실행하세요.',
'doctor.msg.llm.threw.summary': 'AI 제공자({provider}) 테스트에 실패했습니다: {detail}. AI 기능이 조용히 아무 일도 하지 않고 있습니다.',
'doctor.msg.llm.threw.fix': 'API key와 연결을 확인한 뒤 `memesh doctor --probe`를 다시 실행하세요.',
+ 'doctor.msg.llm-telemetry.silent-failure.summary': '지난 {windowDays}일 동안 하나 이상의 AI 기능이 모든 호출에서 실패했지만 아무 알림도 없었습니다: {detail}. 이 기능들은 조용히 작동을 멈춘 상태입니다.',
+ 'doctor.msg.llm-telemetry.silent-failure.fix': '`memesh telemetry`를 실행해 기능별 상세 내역을 확인하고, 실패한 기능에 설정된 모델/제공자를 점검하세요. `memesh doctor --probe`로 실제 응답 여부를 확인할 수 있습니다.',
'doctor.msg.install-channel.unknown.summary': 'memesh가 어떻게 설치되었는지 알 수 없습니다.',
'doctor.msg.install-channel.unknown.fix': '소스 체크아웃이라면 저장소 루트에서 실행하세요. 아니라면 `npm install -g @pcircle/memesh`로 다시 설치하세요.',
'doctor.msg.fts.unsegmented.summary': '키워드 색인에 옛 형식 항목이 {count}개 있습니다 — 일부 기억은 전체 원문이 정확히 일치해야만 검색됩니다.',
@@ -4452,6 +4462,8 @@ const translations: Record> = {
'doctor.msg.llm.unreachable.fix': 'Verifique a API key e a conexão e depois execute `memesh doctor --probe` de novo.',
'doctor.msg.llm.threw.summary': 'O teste do provedor de IA ({provider}) falhou: {detail}. Os recursos de IA estão parados em silêncio.',
'doctor.msg.llm.threw.fix': 'Verifique a API key e a conexão e depois execute `memesh doctor --probe` de novo.',
+ 'doctor.msg.llm-telemetry.silent-failure.summary': 'Um ou mais recursos de IA falharam em todas as chamadas nos últimos {windowDays} dias, sem que nada indicasse isso: {detail}. Esses recursos estão silenciosamente sem funcionar.',
+ 'doctor.msg.llm-telemetry.silent-failure.fix': 'Execute `memesh telemetry` para ver o detalhe por fluxo e verifique o modelo/provedor configurado para o recurso com falha. `memesh doctor --probe` confirma se ele responde em tempo real.',
'doctor.msg.install-channel.unknown.summary': 'Não foi possível saber como o memesh foi instalado.',
'doctor.msg.install-channel.unknown.fix': 'Se for um checkout do código-fonte, execute a partir da raiz do repositório; caso contrário, reinstale com `npm install -g @pcircle/memesh`.',
'doctor.msg.fts.unsegmented.summary': 'O índice de palavras-chave tem {count} entradas em um formato antigo — algumas memórias só aparecem com o texto completo exato.',
@@ -5243,6 +5255,8 @@ const translations: Record> = {
'doctor.msg.llm.unreachable.fix': 'Vérifiez la API key et la connexion, puis relancez `memesh doctor --probe`.',
'doctor.msg.llm.threw.summary': 'Le test du fournisseur d\'IA ({provider}) a échoué : {detail}. Les fonctions IA ne font silencieusement rien.',
'doctor.msg.llm.threw.fix': 'Vérifiez la API key et la connexion, puis relancez `memesh doctor --probe`.',
+ 'doctor.msg.llm-telemetry.silent-failure.summary': 'Une ou plusieurs fonctionnalités IA ont échoué à chaque appel au cours des {windowDays} derniers jours, sans que rien ne le signale : {detail}. Ces fonctionnalités sont silencieusement hors service.',
+ 'doctor.msg.llm-telemetry.silent-failure.fix': 'Exécutez `memesh telemetry` pour le détail par flux, puis vérifiez le modèle/fournisseur configuré pour la fonctionnalité en échec. `memesh doctor --probe` confirme si elle répond réellement.',
'doctor.msg.install-channel.unknown.summary': 'Impossible de déterminer comment memesh a été installé.',
'doctor.msg.install-channel.unknown.fix': 'S\'il s\'agit du code source, exécutez depuis la racine du dépôt ; sinon réinstallez avec `npm install -g @pcircle/memesh`.',
'doctor.msg.fts.unsegmented.summary': 'L\'index de mots-clés contient {count} entrées dans un ancien format — certaines mémoires ne se trouvent qu\'avec leur texte intégral exact.',
@@ -6034,6 +6048,8 @@ const translations: Record> = {
'doctor.msg.llm.unreachable.fix': 'Prüfen Sie den API key und die Verbindung und führen Sie dann `memesh doctor --probe` erneut aus.',
'doctor.msg.llm.threw.summary': 'Der Test des KI-Anbieters ({provider}) schlug fehl: {detail}. Die KI-Funktionen tun still und leise nichts.',
'doctor.msg.llm.threw.fix': 'Prüfen Sie den API key und die Verbindung und führen Sie dann `memesh doctor --probe` erneut aus.',
+ 'doctor.msg.llm-telemetry.silent-failure.summary': 'Eine oder mehrere KI-Funktionen sind in den letzten {windowDays} Tagen bei jedem Aufruf fehlgeschlagen, ohne dass dies angezeigt wurde: {detail}. Diese Funktionen tun stillschweigend nichts.',
+ 'doctor.msg.llm-telemetry.silent-failure.fix': 'Führen Sie `memesh telemetry` für die Details je Flow aus und prüfen Sie das für die fehlschlagende Funktion konfigurierte Modell/den Anbieter. `memesh doctor --probe` bestätigt, ob eine Live-Antwort erfolgt.',
'doctor.msg.install-channel.unknown.summary': 'Es ließ sich nicht feststellen, wie memesh installiert wurde.',
'doctor.msg.install-channel.unknown.fix': 'Bei einem Quellcode-Checkout starten Sie aus dem Repo-Stammverzeichnis; andernfalls installieren Sie neu mit `npm install -g @pcircle/memesh`.',
'doctor.msg.fts.unsegmented.summary': 'Der Stichwort-Index enthält {count} Einträge in einem alten Format — manche Erinnerungen werden nur über ihren exakten Volltext gefunden.',
@@ -6825,6 +6841,8 @@ const translations: Record> = {
'doctor.msg.llm.unreachable.fix': 'Kiểm tra API key và kết nối, rồi chạy lại `memesh doctor --probe`.',
'doctor.msg.llm.threw.summary': 'Thử nhà cung cấp AI ({provider}) bị lỗi: {detail}. Các tính năng AI đang âm thầm không làm gì cả.',
'doctor.msg.llm.threw.fix': 'Kiểm tra API key và kết nối, rồi chạy lại `memesh doctor --probe`.',
+ 'doctor.msg.llm-telemetry.silent-failure.summary': 'Một hoặc nhiều tính năng AI đã thất bại ở mọi lệnh gọi trong {windowDays} ngày qua mà không có gì cảnh báo: {detail}. Các tính năng này đang âm thầm ngừng hoạt động.',
+ 'doctor.msg.llm-telemetry.silent-failure.fix': 'Chạy `memesh telemetry` để xem chi tiết theo từng luồng, sau đó kiểm tra model/nhà cung cấp được cấu hình cho tính năng bị lỗi. `memesh doctor --probe` sẽ xác nhận nó có phản hồi trực tiếp hay không.',
'doctor.msg.install-channel.unknown.summary': 'Không xác định được memesh đã được cài bằng cách nào.',
'doctor.msg.install-channel.unknown.fix': 'Nếu là mã nguồn, hãy chạy từ thư mục gốc của repo; nếu không, cài lại bằng `npm install -g @pcircle/memesh`.',
'doctor.msg.fts.unsegmented.summary': 'Chỉ mục từ khóa có {count} mục ở định dạng cũ — một số ký ức chỉ tìm thấy khi khớp đúng toàn bộ nguyên văn.',
@@ -7616,6 +7634,8 @@ const translations: Record> = {
'doctor.msg.llm.unreachable.fix': 'Revisa la API key y la conexión, y luego ejecuta `memesh doctor --probe` de nuevo.',
'doctor.msg.llm.threw.summary': 'La prueba del proveedor de IA ({provider}) falló: {detail}. Las funciones de IA no están haciendo nada, en silencio.',
'doctor.msg.llm.threw.fix': 'Revisa la API key y la conexión, y luego ejecuta `memesh doctor --probe` de nuevo.',
+ 'doctor.msg.llm-telemetry.silent-failure.summary': 'Una o más funciones de IA fallaron en todas las llamadas durante los últimos {windowDays} días, sin que nada lo indicara: {detail}. Esas funciones están fallando en silencio.',
+ 'doctor.msg.llm-telemetry.silent-failure.fix': 'Ejecuta `memesh telemetry` para ver el detalle por flujo y revisa el modelo/proveedor configurado para la función que falla. `memesh doctor --probe` confirma si responde en vivo.',
'doctor.msg.install-channel.unknown.summary': 'No se pudo saber cómo se instaló memesh.',
'doctor.msg.install-channel.unknown.fix': 'Si es un checkout del código fuente, ejecuta desde la raíz del repositorio; si no, reinstala con `npm install -g @pcircle/memesh`.',
'doctor.msg.fts.unsegmented.summary': 'El índice de palabras clave tiene {count} entradas en un formato antiguo — algunas memorias solo aparecen con su texto completo exacto.',
@@ -8407,6 +8427,8 @@ const translations: Record> = {
'doctor.msg.llm.unreachable.fix': 'เช็ก API key และการเชื่อมต่อ แล้วรัน `memesh doctor --probe` อีกครั้ง',
'doctor.msg.llm.threw.summary': 'ทดสอบผู้ให้บริการ AI ({provider}) ล้มเหลว: {detail} ฟีเจอร์ AI กำลังนิ่งเงียบโดยไม่ทำอะไรเลย',
'doctor.msg.llm.threw.fix': 'เช็ก API key และการเชื่อมต่อ แล้วรัน `memesh doctor --probe` อีกครั้ง',
+ 'doctor.msg.llm-telemetry.silent-failure.summary': 'ฟีเจอร์ AI อย่างน้อยหนึ่งรายการล้มเหลวทุกครั้งที่เรียกใช้ในช่วง {windowDays} วันที่ผ่านมา โดยไม่มีอะไรแจ้งเตือนเลย: {detail} ฟีเจอร์เหล่านี้หยุดทำงานอย่างเงียบๆ',
+ 'doctor.msg.llm-telemetry.silent-failure.fix': 'รัน `memesh telemetry` เพื่อดูรายละเอียดของแต่ละโฟลว์ แล้วตรวจสอบโมเดล/ผู้ให้บริการที่ตั้งค่าไว้สำหรับฟีเจอร์ที่ล้มเหลว `memesh doctor --probe` จะยืนยันว่ามันตอบสนองจริงหรือไม่',
'doctor.msg.install-channel.unknown.summary': 'บอกไม่ได้ว่า memesh ถูกติดตั้งมาอย่างไร',
'doctor.msg.install-channel.unknown.fix': 'ถ้าเป็นซอร์สโค้ด ให้รันจากโฟลเดอร์รากของ repo ไม่อย่างนั้นให้ติดตั้งใหม่ด้วย `npm install -g @pcircle/memesh`',
'doctor.msg.fts.unsegmented.summary': 'ดัชนีคำสำคัญมี {count} รายการที่เป็นรูปแบบเก่า — ความจำบางส่วนจะเจอก็ต่อเมื่อพิมพ์ข้อความเต็มตรงเป๊ะเท่านั้น',
diff --git a/dist/core/doctor.d.ts.map b/dist/core/doctor.d.ts.map
index 61a1e9bb5..253a1a031 100644
--- a/dist/core/doctor.d.ts.map
+++ b/dist/core/doctor.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/core/doctor.js b/dist/core/doctor.js
index edad4c8e2..2aa1ac96a 100644
--- a/dist/core/doctor.js
+++ b/dist/core/doctor.js
@@ -28,6 +28,7 @@ import { autoCaptureDecision } from './capture-flag.js';
import { guardFromMetadata } from './guards.js';
import { getAgentMessageStorageReport } from './agent-message-storage.js';
import { readHostConfigFile } from '../host-runtime/config.js';
+import { summariseTelemetry } from './llm-telemetry.js';
const EMBEDDING_PROBE_TIMEOUT_MS = 15000;
const EXPECTED_HOOK_TYPES = ['PreToolUse', 'SessionStart', 'PostToolUse', 'Stop', 'PreCompact'];
const AGENT_MESSAGE_STORAGE_QUOTA_ENV = 'MEMESH_AGENT_MESSAGE_STORAGE_QUOTA_BYTES';
@@ -1251,6 +1252,33 @@ async function inspectEmbeddingProbe(capabilities, probeCapabilities, embedTextI
clearTimeout(timer);
}
}
+const LLM_TELEMETRY_HEALTH_WINDOW_DAYS = 7;
+const LLM_TELEMETRY_HEALTH_MIN_CALLS = 3;
+function inspectLlmTelemetryHealth(db, windowDays = LLM_TELEMETRY_HEALTH_WINDOW_DAYS, minCalls = LLM_TELEMETRY_HEALTH_MIN_CALLS) {
+ let summaries;
+ try {
+ summaries = summariseTelemetry(windowDays, db);
+ }
+ catch {
+ return undefined;
+ }
+ if (summaries.length === 0)
+ return undefined;
+ const broken = summaries
+ .filter((s) => s.total_calls >= minCalls && s.successes === 0)
+ .sort((a, b) => b.total_calls - a.total_calls);
+ if (broken.length > 0) {
+ const detail = broken.map((s) => `${s.flow} (${s.total_calls} call${s.total_calls === 1 ? '' : 's'}, 0 succeeded)`).join(', ');
+ return createCheck('llm_telemetry_health', 'AI feature health', 'warn', `${broken.length} AI-backed feature${broken.length === 1 ? '' : 's'} failed every call in the last `
+ + `${windowDays} days: ${detail}. Those features are silently doing nothing.`, 'Run `memesh telemetry` for the full per-flow detail, then check the model/provider configured for '
+ + 'the failing flow. `memesh doctor --probe` confirms whether it answers a live call.', { code: 'llm-telemetry.silent-failure', params: { count: broken.length, detail, windowDays } });
+ }
+ const totalCalls = summaries.reduce((n, s) => n + s.total_calls, 0);
+ const totalSuccesses = summaries.reduce((n, s) => n + s.successes, 0);
+ const rate = totalCalls > 0 ? Math.round((totalSuccesses / totalCalls) * 100) : 100;
+ return createInfo('llm_telemetry_health', 'AI feature health', `${summaries.length} AI-backed flow${summaries.length === 1 ? '' : 's'} made ${totalCalls} call(s) in the `
+ + `last ${windowDays} days; ${rate}% succeeded.`);
+}
async function inspectLlmProbe(capabilities, probeCapabilities, probeProviderImpl) {
const llm = capabilities.llm;
if (!llm) {
@@ -1423,6 +1451,9 @@ export async function runDoctor(options) {
dbChecks.push(createInfo('citation_compliance', 'Memory citation rate', `${cited} of ${citationTotal} session(s) with injected memories cited at least one (${rate}%).`));
}
}
+ const llmTelemetryHealth = inspectLlmTelemetryHealth(db);
+ if (llmTelemetryHealth)
+ dbChecks.push(llmTelemetryHealth);
}
catch (err) {
const message = err instanceof Error ? err.message : 'unknown database error';
diff --git a/dist/core/doctor.js.map b/dist/core/doctor.js.map
index 5c8c51a3b..6d220bf16 100644
--- a/dist/core/doctor.js.map
+++ b/dist/core/doctor.js.map
@@ -1 +1 @@
-{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/db.d.ts.map b/dist/db.d.ts.map
index ea2983f83..d991aec35 100644
--- a/dist/db.d.ts.map
+++ b/dist/db.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAUrD,OAAO,EASL,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,CAAC;AAgBtD,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CAmC5D;AA6OD,wBAAgB,UAAU,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAkCjD;AAmLD,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AA8BpD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAYD,MAAM,MAAM,oBAAoB,GAC5B;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAElD,wBAAgB,oBAAoB,IAAI,oBAAoB,CAsB3D;AAID,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,CAAC,CAO9C;AAQD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAsD/F;AAGD,wBAAgB,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CASzD;AAGD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAK5E;AAGD,wBAAgB,uBAAuB,IAAI,IAAI,CAO9C;AA2CD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAwD5D;AAQD,wBAAgB,2BAA2B,IAAI,MAAM,CAMpD;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IAGX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,GAAG,iBAAiB,CAAC;CAChD;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,GAAG,IAAI,CAEjE;AAwBD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACpC,IAAI,GAAE,cAAc,GAAG,IAAS,GAC/B,IAAI,CAqBN;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C;AAwdD,wBAAgB,aAAa,IAAI,IAAI,CAWpC;AAED,wBAAgB,WAAW,IAAI,cAAc,CAG5C;AAQD,wBAAgB,cAAc,IAAI,OAAO,CAExC"}
\ No newline at end of file
+{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAUrD,OAAO,EASL,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,CAAC;AAgBtD,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CAmC5D;AAoPD,wBAAgB,UAAU,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAkCjD;AAmLD,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AA8BpD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAYD,MAAM,MAAM,oBAAoB,GAC5B;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAElD,wBAAgB,oBAAoB,IAAI,oBAAoB,CAsB3D;AAID,wBAAgB,gBAAgB,IAAI,GAAG,CAAC,MAAM,CAAC,CAO9C;AAQD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAsD/F;AAGD,wBAAgB,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CASzD;AAGD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAK5E;AAGD,wBAAgB,uBAAuB,IAAI,IAAI,CAO9C;AA2CD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAwD5D;AAQD,wBAAgB,2BAA2B,IAAI,MAAM,CAMpD;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IAGX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,GAAG,iBAAiB,CAAC;CAChD;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,GAAG,IAAI,CAEjE;AAwBD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACpC,IAAI,GAAE,cAAc,GAAG,IAAS,GAC/B,IAAI,CAqBN;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C;AAwdD,wBAAgB,aAAa,IAAI,IAAI,CAWpC;AAED,wBAAgB,WAAW,IAAI,cAAc,CAG5C;AAQD,wBAAgB,cAAc,IAAI,OAAO,CAExC"}
\ No newline at end of file
diff --git a/dist/db.js b/dist/db.js
index a60975361..49797cc4f 100644
--- a/dist/db.js
+++ b/dist/db.js
@@ -7,7 +7,7 @@ import { resolveEmbeddingDimension } from './core/config.js';
import { computeSignalScore } from './core/signal-scorer.js';
import { getDbPath } from './core/paths.js';
import { insertFtsRow, joinIndexedObservations, removeFromFts } from './storage/fts-index.js';
-import { dedupeObservations, dropArchivedIndexRows, retractZeroEditClaims, splitFusedLessons } from './storage/graph-repairs.js';
+import { dedupeObservations, dropArchivedIndexRows, retractZeroEditClaims, splitFusedLessons, repairFusedLessonShellHistory } from './storage/graph-repairs.js';
import { SCHEMA_SQL, FTS_SQL, safeAlter, migrateEntitiesSchema, ensureTagsUniqueIndex, ensureHookRunsSince, ensureFtsSegmentation, rebuildFtsIndex, runOnceMigration, FTS_SEGMENTATION_VERSION, } from './storage/schema.js';
export { runOnceMigration, FTS_SEGMENTATION_VERSION };
import { truncateTitle, isBoilerplateObservation } from './core/title.js';
@@ -89,6 +89,7 @@ function migrateToCurrentSchema(db, resolvedPath) {
markReindexOwed(dim, dim, 'vectors-missing', conn);
},
});
+ repairFusedLessonShellHistory(db);
ensureDreamProposalsTable(db);
ensureConflictJudgedPairsTable(db);
ensureLlmTelemetryTable(db);
diff --git a/dist/db.js.map b/dist/db.js.map
index 22224d498..67b4c12a6 100644
--- a/dist/db.js.map
+++ b/dist/db.js.map
@@ -1 +1 @@
-{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACjI,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,IAAI,EAAE,GAA0B,IAAI,CAAC;AAErC,IAAI,wBAAwB,GAAG,KAAK,CAAC;AAUrC,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAElB,MAAM,YAAY,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;IAE3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC;QAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAiB,CAAC;IAmB3D,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,YAAY,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,IAAI,CAAC;QACH,kBAAkB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC;YAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAA4B,CAAC;QAC7D,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,EAAE,GAAG,OAAO,CAAC;IACb,OAAO,EAAE,CAAC;AACZ,CAAC;AAYD,SAAS,iBAAiB,CAAC,GAAY;IACrC,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,OAAO,oCAAoC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAkB,EAAE,YAAoB;IAClE,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAW/B,IAAI,CAAC;QACH,sBAAsB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;YAAE,MAAM,GAAG,CAAC;QACvC,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4EAA4E;gBAC1E,mFAAmF,CACtF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC,CAAmB,CAAC;IAC/B,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAUD,SAAS,sBAAsB,CAAC,EAAkB,EAAE,YAAoB;IACtE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjB,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAC1B,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAexB,IAAI,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAiB,CAAC;IACvD,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC;YAAC,EAAE,CAAC,SAAS,CAAC,GAAG,YAAY,GAAG,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;QAAC,CAAC;QACxD,MAAM,CAAC,CAA+C,CAAC;IACzD,CAAC;IAKD,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAG1B,YAAY,CAAC,EAAE,CAAC,CAAC;IAQjB,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAIzB,cAAc,CAAC,EAAE,CAAC,CAAC;IAInB,6BAA6B,CAAC,EAAE,CAAC,CAAC;IAOlC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACvB,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAC1B,iBAAiB,CAAC,EAAE,EAAE;QACpB,WAAW,EAAE,oBAAoB;QACjC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CACzB,qEAAqE,CACtE,CAAC,GAAG,EAAmC,CAAC;YACzC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,GAAG,GAAG,CAAC;gBAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC;KACF,CAAC,CAAC;IAOH,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAM9B,8BAA8B,CAAC,EAAE,CAAC,CAAC;IAOnC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAM5B,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAM1B,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAyB1B,IAAI,oBAAoB,GAAG,IAAI,CAAC;IAChC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,oBAAoB,GAAG,KAAK,CAAC;QAC7B,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,2CAA2C,MAAM,MAAM;YACvD,wFAAwF,CACzF,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,oBAAoB,EAAE,CAAC;QAQzB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,yBAAyB,EAAE,CAAC;QACxF,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IAC9D,CAAC;IAaD,qBAAqB,CAAC,EAAE,CAAC,CAAC;AAC5B,CAAC;AAwBD,MAAM,UAAU,UAAU;IACxB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAmB/B,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE;QACxB,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1B,QAAQ;aACL,OAAO,CAAC,mEAAmE,CAAC;aAC5E,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACrE,QAAQ,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAC/D,uCAAuC,CACxC,CAAC;IACJ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAEf,MAAM,EAAE,CAAC,EAAE,GAAG,QAAQ;SACnB,OAAO,CAAC,4DAA4D,CAAC;SACrE,GAAG,EAAmB,CAAC;IAC1B,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACzB,CAAC;AAWD,SAAS,cAAc,CACrB,EAAkB,EAClB,YAAoB,EACpB,SAAiB,EACjB,cAAc,GAAG,IAAI;IAErB,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAC1B,qEAAqE,CACtE,CAAC,GAAG,EAAmC,CAAC;IAEzC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjE,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAC1B,2EAA2E,CAC5E,CAAC,GAAG,EAAE,CAAC;IAER,IAAI,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO;IACT,CAAC;IAeD,IAAI,SAAS,IAAI,CAAC,cAAc,EAAE,CAAC;QACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,kFAAkF;YAChF,YAAY,UAAU,4DAA4D;YAClF,kDAAkD,CACrD,CAAC;QACF,OAAO;IACT,CAAC;IA0CD,IAAI,SAAS,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAO9D,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CACpB,iCAAiC,UAAU,kCAAkC;gBAC3E,0BAA0B,SAAS,2CAA2C;gBAC9E,yEAAyE;gBACzE,uBAAuB,SAAS,yCAAyC;gBACzE,GAAG,UAAU,2DAA2D;gBACxE,qCAAqC,SAAS,8BAA8B;gBAC5E,oCAAoC,CACrC,CAAC;YACF,wBAAwB,GAAG,IAAI,CAAC;QAClC,CAAC;QAID,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAaD,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAClB,EAAE,CAAC,IAAI,CAAC;;0BAEc,SAAS;;KAE9B,CAAC,CAAC;QAEH,EAAE,CAAC,OAAO,CACR,uFAAuF,CACxF,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AACjB,CAAC;AAsCD,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AACpD,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AACzD,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAQ3C,SAAS,WAAW,CAAC,IAAoB,EAAE,IAAY;IACrD,OAAQ,IAAI,CAAC,OAAO,CAClB,qFAAqF,CACtF,CAAC,GAAG,CAAC,IAAI,CAAmB,CAAC,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAMD,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,GAAG,KAAK,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,6CAA6C,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AA2BD,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,iDAAiD,CAClD,CAAC,GAAG,CAAC,cAAc,CAAkC,CAAC;QACvD,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAkC,CAAC;QACtE,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAChF,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAC;QAC5F,CAAC;QACD,OAAO;YACL,KAAK,EAAE,MAAM;YACb,IAAI,EAAE;gBACJ,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;aAC1C;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3F,CAAC;AACH,CAAC;AAID,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,IAAI,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC;IACpB,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,gBAAgB,CAAC;QAAE,OAAO,GAAG,CAAC;IACnD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,2BAA2B,gBAAgB,EAAE,CAAC,CAAC,GAAG,EAAoC,CAAC;IAC/G,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,OAAO,GAAG,CAAC;AACb,CAAC;AAQD,MAAM,UAAU,qBAAqB,CAAC,SAAiB,EAAE,QAAgB;IACvE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,oBAAoB,EAAE,CAAC;IACpC,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAO1D,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,IAAI,aAAa,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CACb,qEAAqE;cACnE,IAAI,IAAI,CAAC,MAAM,yDAAyD;cACxE,4EAA4E;cAC5E,0DAA0D;cAC1D,2EAA2E;cAC3E,kBAAkB,CACrB,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,MAAM,UAAU,GAAG,aAAa,IAAI,QAAQ,KAAK,IAAI;WAChD,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAExE,IAAI,aAAa,IAAI,CAAC,UAAU,EAAE,CAAC;QAIjC,uBAAuB,EAAE,CAAC;IAC5B,CAAC;IAID,MAAM,SAAS,GAAG,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEzF,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;QACpB,IAAI,CAAC,IAAI,CAAC,sCAAsC,gBAAgB,+BAA+B,SAAS,IAAI,CAAC,CAAC;QAM9G,IAAI,CAAC,IAAI,CACP,8BAA8B,qBAAqB,IAAI;cACrD,yDAAyD,CAC5D,CAAC;QACF,IAAI,CAAC,OAAO,CACV,mEAAmE,CACpE,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAEf,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC;AAGD,MAAM,UAAU,mBAAmB;IACjC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,IAAI,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC;IACpB,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,qBAAqB,CAAC;QAAE,OAAO,GAAG,CAAC;IACxD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,+CAA+C,qBAAqB,EAAE,CACvE,CAAC,GAAG,EAA+C,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,OAAO,GAAG,CAAC;AACb,CAAC;AAGD,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,QAAgB;IACpE,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO,CACV,0BAA0B,qBAAqB,uCAAuC,CACvF,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC;AAGD,MAAM,UAAU,uBAAuB;IACrC,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;IAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;QACpB,IAAI,CAAC,IAAI,CAAC,wBAAwB,gBAAgB,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,wBAAwB,qBAAqB,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AACjB,CAAC;AA2CD,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;IAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;QACpB,IAAI,CAAC,IAAI,CACP,eAAe,gBAAgB,sBAAsB;cACnD,mDAAmD,CACtD,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,CACrB,IAAI,CAAC,OAAO,CACX,qEAAqE,CACtE,CAAC,GAAG,EAAoC,EAAE,KAAK,IAAI,CAAC,CACtD,CAAC;QACF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CACP,eAAe,gBAAgB,sBAAsB;kBACnD,kDAAkD;kBAClD,qEAAqE;kBACrE,yCAAyC,gBAAgB,GAAG,CAC/D,CAAC;QACJ,CAAC;QAKD,MAAM,MAAM,GAAI,IAAI,CAAC,OAAO,CAC1B,6BAA6B,gBAAgB,EAAE,CAChD,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;QAE5B,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,gEAAgE,SAAS,IAAI,CAAC,CAAC;QACzF,IAAI,CAAC,IAAI,CAAC,4EAA4E,gBAAgB,EAAE,CAAC,CAAC;QAE1G,MAAM,SAAS,GAAI,IAAI,CAAC,OAAO,CAC7B,wCAAwC,CACzC,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;QAM5B,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YAEzB,MAAM,IAAI,KAAK,CACb,4BAA4B,SAAS,OAAO,MAAM,kDAAkD,CACrG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,gBAAgB,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,wBAAwB,qBAAqB,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,CACV,mEAAmE,CACpE,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AACjB,CAAC;AAQD,MAAM,UAAU,2BAA2B;IACzC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,CAAC;IAClB,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,qEAAqE,CACtE,CAAC,GAAG,EAAmC,CAAC;IACzC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAWD,MAAM,UAAU,qBAAqB;IACnC,OAAO,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,kBAAkB,CAAC,IAA2B;IACrD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CACtB,iEAAiE,CAClE,CAAC,GAAG,EAAmC,CAAC;QACzC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAYD,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,EAAU,EACV,MAAoC,EACpC,OAA8B,EAAE;IAShC,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC3F,OAAO;IACT,CAAC;IACD,IAAI,CAAC,OAAO,CACV,mFAAmF,CACpF,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACnB,IAAI;QACJ,EAAE;QACF,MAAM;QACN,SAAS,EAAE,QAAQ,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAC9B,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,IAAI,CAAC,EAAE;QAAE,OAAO;IAChB,EAAE,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC,GAAG,EAAE,CAAC;AAChF,CAAC;AAsBD,SAAS,yBAAyB,CAAC,EAAkB;IACnD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;GAgBP,CAAC,CAAC;IASH,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,GAAG,EAAuB,CAAC;IAC3F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;QAClD,SAAS,CAAC,EAAE,EAAE,qFAAqF,CAAC,CAAC;IACvG,CAAC;IAQD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;QAC3C,SAAS,CAAC,EAAE,EAAE,4EAA4E,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAWD,SAAS,8BAA8B,CAAC,EAAkB;IACxD,EAAE,CAAC,IAAI,CAAC;;;;;;;GAOP,CAAC,CAAC;AACL,CAAC;AAiBD,SAAS,uBAAuB,CAAC,EAAkB;IACjD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;GAkBP,CAAC,CAAC;AACL,CAAC;AAED,MAAM,2BAA2B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACxD,MAAM,4BAA4B,GAAG,GAAG,CAAC;AACzC,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;AAczD,SAAS,qBAAqB,CAAC,EAAkB;IAE/C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,iDAAiD,CAClD,CAAC,GAAG,CAAC,sBAAsB,CAAkC,CAAC;IAE/D,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5D,IAAI,OAAO,GAAG,2BAA2B;YAAE,OAAO;IACpD,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,IAAI,CACxB,IAAI,CAAC,GAAG,EAAE,GAAG,4BAA4B,GAAG,QAAQ,CACrD,CAAC,WAAW,EAAE,CAAC;IAChB,IAAI,CAAC;QAWH,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QAEP,OAAO;IACT,CAAC;IAED,EAAE,CAAC,OAAO,CACR,mEAAmE,CACpE,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1D,CAAC;AAmBD,SAAS,oBAAoB,CAAC,EAAkB;IAW9C,MAAM,MAAM,GAAG,0BAA0B,CAAC;IAC1C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,iDAAiD,CAClD,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACd,IAAI,IAAI;QAAE,OAAO;IAEjB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC;IACnF,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC;IAW/E,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAI7B,IAAI,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QAEtF,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,+CAA+C,CAChD,CAAC,GAAG,EAAgF,CAAC;QAEtF,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,QAAiC,CAAC;YACtC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAMjB,IAAI,CAAC;oBAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAA4B,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC;oBAAC,OAAO,EAAE,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBACtG,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;oBAAC,SAAS;gBAAC,CAAC;YAC5G,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,EAAE,CAAC;YAChB,CAAC;YACD,IAAI,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC9C,OAAO,EAAE,CAAC;gBACV,SAAS;YACX,CAAC;YACD,MAAM,YAAY,GAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAgC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC7F,MAAM,IAAI,GAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7E,QAAQ,CAAC,YAAY,GAAG,kBAAkB,CAAC;gBACzC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,YAAY;gBACZ,IAAI;aACL,CAAC,CAAC;YACH,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,EAAE,CAAC;QACX,CAAC;QACD,EAAE,CAAC,OAAO,CACR,mEAAmE,CACpE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IACH,EAAE,EAAE,CAAC;AACP,CAAC;AAcD,SAAS,oBAAoB,CAAC,IAAY,EAAE,YAAsB;IAChE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAI3C,IAAI,IAAI,KAAK,gBAAgB,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACzE,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAChF,IAAI,SAAS;gBAAE,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAID,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,KAAK,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC;IAOD,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CACrD,CAAC;IACF,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,MAAM,SAAS,GAAG,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,OAAO,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAwCD,SAAS,6BAA6B,CAAC,EAAkB;IACvD,MAAM,MAAM,GAAG,4BAA4B,CAAC;IAC5C,IAAI,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO;IAEtF,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,OAAe,EAAE,EAAE,CACjD,EAAE,CAAC,OAAO,CAAC,mEAAmE,CAAC;SAC5E,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAErF,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC;IAM/E,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QAKtF,IAAI,IAAoD,CAAC;QACzD,IAAI,CAAC;YACH,IAAI,GAAG,EAAE,CAAC,OAAO,CACf;;;;oEAI4D,CAC7D,CAAC,GAAG,EAAoD,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YAMP,OAAO;QACT,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,QAAiC,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;gBAChD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBACpG,QAAQ,GAAG,MAAiC,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YAChC,OAAO,QAAQ,CAAC,KAAK,CAAC;YACtB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACjD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,EAAE,EAAE,CAAC;AACP,CAAC;AAED,SAAS,cAAc,CAAC,EAAkB;IACxC,MAAM,MAAM,GAAG,mBAAmB,CAAC;IACnC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,iDAAiD,CAClD,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACd,IAAI,IAAI;QAAE,OAAO;IAEjB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,kEAAkE,CAAC,CAAC;IAC/F,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC;IAO1F,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QAEtF,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,2EAA2E,CAC5E,CAAC,GAAG,EAAgG,CAAC;QAEtG,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,QAAiC,CAAC;YACtC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAA4B,CAAC;gBACjE,CAAC;gBAAC,MAAM,CAAC;oBAGP,OAAO,EAAE,CAAC;oBACV,SAAS;gBACX,CAAC;gBACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAEjF,OAAO,EAAE,CAAC;oBACV,SAAS;gBACX,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,EAAE,CAAC;YAChB,CAAC;YAED,MAAM,YAAY,GAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAgC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC7F,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;gBAAC,OAAO,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YAEpC,QAAQ,CAAC,YAAY,GAAG,WAAW,CAAC;YACpC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAExD,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;gBACtD,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC7C,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,EAAE,CAAC;QACX,CAAC;QACD,EAAE,CAAC,OAAO,CACR,mEAAmE,CACpE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IACH,EAAE,EAAE,CAAC;AACP,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,IAAI,EAAE,EAAE,CAAC;QACP,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,EAAE,GAAG,IAAI,CAAC;IACZ,CAAC;IAMD,wBAAwB,GAAG,KAAK,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAChD,OAAO,EAAE,CAAC;AACZ,CAAC;AAQD,MAAM,UAAU,cAAc;IAC5B,OAAO,EAAE,KAAK,IAAI,CAAC;AACrB,CAAC"}
\ No newline at end of file
+{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/storage/graph-repairs.d.ts b/dist/storage/graph-repairs.d.ts
index ae112d9fd..ee02ce6d8 100644
--- a/dist/storage/graph-repairs.d.ts
+++ b/dist/storage/graph-repairs.d.ts
@@ -4,6 +4,7 @@ export declare const ZERO_EDIT_RETRACT_KEY = "session_zero_edit_retract";
export declare const FUSED_LESSON_SPLIT_KEY = "fused_lesson_split";
export declare const ARCHIVED_FTS_ROWS_KEY = "archived_fts_rows";
export declare const ARCHIVED_VECTOR_ROWS_KEY = "archived_vector_rows";
+export declare const FUSED_LESSON_SHELL_HISTORY_RESET_KEY = "fused_lesson_shell_history_reset";
export declare function dedupeObservations(db: MemeshDatabase): number;
export declare function bashWritesFiles(command: string): boolean;
export declare function retractZeroEditClaims(db: MemeshDatabase): number;
@@ -15,4 +16,5 @@ export declare function dropArchivedIndexRows(db: MemeshDatabase): {
ftsRows: number;
vectorRows: number;
};
+export declare function repairFusedLessonShellHistory(db: MemeshDatabase): number;
//# sourceMappingURL=graph-repairs.d.ts.map
\ No newline at end of file
diff --git a/dist/storage/graph-repairs.d.ts.map b/dist/storage/graph-repairs.d.ts.map
index fa0314c75..b2ee989d1 100644
--- a/dist/storage/graph-repairs.d.ts.map
+++ b/dist/storage/graph-repairs.d.ts.map
@@ -1 +1 @@
-{"version":3,"file":"graph-repairs.d.ts","sourceRoot":"","sources":["../../src/storage/graph-repairs.ts"],"names":[],"mappings":"AA0DA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,eAAO,MAAM,kBAAkB,+BAA+B,CAAC;AAC/D,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;AACjE,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAC3D,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAkE/D,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CA4B7D;AAoBD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAUxD;AAgBD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAgChE;AAiED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE;IACJ,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,MAAM,GAAG,IAAI,CAAC;IACrE,eAAe,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;CACjD,GACA,MAAM,CA8JR;AA6CD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,cAAc,GAAG;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CA0EA"}
\ No newline at end of file
+{"version":3,"file":"graph-repairs.d.ts","sourceRoot":"","sources":["../../src/storage/graph-repairs.ts"],"names":[],"mappings":"AA+DA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,eAAO,MAAM,kBAAkB,+BAA+B,CAAC;AAC/D,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;AACjE,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAC3D,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAC/D,eAAO,MAAM,oCAAoC,qCAAqC,CAAC;AAgIvF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CA4B7D;AAoBD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAUxD;AAgBD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAgChE;AAiED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE;IACJ,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,MAAM,GAAG,IAAI,CAAC;IACrE,eAAe,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;CACjD,GACA,MAAM,CA8JR;AA6CD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,cAAc,GAAG;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CA0EA;AAsBD,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CA8BxE"}
\ No newline at end of file
diff --git a/dist/storage/graph-repairs.js b/dist/storage/graph-repairs.js
index b3027483a..5a0e24e95 100644
--- a/dist/storage/graph-repairs.js
+++ b/dist/storage/graph-repairs.js
@@ -7,11 +7,34 @@ export const ZERO_EDIT_RETRACT_KEY = 'session_zero_edit_retract';
export const FUSED_LESSON_SPLIT_KEY = 'fused_lesson_split';
export const ARCHIVED_FTS_ROWS_KEY = 'archived_fts_rows';
export const ARCHIVED_VECTOR_ROWS_KEY = 'archived_vector_rows';
+export const FUSED_LESSON_SHELL_HISTORY_RESET_KEY = 'fused_lesson_shell_history_reset';
const ZERO_EDITS = ', 0 files edited';
const ZERO_EDITS_RETRACTED = ', files edited through Bash (count not recorded before 4.8.2)';
function note(line) {
process.stderr.write(`MeMesh: ${line}\n`);
}
+function retireRecallHistory(conn, id) {
+ const row = conn
+ .prepare('SELECT metadata, recall_hits, recall_misses FROM entities WHERE id = ?')
+ .get(id);
+ if (!row)
+ return;
+ const hits = row.recall_hits ?? 0;
+ const misses = row.recall_misses ?? 0;
+ if (hits === 0 && misses === 0)
+ return;
+ let metadata = {};
+ try {
+ const parsed = row.metadata ? JSON.parse(row.metadata) : {};
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed))
+ metadata = parsed;
+ }
+ catch { }
+ metadata.retired_recall = { hits, misses };
+ conn
+ .prepare('UPDATE entities SET metadata = ?, recall_hits = 0, recall_misses = 0 WHERE id = ?')
+ .run(JSON.stringify(metadata), id);
+}
export function dedupeObservations(db) {
let removed = -1;
runOnceMigration(db, {
@@ -193,7 +216,8 @@ export function splitFusedLessons(db, deps) {
bucket.name.slice('lesson-'.length, -'-other'.length);
const movedFromBucket = moveLessonGroups(bucket, project, groups, tags);
dropExplicit.run(bucket.id, bucket.id);
- archive.run(bucket.id, bucket.id);
+ if (archive.run(bucket.id, bucket.id).changes > 0)
+ retireRecallHistory(conn, bucket.id);
if (movedFromBucket > 0)
bucketsTouched += 1;
}
@@ -223,7 +247,8 @@ export function splitFusedLessons(db, deps) {
if (!groups.every((group) => `lesson-${project}-${legacyReadableLessonSlug(group.error)}` === entity.name))
continue;
const movedFromEntity = moveLessonGroups(entity, project, groups, tags);
- archive.run(entity.id, entity.id);
+ if (archive.run(entity.id, entity.id).changes > 0)
+ retireRecallHistory(conn, entity.id);
legacyReadableMoved += movedFromEntity;
}
if (moved > 0) {
@@ -281,4 +306,33 @@ export function dropArchivedIndexRows(db) {
});
return result;
}
+export function repairFusedLessonShellHistory(db) {
+ let retired = -1;
+ runOnceMigration(db, {
+ key: FUSED_LESSON_SHELL_HISTORY_RESET_KEY,
+ version: 1,
+ describe: 'fused lesson shell history reset',
+ migrate: (conn) => {
+ const shells = conn
+ .prepare(`SELECT e.id, e.name FROM entities e
+ WHERE e.type = 'lesson_learned' AND e.status = 'archived'
+ AND (COALESCE(e.recall_hits, 0) > 0 OR COALESCE(e.recall_misses, 0) > 0)
+ AND NOT EXISTS (SELECT 1 FROM observations o WHERE o.entity_id = e.id)
+ AND EXISTS (
+ SELECT 1 FROM entities s
+ WHERE json_extract(s.metadata, '$.split_from') = e.name
+ )`)
+ .all();
+ retired = 0;
+ for (const shell of shells) {
+ retireRecallHistory(conn, shell.id);
+ retired += 1;
+ }
+ if (retired > 0) {
+ note(`retired stale recall history on ${retired} archived lesson shell(s) split before this fix existed.`);
+ }
+ },
+ });
+ return retired;
+}
//# sourceMappingURL=graph-repairs.js.map
\ No newline at end of file
diff --git a/dist/storage/graph-repairs.js.map b/dist/storage/graph-repairs.js.map
index 1c217d0f5..dfae18029 100644
--- a/dist/storage/graph-repairs.js.map
+++ b/dist/storage/graph-repairs.js.map
@@ -1 +1 @@
-{"version":3,"file":"graph-repairs.js","sourceRoot":"","sources":["../../src/storage/graph-repairs.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"graph-repairs.js","sourceRoot":"","sources":["../../src/storage/graph-repairs.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/scripts/audit/baseline.json b/scripts/audit/baseline.json
index ef3aa9dd3..1df52f941 100644
--- a/scripts/audit/baseline.json
+++ b/scripts/audit/baseline.json
@@ -685,6 +685,11 @@
"class": "NOT-A-GATE",
"reason": "real-browser (real HTTP server + real Chromium) verification that the dashboard renders the Vector Index no-embedder fix correctly translated, and distinct from the plain reindex fix, across all 11 locales, for evidence-gates output_readback/process_boundary/failure_path evidence -- invoked directly by `eg record`, not by any npm script or CI workflow. A human or eg re-runs it on demand when the dashboard i18n catalogue changes; it does not gate a commit or a release on its own.",
"triaged": "2026-09-03"
+ },
+ "C3 scripts/qa/verify-dashboard-doctor-banner-i18n.mjs": {
+ "class": "NOT-A-GATE",
+ "reason": "real-browser (real HTTP server + real Chromium) verification that the dashboard doctor banner renders correctly translated across all 11 locales, for evidence-gates output_readback/process_boundary/failure_path evidence -- invoked directly by `eg record`, not by any npm script or CI workflow. A human or eg re-runs it on demand when the dashboard i18n catalogue changes; it does not gate a commit or a release on its own.",
+ "triaged": "2026-09-03"
}
}
}
diff --git a/scripts/audit/memory-invariants.mjs b/scripts/audit/memory-invariants.mjs
index 7068cef47..17c673ed0 100644
--- a/scripts/audit/memory-invariants.mjs
+++ b/scripts/audit/memory-invariants.mjs
@@ -300,6 +300,30 @@ const INVARIANTS = [
},
row: (r) => r.name,
},
+ {
+ id: 'split-lesson-shell-carries-no-recall-history',
+ refs: 'D15',
+ says: 'an archived, emptied lesson shell that fed a split does not keep recall_hits/recall_misses that belong to no lesson',
+ // Same identification `repairFusedLessonShellHistory` uses (see
+ // src/storage/graph-repairs.ts): archived, no observations left, and at
+ // least one other entity's metadata.split_from names it — so this can
+ // only match a row that pass produced, never an unrelated archived
+ // lesson. NO LIMIT beyond the report cap: it would bound candidates,
+ // not violations.
+ sql: `
+ SELECT e.name AS name, e.recall_hits AS hits, e.recall_misses AS misses
+ FROM entities e
+ WHERE e.type = 'lesson_learned' AND e.status = 'archived'
+ AND (COALESCE(e.recall_hits, 0) > 0 OR COALESCE(e.recall_misses, 0) > 0)
+ AND NOT EXISTS (SELECT 1 FROM observations o WHERE o.entity_id = e.id)
+ AND EXISTS (
+ SELECT 1 FROM entities s
+ WHERE json_extract(s.metadata, '$.split_from') = e.name
+ )
+ ORDER BY COALESCE(e.recall_hits, 0) + COALESCE(e.recall_misses, 0) DESC
+ LIMIT ${MAX_ROWS + 1}`,
+ row: (r) => `${r.name} hits=${r.hits ?? 0} misses=${r.misses ?? 0}`,
+ },
{
id: 'global-namespace-reachable-by-injection',
refs: '#242',
diff --git a/scripts/qa/verify-dashboard-doctor-banner-i18n.mjs b/scripts/qa/verify-dashboard-doctor-banner-i18n.mjs
new file mode 100644
index 000000000..e4e861456
--- /dev/null
+++ b/scripts/qa/verify-dashboard-doctor-banner-i18n.mjs
@@ -0,0 +1,174 @@
+// Real-browser verification that the new llm-telemetry.silent-failure
+// doctor warn is translated across every dashboard locale in a real
+// bundle, in a real browser — not just that the strings exist in i18n.ts
+// (tests/dashboard/doctor-banner-i18n.test.tsx already covers that).
+//
+// llm-telemetry.silent-failure is WARN tier, not in QUIET_WARN_CODES, and
+// carries a real `fix` hint, so isBannerWorthy() says it banners — this
+// confirms it actually does, translated, in every locale, not the raw
+// i18n key and not a silent English fallback.
+//
+// role="alert" is DoctorBanner's own marker (distinct from OnboardingBanner's
+// role="region"), so detection is language-agnostic — grepping for English
+// banner text makes every non-English locale look broken when a real
+// translation renders (measured directly: PR #287's first draft of this
+// script had exactly that bug).
+//
+// Starts the real HTTP server against an isolated, throwaway HOME (never
+// touches ~/.memesh) and intercepts GET /v1/doctor so the dashboard renders
+// against a controlled payload.
+import { chromium } from 'playwright';
+import { spawn } from 'node:child_process';
+import fs from 'node:fs';
+import os from 'node:os';
+import path from 'node:path';
+import net from 'node:net';
+import { fileURLToPath } from 'node:url';
+
+const REPO_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..');
+const LOCALES = ['en', 'zh-TW', 'zh-CN', 'ja', 'ko', 'es', 'fr', 'de', 'pt', 'ru', 'hi'];
+
+export function getChromeExecutablePath() {
+ const envPath = process.env.CHROME_PATH;
+ if (envPath && fs.existsSync(envPath)) return envPath;
+ const candidates = process.platform === 'darwin'
+ ? [
+ '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
+ path.join(os.homedir(), 'Applications/Google Chrome.app/Contents/MacOS/Google Chrome'),
+ ]
+ : process.platform === 'win32'
+ ? [
+ 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',
+ 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe',
+ ]
+ : ['/usr/bin/google-chrome', '/usr/bin/google-chrome-stable', '/snap/bin/chromium'];
+ return candidates.find((candidate) => fs.existsSync(candidate));
+}
+
+export async function launchBrowser() {
+ const chromeExecutable = getChromeExecutablePath();
+ if (chromeExecutable) return chromium.launch({ executablePath: chromeExecutable, headless: true });
+ try {
+ return await chromium.launch({ headless: true });
+ } catch (error) {
+ const reason = error instanceof Error ? error.message : String(error);
+ throw new Error(
+ `No browser available. Install Playwright Chromium ("npx playwright install --with-deps chromium") or set CHROME_PATH. Original error: ${reason}`,
+ { cause: error },
+ );
+ }
+}
+
+function findFreePort() {
+ return new Promise((resolve, reject) => {
+ const srv = net.createServer();
+ srv.listen(0, () => {
+ const port = srv.address().port;
+ srv.close(() => resolve(port));
+ });
+ srv.on('error', reject);
+ });
+}
+
+export async function waitForServer(url, timeoutMs = 15000) {
+ const start = Date.now();
+ while (Date.now() - start < timeoutMs) {
+ try {
+ const res = await fetch(url);
+ if (res.status) return true;
+ } catch { /* not up yet */ }
+ await new Promise((r) => setTimeout(r, 200));
+ }
+ throw new Error(`server did not come up at ${url} within ${timeoutMs}ms`);
+}
+
+function envelopeOf(data) {
+ return JSON.stringify({ success: true, data });
+}
+
+async function main() {
+ const home = fs.mkdtempSync(path.join(os.tmpdir(), 'memesh-dashboard-verify-'));
+ const port = await findFreePort();
+ const failures = [];
+
+ const server = spawn('node', ['dist/transports/http/server.js'], {
+ cwd: REPO_ROOT,
+ env: { ...process.env, HOME: home, MEMESH_HTTP_PORT: String(port), MEMESH_AUTO_CAPTURE: 'false' },
+ stdio: ['ignore', 'pipe', 'pipe'],
+ });
+ let serverOutput = '';
+ server.stdout.on('data', (d) => { serverOutput += d.toString(); });
+ server.stderr.on('data', (d) => { serverOutput += d.toString(); });
+
+ const browser = await launchBrowser();
+ try {
+ await waitForServer(`http://127.0.0.1:${port}/dashboard`);
+ const page = await browser.newPage();
+
+ await page.route('**/v1/doctor', (route) =>
+ route.fulfill({
+ status: 200,
+ contentType: 'application/json',
+ body: envelopeOf({
+ status: 'PASS_WITH_CONCERNS',
+ checks: [{
+ id: 'llm_telemetry_health',
+ status: 'warn',
+ summary: 'guard_proposer (5 calls, 0 succeeded) has been silently doing nothing for a week.',
+ fix: 'Run `memesh telemetry` for the failing calls, and check the provider/model configuration for guard_proposer.',
+ code: 'llm-telemetry.silent-failure',
+ }],
+ }),
+ }),
+ );
+
+ for (const locale of LOCALES) {
+ await page.goto(`http://127.0.0.1:${port}/dashboard`);
+ await page.evaluate((l) => localStorage.setItem('memesh-locale', l), locale);
+ await page.reload();
+ await page.waitForTimeout(400);
+ const alertText = await page.evaluate(() => document.querySelector('[role="alert"]')?.innerText ?? null);
+ if (alertText === null) {
+ failures.push(`[${locale}] no [role="alert"] element rendered — DoctorBanner did not mount for llm-telemetry.silent-failure`);
+ continue;
+ }
+ if (alertText.includes('doctor.msg.llm-telemetry.silent-failure') || alertText.includes('llm-telemetry.silent-failure')) {
+ failures.push(`[${locale}] rendered the RAW i18n key/code instead of a translated string: ${JSON.stringify(alertText)}`);
+ }
+ if (locale !== 'en') {
+ const enText = await (async () => {
+ await page.evaluate(() => localStorage.setItem('memesh-locale', 'en'));
+ await page.reload();
+ await page.waitForTimeout(400);
+ const t = await page.evaluate(() => document.querySelector('[role="alert"]')?.innerText ?? null);
+ await page.evaluate((l) => localStorage.setItem('memesh-locale', l), locale);
+ await page.reload();
+ await page.waitForTimeout(400);
+ return t;
+ })();
+ if (alertText === enText) {
+ failures.push(`[${locale}] rendered text is byte-identical to English — likely silent fallback, not a real catalogue entry`);
+ }
+ }
+ }
+ } finally {
+ await browser.close();
+ server.kill();
+ fs.rmSync(home, { recursive: true, force: true });
+ }
+
+ if (failures.length > 0) {
+ console.error('FAIL: dashboard doctor-banner i18n real-browser verification');
+ for (const f of failures) console.error(` - ${f}`);
+ console.error('--- server output ---');
+ console.error(serverOutput.slice(-2000));
+ process.exit(1);
+ }
+ console.log(`PASS: all ${LOCALES.length} locales verified in real Chromium — llm-telemetry.silent-failure translated and distinct per locale, no raw keys leaked.`);
+ process.exit(0);
+}
+
+main().catch((err) => {
+ console.error('FAIL: script error:', err);
+ process.exit(1);
+});
diff --git a/src/core/doctor.ts b/src/core/doctor.ts
index ef09982f6..1131d875b 100644
--- a/src/core/doctor.ts
+++ b/src/core/doctor.ts
@@ -35,6 +35,7 @@ import { autoCaptureDecision } from './capture-flag.js';
import { guardFromMetadata } from './guards.js';
import { getAgentMessageStorageReport } from './agent-message-storage.js';
import { readHostConfigFile } from '../host-runtime/config.js';
+import { summariseTelemetry, type TelemetrySummary } from './llm-telemetry.js';
export type DoctorCheckStatus = 'pass' | 'warn' | 'fail';
export type DoctorOverallStatus = 'PASS' | 'PASS_WITH_CONCERNS' | 'FAIL';
@@ -2892,6 +2893,113 @@ async function inspectEmbeddingProbe(
}
}
+/** How far back `inspectLlmTelemetryHealth` looks, and how many recent calls a
+ * flow needs before "every one failed" is treated as a trend rather than a
+ * blip. See the function doc for the measurement behind both numbers. */
+const LLM_TELEMETRY_HEALTH_WINDOW_DAYS = 7;
+const LLM_TELEMETRY_HEALTH_MIN_CALLS = 3;
+
+/**
+ * Has an AI-backed feature quietly stopped working?
+ *
+ * `llm_telemetry` (llm-telemetry.ts) is written by every Smart-Mode flow —
+ * dreamer, auto_tagger, failure_analyzer, guard_proposer, consolidator,
+ * transcript_extractor — and until this row existed, read by nothing that
+ * could alert anyone: `memesh telemetry` shows it on request, which means a
+ * broken flow needed someone to think to ask. Reading it costs nothing (no
+ * network call, unlike `inspectLlmProbe` below), so this runs on every
+ * `memesh doctor`.
+ *
+ * The window is 7 days, not `summariseTelemetry`'s 30-day default. Measured
+ * against a real graph on 2026-09-02: `dreamer` has 29 historical successes,
+ * the most recent on 2026-08-23, and 51 failures whose most recent run
+ * started 2026-08-28 and has not produced one success since. A 30-day (or
+ * even 14-day) window blends the 2026-08-23 successes into the average and
+ * reports "36% success" — true in aggregate, and exactly the number that
+ * hides a flow that had been 100% broken for five days. 7 days is short
+ * enough to exclude that stale success and still catch every flow that
+ * failed its entire recent history: the sparsest real case in the same
+ * graph (`failure_analyzer`) still had 8 failing calls inside the window.
+ *
+ * The rule is "every call in the window failed", not "some did" or "the
+ * rate dropped below X%". `transcript_extractor` in the same graph has a
+ * genuine 3.4% failure rate (4 of 118) from ordinary network blips — always
+ * sandwiched between successes, never two in a row — so a rate-based
+ * threshold anywhere below 100% has to guess a cutoff nothing in the
+ * measured data motivates. "Zero successes" needs no cutoff and is exactly
+ * the shape both real defects had (`guard_proposer`: 69 calls, 69 failures,
+ * ever).
+ *
+ * `minCalls` counts PRIMARY calls (`total_calls`, `attempt_index === 0`),
+ * not provider attempts (`total_attempts`): a single call whose failover
+ * chain tried three providers and failed all three is one data point, not
+ * three, and gating on attempts would treat that blip as the trend
+ * `minCalls` exists to rule out.
+ *
+ * Three outcomes, deliberately not two — "found a problem" and "found
+ * nothing" collapse "measured healthy" and "measured nothing" into the same
+ * silence, which is the honesty gap this row exists to close:
+ * - no rows in the window at all (table absent, never run, or nothing
+ * recent) → no row. Silence here means "nothing to report", not "fine" —
+ * the same convention `guard_activity` and `citation_compliance` use.
+ * - rows exist, none of them a 100%-failing flow → an informational row
+ * naming what WAS measured, so "healthy" is a stated fact, not an
+ * absence of complaint.
+ * - a flow at 100% failure with ≥ minCalls primary calls → warn, not fail:
+ * the rest of memesh (keyword search, everything not LLM-backed) is
+ * unaffected, the same reasoning `embeddings.threw` uses.
+ */
+function inspectLlmTelemetryHealth(
+ db: MemeshDatabase,
+ windowDays: number = LLM_TELEMETRY_HEALTH_WINDOW_DAYS,
+ minCalls: number = LLM_TELEMETRY_HEALTH_MIN_CALLS,
+): DoctorCheck | undefined {
+ let summaries: TelemetrySummary[];
+ try {
+ summaries = summariseTelemetry(windowDays, db);
+ } catch {
+ // No `llm_telemetry` table (a database from before it existed) or an
+ // unreadable one: there is nothing here to diagnose, and reporting
+ // "healthy" would be a claim this function never checked.
+ return undefined;
+ }
+ if (summaries.length === 0) return undefined;
+
+ const broken = summaries
+ .filter((s) => s.total_calls >= minCalls && s.successes === 0)
+ .sort((a, b) => b.total_calls - a.total_calls);
+
+ if (broken.length > 0) {
+ // `total_calls` (primary attempts) and `failures` (a status count over
+ // ALL attempts, primary + fallback) are different units — a flow whose
+ // failover chain fires reads e.g. 3 calls, 6 failed attempts, and
+ // "3/6" would print backwards ("more failures than calls"). Stating the
+ // call count and "0 succeeded" (true by the filter above) says the same
+ // thing without mixing them.
+ const detail = broken.map((s) => `${s.flow} (${s.total_calls} call${s.total_calls === 1 ? '' : 's'}, 0 succeeded)`).join(', ');
+ return createCheck(
+ 'llm_telemetry_health',
+ 'AI feature health',
+ 'warn',
+ `${broken.length} AI-backed feature${broken.length === 1 ? '' : 's'} failed every call in the last `
+ + `${windowDays} days: ${detail}. Those features are silently doing nothing.`,
+ 'Run `memesh telemetry` for the full per-flow detail, then check the model/provider configured for '
+ + 'the failing flow. `memesh doctor --probe` confirms whether it answers a live call.',
+ { code: 'llm-telemetry.silent-failure', params: { count: broken.length, detail, windowDays } },
+ );
+ }
+
+ const totalCalls = summaries.reduce((n, s) => n + s.total_calls, 0);
+ const totalSuccesses = summaries.reduce((n, s) => n + s.successes, 0);
+ const rate = totalCalls > 0 ? Math.round((totalSuccesses / totalCalls) * 100) : 100;
+ return createInfo(
+ 'llm_telemetry_health',
+ 'AI feature health',
+ `${summaries.length} AI-backed flow${summaries.length === 1 ? '' : 's'} made ${totalCalls} call(s) in the `
+ + `last ${windowDays} days; ${rate}% succeeded.`,
+ );
+}
+
/**
* Does the configured LLM actually answer?
*
@@ -3367,6 +3475,13 @@ export async function runDoctor(options: DoctorOptions): Promise {
));
}
}
+
+ // Has an AI-backed feature quietly stopped working? See
+ // inspectLlmTelemetryHealth's own doc for the window/threshold and the
+ // measurements behind them. Zero cost (a local read), so unlike
+ // inspectLlmProbe below this runs unconditionally, not behind --probe.
+ const llmTelemetryHealth = inspectLlmTelemetryHealth(db as unknown as MemeshDatabase);
+ if (llmTelemetryHealth) dbChecks.push(llmTelemetryHealth);
} catch (err) {
const message = err instanceof Error ? err.message : 'unknown database error';
diff --git a/src/db.ts b/src/db.ts
index 269eeac9b..28f252608 100644
--- a/src/db.ts
+++ b/src/db.ts
@@ -7,7 +7,7 @@ import { resolveEmbeddingDimension } from './core/config.js';
import { computeSignalScore } from './core/signal-scorer.js';
import { getDbPath } from './core/paths.js';
import { insertFtsRow, joinIndexedObservations, removeFromFts } from './storage/fts-index.js';
-import { dedupeObservations, dropArchivedIndexRows, retractZeroEditClaims, splitFusedLessons } from './storage/graph-repairs.js';
+import { dedupeObservations, dropArchivedIndexRows, retractZeroEditClaims, splitFusedLessons, repairFusedLessonShellHistory } from './storage/graph-repairs.js';
import {
SCHEMA_SQL,
FTS_SQL,
@@ -193,6 +193,13 @@ function migrateToCurrentSchema(db: MemeshDatabase, resolvedPath: string): void
},
});
+ // D15: shells splitFusedLessons emptied and archived before this file
+ // learned to zero their recall_hits/recall_misses still carry the fused
+ // bucket's stale history. Runs after splitFusedLessons so it only ever
+ // sees shells that pass has already produced (a split_from referrer must
+ // exist), never a bucket mid-split in the same open.
+ repairFusedLessonShellHistory(db);
+
// Phase-2 of #39 (LLM cluster compactor): proposed digests live in
// a staging table, written by the dreamer and reviewed by the user
// before any source entities are archived. Mirrors Mem0's 4-op
diff --git a/src/storage/graph-repairs.ts b/src/storage/graph-repairs.ts
index 4b55276a7..b95e56e1d 100644
--- a/src/storage/graph-repairs.ts
+++ b/src/storage/graph-repairs.ts
@@ -11,7 +11,11 @@
// legacy entity and its new digest-named successor.
// A fix that only prevents new damage leaves `scripts/audit/memory-invariants.mjs`
// red on every existing install forever, and leaves recall matching the fused
-// buckets (retrieved 61 times, matched 3) instead of the lessons in them.
+// buckets (retrieved 61 times, matched 3) instead of the lessons in them. That
+// same 61/3 also stayed on the bucket forever after a split, because the split
+// moved observations and left the entity's recall_hits/recall_misses columns
+// untouched — see `retireRecallHistory` for why that number belongs to no
+// lesson once the bucket has been split apart.
//
// So the data is repaired here, once, at the first open through the core
// `openDatabase` after upgrade — CLI, MCP, HTTP, and the two hook paths that
@@ -20,11 +24,12 @@
// in db.ts: a `runOnceMigration` keyed in `memesh_metadata`, transactional,
// non-fatal, one line on stderr when it changed something.
//
-// Three passes, each owning exactly one invariant from memory-invariants.mjs:
+// Four passes, each owning exactly one invariant from memory-invariants.mjs:
//
-// dedupeObservations → no-entity-carries-the-same-observation-twice
-// retractZeroEditClaims → stop-summary-does-not-assert-zero-edits-for-bash-sessions
-// splitFusedLessons → explicit-lessons-not-fused-into-other-bucket
+// dedupeObservations → no-entity-carries-the-same-observation-twice
+// retractZeroEditClaims → stop-summary-does-not-assert-zero-edits-for-bash-sessions
+// splitFusedLessons → explicit-lessons-not-fused-into-other-bucket
+// repairFusedLessonShellHistory → split-lesson-shell-carries-no-recall-history
//
// What each pass does NOT do, and why:
// - The dedupe keeps the lowest id of each (entity, content) pair and leaves
@@ -67,6 +72,7 @@ export const ZERO_EDIT_RETRACT_KEY = 'session_zero_edit_retract';
export const FUSED_LESSON_SPLIT_KEY = 'fused_lesson_split';
export const ARCHIVED_FTS_ROWS_KEY = 'archived_fts_rows';
export const ARCHIVED_VECTOR_ROWS_KEY = 'archived_vector_rows';
+export const FUSED_LESSON_SHELL_HISTORY_RESET_KEY = 'fused_lesson_shell_history_reset';
/** The summary suffix the Stop hook wrote when it could not see Bash edits. */
const ZERO_EDITS = ', 0 files edited';
@@ -82,6 +88,68 @@ function note(line: string): void {
process.stderr.write(`MeMesh: ${line}\n`);
}
+/**
+ * Zero an emptied entity's `recall_hits` / `recall_misses` and, if either was
+ * nonzero, keep the number under `metadata.retired_recall` rather than just
+ * dropping it.
+ *
+ * Why zero rather than divide among the lessons the entity was split into,
+ * or copy the full count onto each: a hit/miss is recorded against the
+ * BUCKET id (the Stop hook's `[mem:]` marker names what was injected),
+ * never against one observation inside it, so there is no record of which
+ * split-out lesson a given hit belonged to. Dividing invents a fraction
+ * nothing earned; copying the total onto every successor claims each one
+ * independently has the bucket's whole track record. Neither is a number
+ * that happened.
+ *
+ * Zero is not "we don't know" either, so it is not simply the honest
+ * default: this repair's own header names the reason the bucket's rate
+ * cannot be trusted for ANY successor even in aggregate — "recall matching
+ * the fused buckets ... instead of the lessons in them". A bucket that
+ * fuses N unrelated lessons is broad enough to get injected often and, being
+ * mostly irrelevant to any one need, cited rarely — a rate produced by
+ * fusion, the exact defect being repaired here, not a measurement of what
+ * the individual lessons are worth. Inheriting it in any proportion would
+ * carry that artifact into entities the fusion never touched.
+ *
+ * That leaves an entity that no longer holds any lesson still holding a real
+ * historical number. It is not deleted outright: `metadata.retired_recall`
+ * keeps it for forensic reading, the same way `split_from` keeps where a
+ * successor came from — only the live `recall_hits`/`recall_misses` columns,
+ * which feed `impactScore` (scoring.ts) and the unfiltered
+ * `SUM(recall_hits) FROM entities` in `scripts/audit/measure-signals.mjs`,
+ * are cleared. Archived rows are excluded from the default FTS/vector
+ * candidate set (`archiveEntity()` removes the FTS row; `search()`'s
+ * `statusFilter` defaults to active-only), so a shell's stale rate is not
+ * currently swaying live ranking — but it does inflate that audit sum
+ * forever, and it is wrong on any code path that reads an entity by id with
+ * `includeArchived: true`.
+ *
+ * No-ops (and touches nothing) when both counters are already 0 — the
+ * common case: 45 of the 49 archived shells measured on a real graph on
+ * 2026-09-02 had never earned a hit or a miss before being split.
+ */
+function retireRecallHistory(conn: MemeshDatabase, id: number): void {
+ const row = conn
+ .prepare('SELECT metadata, recall_hits, recall_misses FROM entities WHERE id = ?')
+ .get(id) as { metadata: string | null; recall_hits: number | null; recall_misses: number | null } | undefined;
+ if (!row) return;
+ const hits = row.recall_hits ?? 0;
+ const misses = row.recall_misses ?? 0;
+ if (hits === 0 && misses === 0) return;
+
+ let metadata: Record = {};
+ try {
+ const parsed: unknown = row.metadata ? JSON.parse(row.metadata) : {};
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) metadata = parsed as Record;
+ } catch { /* unreadable metadata: overwrite rather than merge into garbage */ }
+ metadata.retired_recall = { hits, misses };
+
+ conn
+ .prepare('UPDATE entities SET metadata = ?, recall_hits = 0, recall_misses = 0 WHERE id = ?')
+ .run(JSON.stringify(metadata), id);
+}
+
/**
* #240 — an entity carries each observation once.
*
@@ -418,7 +486,7 @@ export function splitFusedLessons(
bucket.name.slice('lesson-'.length, -'-other'.length);
const movedFromBucket = moveLessonGroups(bucket, project, groups, tags);
dropExplicit.run(bucket.id, bucket.id);
- archive.run(bucket.id, bucket.id);
+ if (archive.run(bucket.id, bucket.id).changes > 0) retireRecallHistory(conn, bucket.id);
if (movedFromBucket > 0) bucketsTouched += 1;
}
@@ -449,7 +517,7 @@ export function splitFusedLessons(
if (!groups.every((group) => `lesson-${project}-${legacyReadableLessonSlug(group.error)}` === entity.name)) continue;
const movedFromEntity = moveLessonGroups(entity, project, groups, tags);
- archive.run(entity.id, entity.id);
+ if (archive.run(entity.id, entity.id).changes > 0) retireRecallHistory(conn, entity.id);
legacyReadableMoved += movedFromEntity;
}
@@ -590,3 +658,55 @@ export function dropArchivedIndexRows(db: MemeshDatabase): {
return result;
}
+
+/**
+ * D15 — one-shot: shells `splitFusedLessons` already emptied and archived,
+ * before this file learned to zero their history, still carry the
+ * `recall_hits`/`recall_misses` earned under the fused bucket. See
+ * `retireRecallHistory` for why zero (into `metadata.retired_recall`) is the
+ * truthful value rather than dividing or copying the count onto the
+ * successors.
+ *
+ * Finds a shell the same way `retireRecallHistory`'s callers already
+ * identify one that this pass created — archived, no observations left —
+ * plus one more test the live pass gets for free by running inline: at
+ * least one OTHER entity's `metadata.split_from` names it, so this can only
+ * ever touch a row `splitFusedLessons` itself produced, never an unrelated
+ * lesson a user emptied and archived some other way. Measured on a real
+ * graph on 2026-09-02: 49 archived, empty `lesson_learned` entities, all 49
+ * with a `split_from` referrer, 4 of them (1/35, 3/61, 3/1, 0/1 hits/misses)
+ * still carrying nonzero history — the other 45 were already at 0/0.
+ *
+ * @returns number of shells whose history was retired, or -1 if the pass did not run
+ */
+export function repairFusedLessonShellHistory(db: MemeshDatabase): number {
+ let retired = -1;
+ runOnceMigration(db, {
+ key: FUSED_LESSON_SHELL_HISTORY_RESET_KEY,
+ version: 1,
+ describe: 'fused lesson shell history reset',
+ migrate: (conn) => {
+ const shells = conn
+ .prepare(
+ `SELECT e.id, e.name FROM entities e
+ WHERE e.type = 'lesson_learned' AND e.status = 'archived'
+ AND (COALESCE(e.recall_hits, 0) > 0 OR COALESCE(e.recall_misses, 0) > 0)
+ AND NOT EXISTS (SELECT 1 FROM observations o WHERE o.entity_id = e.id)
+ AND EXISTS (
+ SELECT 1 FROM entities s
+ WHERE json_extract(s.metadata, '$.split_from') = e.name
+ )`,
+ )
+ .all() as unknown as Array<{ id: number; name: string }>;
+ retired = 0;
+ for (const shell of shells) {
+ retireRecallHistory(conn, shell.id);
+ retired += 1;
+ }
+ if (retired > 0) {
+ note(`retired stale recall history on ${retired} archived lesson shell(s) split before this fix existed.`);
+ }
+ },
+ });
+ return retired;
+}
diff --git a/tests/audit/memory-invariants.test.ts b/tests/audit/memory-invariants.test.ts
index 217a5f146..06c7c5581 100644
--- a/tests/audit/memory-invariants.test.ts
+++ b/tests/audit/memory-invariants.test.ts
@@ -540,6 +540,71 @@ describe('memory-invariants: read-only detector over a real graph', () => {
}
});
+
+ it('D15 — flags an archived split shell that still carries recall history', () => {
+ const { dir, dbPath } = freshGraph();
+ try {
+ withRawDb(dbPath, (db) => {
+ // The shell: emptied and archived by splitFusedLessons, no
+ // observations left, but its recall_hits/recall_misses were never
+ // touched by the split — the exact shape measured on a real graph
+ // (lesson-memesh-cloud-other: 3 hits / 61 misses).
+ insertEntity(db, 'lesson-proj-other', 'lesson_learned', {
+ status: 'archived',
+ recall_hits: '3',
+ recall_misses: '61',
+ });
+ // A successor the split produced, naming the shell it came from —
+ // the only signal that distinguishes a split shell from any other
+ // archived, empty lesson.
+ insertEntity(db, 'lesson-proj-abc12345', 'lesson_learned', {
+ metadata: JSON.stringify({ split_from: 'lesson-proj-other' }),
+ });
+ });
+ const r = run(dbPath);
+ expect(r.status, r.stdout).toBe(1);
+ expect(r.stdout).toContain('FAIL split-lesson-shell-carries-no-recall-history');
+ expect(r.stdout).toContain('lesson-proj-other hits=3 misses=61');
+ } finally {
+ fs.rmSync(dir, { recursive: true, force: true });
+ }
+ });
+
+ it('D15 — an archived empty lesson with no split successor is not a violation (not every empty archive is a shell)', () => {
+ const { dir, dbPath } = freshGraph();
+ try {
+ withRawDb(dbPath, (db) => {
+ // Same shape (archived, empty, nonzero history) but nothing names it
+ // as a split source — e.g. a lesson a user emptied and forgot by
+ // hand. The invariant must not treat every archived-and-empty lesson
+ // as a shell.
+ insertEntity(db, 'lesson-proj-unrelated', 'lesson_learned', {
+ status: 'archived',
+ recall_hits: '2',
+ recall_misses: '5',
+ });
+ });
+ expect(run(dbPath).status).toBe(0);
+ } finally {
+ fs.rmSync(dir, { recursive: true, force: true });
+ }
+ });
+
+ it('D15 — a split shell already at 0/0 is not a violation', () => {
+ const { dir, dbPath } = freshGraph();
+ try {
+ withRawDb(dbPath, (db) => {
+ insertEntity(db, 'lesson-proj-other', 'lesson_learned', { status: 'archived' });
+ insertEntity(db, 'lesson-proj-def67890', 'lesson_learned', {
+ metadata: JSON.stringify({ split_from: 'lesson-proj-other' }),
+ });
+ });
+ expect(run(dbPath).status).toBe(0);
+ } finally {
+ fs.rmSync(dir, { recursive: true, force: true });
+ }
+ });
+
it('#242 — reports (does not fail on) a global-namespace entity with no project tag', () => {
const { dir, dbPath } = freshGraph();
try {
diff --git a/tests/cli/doctor-llm-telemetry-health.test.ts b/tests/cli/doctor-llm-telemetry-health.test.ts
new file mode 100644
index 000000000..fb65bac44
--- /dev/null
+++ b/tests/cli/doctor-llm-telemetry-health.test.ts
@@ -0,0 +1,215 @@
+/**
+ * D13 — `memesh doctor` says out loud when an AI-backed feature has quietly
+ * stopped working.
+ *
+ * `llm_telemetry` (llm-telemetry.ts) is written by every Smart-Mode flow and,
+ * until this row existed, read by nothing that could alert anyone: `memesh
+ * telemetry` shows it on request, which means a broken flow needed someone to
+ * think to ask. Measured on the maintainer's own graph on 2026-09-02:
+ * `guard_proposer` had failed all 69 of its calls, every one of them, for
+ * five straight days, and doctor had no check that so much as read the
+ * table (`grep -n "llm_telemetry" src/core/doctor.ts` found nothing before
+ * this file).
+ *
+ * These spawn the built CLI against a real database in a throwaway HOME —
+ * the row's window filter (`ts >= datetime(?)`) and per-flow grouping run
+ * inside `summariseTelemetry`'s own SQL, which a canned stub cannot exercise.
+ */
+import { describe, it, expect, beforeEach, afterEach } from 'vitest';
+import { execFileSync } from 'child_process';
+import fs from 'fs';
+import os from 'os';
+import path from 'path';
+import { MemeshDatabase as Database } from '../../src/storage/sqlite.js';
+import { closeDatabase, openDatabase } from '../../src/db.js';
+import { KnowledgeGraph } from '../../src/knowledge-graph.js';
+
+const CLI_PATH = path.join(__dirname, '..', '..', 'dist', 'transports', 'cli', 'cli.js');
+
+interface DoctorCheck {
+ id: string;
+ status: string;
+ summary: string;
+ fix?: string;
+ code?: string;
+ params?: Record;
+ informational?: boolean;
+}
+
+describe('doctor: an AI-backed feature that quietly stopped working is reported', () => {
+ let home: string;
+ let dbPath: string;
+
+ beforeEach(() => {
+ home = fs.mkdtempSync(path.join(os.tmpdir(), 'memesh-llmtelem-'));
+ fs.mkdirSync(path.join(home, '.memesh'), { recursive: true });
+ dbPath = path.join(home, '.memesh', 'knowledge-graph.db');
+ });
+
+ afterEach(() => {
+ try { closeDatabase(); } catch { /* already closed */ }
+ fs.rmSync(home, { recursive: true, force: true, maxRetries: 5, retryDelay: 100 });
+ });
+
+ function doctorChecks(): DoctorCheck[] {
+ const env: NodeJS.ProcessEnv = { ...process.env, HOME: home, USERPROFILE: home };
+ for (const key of ['ANTHROPIC_API_KEY', 'OPENAI_API_KEY', 'OLLAMA_HOST', 'MEMESH_DIR', 'MEMESH_DB_PATH']) {
+ delete env[key];
+ }
+ let stdout: string;
+ try {
+ stdout = execFileSync('node', [CLI_PATH, 'doctor', '--json'], { encoding: 'utf8', env });
+ } catch (err) {
+ // doctor exits non-zero whenever any row fails, which the warn case
+ // here routinely produces. The report is on stdout either way.
+ stdout = (err as { stdout?: string }).stdout ?? '';
+ }
+ let report: { checks?: DoctorCheck[] };
+ try {
+ report = JSON.parse(stdout) as { checks?: DoctorCheck[] };
+ } catch {
+ throw new Error(`doctor --json produced no JSON: ${stdout.slice(0, 400)}`);
+ }
+ const checks = report.checks ?? [];
+ // Anti-vacuity for every filter below: an empty report would satisfy
+ // "no telemetry row" just as well as a working one.
+ expect(checks.length, 'doctor returned an empty report').toBeGreaterThan(6);
+ return checks;
+ }
+
+ function telemetryRow(): DoctorCheck | undefined {
+ const matches = doctorChecks().filter((c) => c.id === 'llm_telemetry_health');
+ expect(matches.length, `doctor emitted ${matches.length} llm_telemetry_health rows`).toBeLessThan(2);
+ return matches[0];
+ }
+
+ /** A database built by the real code path, holding one memory. */
+ function seedDatabase(): void {
+ try { closeDatabase(); } catch { /* none open */ }
+ const db = openDatabase(dbPath);
+ new KnowledgeGraph(db).createEntity('a-note', 'note', { observations: ['something worth keeping'] });
+ closeDatabase();
+ expect(fs.existsSync(dbPath), 'setup: no database was created').toBe(true);
+ }
+
+ /** One `llm_telemetry` row, at an explicit age — the shape recordTelemetry writes. */
+ function seedCall(
+ flow: string,
+ status: 'ok' | 'fail',
+ hoursAgo: number,
+ errorClass: string | null = null,
+ attemptIndex = 0,
+ ): void {
+ const db = new Database(dbPath);
+ const ts = new Date(Date.now() - hoursAgo * 3_600_000).toISOString().replace('T', ' ').slice(0, 19);
+ db.prepare(
+ `INSERT INTO llm_telemetry (ts, flow, provider, model, attempt_index, status, latency_ms, error_class, fallback_used)
+ VALUES (?, ?, 'anthropic', 'claude-3-5-haiku-latest', ?, ?, 400, ?, ?)`,
+ ).run(ts, flow, attemptIndex, status, errorClass, attemptIndex > 0 ? 1 : 0);
+ db.close();
+ }
+
+ it('says nothing on a database with no telemetry at all — absence is not health', () => {
+ seedDatabase();
+ expect(telemetryRow(), 'doctor invented a verdict about a flow that has never run').toBeUndefined();
+ });
+
+ it('WARNS when a flow failed every one of its recent calls', () => {
+ seedDatabase();
+ // The measured real shape: guard_proposer, 69/69 failed, all inside 5 days.
+ for (let i = 0; i < 5; i++) seedCall('guard_proposer', 'fail', i * 20, 'bad_request');
+
+ const check = telemetryRow();
+ expect(check, 'a flow at 0% recent success went unreported').toBeDefined();
+ expect(check?.status).toBe('warn');
+ expect(check?.code).toBe('llm-telemetry.silent-failure');
+ expect(check?.summary).toContain('guard_proposer (5 calls, 0 succeeded)');
+ expect(check?.summary, 'the cost side is what makes this actionable').toMatch(/silently doing nothing/i);
+ expect(check?.fix).toMatch(/memesh telemetry/);
+ expect(check?.informational, 'a warning that cannot affect Overall is not a warning').toBeFalsy();
+ });
+
+ it('reports a healthy flow as information, not as a problem', () => {
+ seedDatabase();
+ for (let i = 0; i < 8; i++) seedCall('transcript_extractor', 'ok', i);
+ seedCall('transcript_extractor', 'fail', 9, 'network');
+
+ const check = telemetryRow();
+ expect(check, 'measured calls with no confirmed failure went unreported').toBeDefined();
+ expect(check?.informational).toBe(true);
+ expect(check?.status).toBe('pass');
+ expect(check?.summary).toContain('9 call(s)');
+ expect(check?.summary).toMatch(/89%|90%/);
+ expect(check?.code, 'a healthy state carried a failure code').toBeUndefined();
+ });
+
+ it('does not flag a flow on a single failed call — a blip is not a trend', () => {
+ seedDatabase();
+ seedCall('failure_analyzer', 'fail', 1, 'bad_request');
+ seedCall('failure_analyzer', 'fail', 2, 'bad_request');
+
+ const check = telemetryRow();
+ expect(check?.status, 'two calls tripped the warn threshold').toBe('pass');
+ expect(check?.summary).toContain('2 call(s)');
+ expect(check?.summary).toContain('0%');
+ });
+
+ it('excludes a flow whose only success sits outside the 7-day window from diluting a live failure', () => {
+ seedDatabase();
+ // dreamer's real shape: a stale success 10 days back, then five recent
+ // calls that all failed. A window wide enough to blend the two would
+ // report "1 of 6 succeeded" and hide that it has been broken all week.
+ seedCall('dreamer', 'ok', 10 * 24);
+ for (let i = 0; i < 5; i++) seedCall('dreamer', 'fail', i * 20, 'bad_request');
+
+ const check = telemetryRow();
+ expect(check?.status).toBe('warn');
+ expect(check?.summary).toContain('dreamer (5 calls, 0 succeeded)');
+ });
+
+ it('does not flag a flow with an ordinary background failure rate mixed among successes', () => {
+ seedDatabase();
+ // transcript_extractor's real shape: failures sandwiched between
+ // successes, never a run of `minCalls` failures in a row.
+ seedCall('transcript_extractor', 'ok', 1);
+ seedCall('transcript_extractor', 'fail', 2, 'network');
+ seedCall('transcript_extractor', 'ok', 3);
+ seedCall('transcript_extractor', 'fail', 4, 'network');
+ seedCall('transcript_extractor', 'ok', 5);
+
+ const check = telemetryRow();
+ expect(check?.status, 'an ordinary background failure rate was reported as broken').toBe('pass');
+ });
+
+ it('counts calls, not provider attempts, when a failover chain fires', () => {
+ seedDatabase();
+ // Two calls, each trying two providers and failing both: 2 calls, 4
+ // failed ATTEMPTS. minCalls (3) is not met by call count, so this must
+ // stay unflagged — a naive attempt-count gate would treat 4 as ≥3 and
+ // warn on two data points instead of the blip they are.
+ seedCall('failure_analyzer', 'fail', 1, 'bad_request', 0);
+ seedCall('failure_analyzer', 'fail', 1, 'bad_request', 1);
+ seedCall('failure_analyzer', 'fail', 2, 'bad_request', 0);
+ seedCall('failure_analyzer', 'fail', 2, 'bad_request', 1);
+
+ const check = telemetryRow();
+ expect(check?.status, 'attempt count (4) was mistaken for call count (2) and warned early').toBe('pass');
+ expect(check?.summary).toContain('2 call(s)');
+ });
+
+ it('doctorChecks recovers the report when the CLI exits non-zero, instead of throwing', () => {
+ // Every scenario above is a WARN, which `memesh doctor` exits 0 for —
+ // none of them reach execFileSync's catch (`err.stdout` fallback). A
+ // database file SQLite itself refuses to open ("file is not a
+ // database") is doctor's FAIL case, which flips result.status to FAIL
+ // and the CLI's process.exitCode to 1: the one condition this helper's
+ // catch exists for, and the only way to prove it does not just let
+ // that throw escape and fail every OTHER test in this file that calls
+ // it. (A merely EMPTY file is not enough — SQLite treats 0 bytes as an
+ // ordinary fresh database and doctor initialises it clean.)
+ fs.writeFileSync(dbPath, 'not a sqlite file, just garbage bytes');
+ const checks = doctorChecks();
+ const db = checks.find((c) => c.id === 'database');
+ expect(db?.status, 'an unopenable database file must still be reported as fail, not thrown past').toBe('fail');
+ });
+});
diff --git a/tests/core/doctor.test.ts b/tests/core/doctor.test.ts
index 820e45936..33917305f 100644
--- a/tests/core/doctor.test.ts
+++ b/tests/core/doctor.test.ts
@@ -191,6 +191,9 @@ function makeDatabase(
* every test predating the measured Vector Index row assumes a graph
* that is fully embedded. */
missingVectors?: number;
+ /** Make every read of `llm_telemetry` throw — a database from before the
+ * table existed, or one whose table cannot be read. Default false. */
+ telemetryUnreadable?: boolean;
} = {},
) {
const sqliteTs = (hoursAgo: number) =>
@@ -255,6 +258,16 @@ function makeDatabase(
if (sql.includes('source_host')) {
return { get: () => ({ c: opts.recentClaudeCodeWrites ?? 1 }) };
}
+ // llm_telemetry health (D13): every test in this file predates the
+ // row and asserts nothing about it, so the default is "no telemetry
+ // recorded" — the same "opt-in options, default absent" convention
+ // as citationCounters above. A real predicate (window filtering,
+ // per-flow grouping) is exercised against a real database in
+ // tests/cli/doctor-llm-telemetry-health.test.ts, not here.
+ if (sql.includes('FROM llm_telemetry')) {
+ if (opts.telemetryUnreadable) throw new Error('no such table: llm_telemetry');
+ return { all: () => [] };
+ }
// Three DIFFERENT questions used to share one canned answer.
//
// The default branch below returns `{ c: count }` for every query
@@ -1454,6 +1467,32 @@ describe('doctor', () => {
return { result, activity: result.checks.find(c => c.id === 'hook-activity')! };
}
+ it('llm-telemetry health: a telemetry table doctor cannot read is not a finding, and not a crash', async () => {
+ // inspectLlmTelemetryHealth swallows the read failure and returns
+ // undefined: a database from before `llm_telemetry` existed has nothing
+ // to diagnose, and reporting it as broken — or letting the throw escape
+ // into runDoctor's outer catch, which would print it as a database
+ // failure — would both be claims about a table nobody read. Every other
+ // test in this file gives the stub an empty table, so this branch had no
+ // test that could go red until this one.
+ const packageRoot = createPackageRoot();
+ tempRoots.push(packageRoot);
+ const { result } = await activityCheck(
+ hookActivityDoctorArgs(packageRoot, makeDatabase(0, { telemetryUnreadable: true })),
+ );
+ expect(result.checks.some(c => c.code === 'llm-telemetry.silent-failure')).toBe(false);
+ const leaked = result.checks.filter(c => /llm_telemetry/.test(`${c.summary} ${c.fix ?? ''}`));
+ expect(leaked.map(c => c.id), 'the read failure must not surface as any check').toEqual([]);
+ // The discriminating assertion: `database` is pushed 'pass' before this
+ // health check runs, then `dbChecks.length = 0` in runDoctor's outer
+ // catch would silently replace it with a 'fail' row if this function's
+ // local catch ever let the read failure escape instead of swallowing
+ // it — the two assertions above stay green even then, because the
+ // outer catch's diagnosis branches on file existence, not on this
+ // error's message, so neither ever mentions "llm_telemetry".
+ expect(result.checks.find(c => c.id === 'database')?.status).toBe('pass');
+ });
+
it('hook-activity: the 24h count and the since-tracking count are different questions', async () => {
// Three probes shared one canned answer in this fixture, so a row that
// consulted the WRONG query produced the right verdict for the wrong
diff --git a/tests/storage/graph-repairs.test.ts b/tests/storage/graph-repairs.test.ts
index 953f6e892..ceb07c8e1 100644
--- a/tests/storage/graph-repairs.test.ts
+++ b/tests/storage/graph-repairs.test.ts
@@ -22,6 +22,7 @@ import { KnowledgeGraph } from '../../src/knowledge-graph.js';
import {
ARCHIVED_FTS_ROWS_KEY,
ARCHIVED_VECTOR_ROWS_KEY,
+ FUSED_LESSON_SHELL_HISTORY_RESET_KEY,
FUSED_LESSON_SPLIT_KEY,
SESSION_DEDUPE_KEY,
ZERO_EDIT_RETRACT_KEY,
@@ -51,13 +52,14 @@ function seed(fn: (db: Db) => void): void {
const db = openDatabase(dbPath);
fn(db);
db.prepare(
- 'DELETE FROM memesh_metadata WHERE key LIKE ? OR key LIKE ? OR key LIKE ? OR key LIKE ? OR key LIKE ?',
+ 'DELETE FROM memesh_metadata WHERE key LIKE ? OR key LIKE ? OR key LIKE ? OR key LIKE ? OR key LIKE ? OR key LIKE ?',
).run(
`${SESSION_DEDUPE_KEY}%`,
`${ZERO_EDIT_RETRACT_KEY}%`,
`${FUSED_LESSON_SPLIT_KEY}%`,
`${ARCHIVED_FTS_ROWS_KEY}%`,
`${ARCHIVED_VECTOR_ROWS_KEY}%`,
+ `${FUSED_LESSON_SHELL_HISTORY_RESET_KEY}%`,
);
closeDatabase();
}
@@ -88,6 +90,21 @@ function statusOf(db: Db, name: string): string {
return (db.prepare('SELECT status FROM entities WHERE name = ?').get(name) as { status: string }).status;
}
+function recallOf(db: Db, name: string): { hits: number; misses: number } {
+ const row = db.prepare('SELECT recall_hits AS hits, recall_misses AS misses FROM entities WHERE name = ?')
+ .get(name) as { hits: number | null; misses: number | null };
+ return { hits: row.hits ?? 0, misses: row.misses ?? 0 };
+}
+
+function metadataOf(db: Db, name: string): Record {
+ const row = db.prepare('SELECT metadata FROM entities WHERE name = ?').get(name) as { metadata: string | null };
+ return row.metadata ? JSON.parse(row.metadata) : {};
+}
+
+function setRecall(db: Db, name: string, hits: number, misses: number): void {
+ db.prepare('UPDATE entities SET recall_hits = ?, recall_misses = ? WHERE name = ?').run(hits, misses, name);
+}
+
function runInvariants(): { status: number | null; stdout: string } {
const r = spawnSync(process.execPath, [invariants, '--db', dbPath], { encoding: 'utf8' });
return { status: r.status, stdout: r.stdout + r.stderr };
@@ -810,3 +827,228 @@ describe('dropArchivedIndexRows — archived rows leave both indexes (D11/D12)',
expect(runInvariants().status).toBe(0);
});
});
+
+describe('D15 — a split shell does not keep recall history that belongs to no lesson', () => {
+ it('zeroes the bucket\'s recall_hits/recall_misses when it empties, and leaves the split-out lessons at 0/0', () => {
+ seed((db) => {
+ const id = insertEntity(db, 'lesson-proj-other', 'lesson_learned',
+ ['project:proj', 'error-pattern:other', 'source:explicit']);
+ const ins = db.prepare('INSERT INTO observations (entity_id, content) VALUES (?, ?)');
+ for (const line of [...LESSON_A, ...LESSON_B]) ins.run(id, line);
+ // The measured real shape: a bucket injected 64 times, cited 3.
+ setRecall(db, 'lesson-proj-other', 3, 61);
+ });
+ const db = repaired();
+ expect(statusOf(db, 'lesson-proj-other')).toBe('archived');
+ expect(recallOf(db, 'lesson-proj-other')).toEqual({ hits: 0, misses: 0 });
+ expect(metadataOf(db, 'lesson-proj-other').retired_recall).toEqual({ hits: 3, misses: 61 });
+ // Neither successor inherited any share of it — no double counting.
+ expect(recallOf(db, nameA)).toEqual({ hits: 0, misses: 0 });
+ expect(recallOf(db, nameB)).toEqual({ hits: 0, misses: 0 });
+ closeDatabase();
+ expect(runInvariants().status).toBe(0);
+ });
+
+ it('leaves recall history alone when a stray row keeps the bucket non-empty', () => {
+ seed((db) => {
+ const id = insertEntity(db, 'lesson-proj-other', 'lesson_learned',
+ ['project:proj', 'error-pattern:other', 'source:explicit']);
+ const ins = db.prepare('INSERT INTO observations (entity_id, content) VALUES (?, ?)');
+ // Before any `Error:` line, so groupLessons leaves it un-grouped and
+ // it never moves — the same shape as the existing "stray row" test.
+ ins.run(id, 'Note: this bucket picked up a stray line');
+ for (const line of LESSON_A) ins.run(id, line);
+ setRecall(db, 'lesson-proj-other', 3, 61);
+ });
+ const db = repaired();
+ expect(statusOf(db, 'lesson-proj-other')).toBe('active');
+ // Still represents live content (the stray row), so its history is still
+ // its own business — the same reasoning that keeps `source:explicit` on
+ // a bucket that did not fully empty.
+ expect(recallOf(db, 'lesson-proj-other')).toEqual({ hits: 3, misses: 61 });
+ expect(metadataOf(db, 'lesson-proj-other').retired_recall).toBeUndefined();
+ closeDatabase();
+ });
+
+ it('does not write metadata.retired_recall when the bucket had no history to retire', () => {
+ seed((db) => {
+ const id = insertEntity(db, 'lesson-proj-other', 'lesson_learned',
+ ['project:proj', 'error-pattern:other', 'source:explicit']);
+ const ins = db.prepare('INSERT INTO observations (entity_id, content) VALUES (?, ?)');
+ for (const line of LESSON_A) ins.run(id, line);
+ // No setRecall call: stays at the schema default (0, 0).
+ });
+ const db = repaired();
+ expect(recallOf(db, 'lesson-proj-other')).toEqual({ hits: 0, misses: 0 });
+ expect(metadataOf(db, 'lesson-proj-other').retired_recall).toBeUndefined();
+ closeDatabase();
+ });
+
+ it('retires history on the legacy readable-only split path too', () => {
+ seed((db) => {
+ const id = insertEntity(db, 'lesson-proj-null-pointer-in-the-auth-path', 'lesson_learned',
+ ['project:proj', 'error-pattern:null-reference', 'source:explicit']);
+ const ins = db.prepare('INSERT INTO observations (entity_id, content) VALUES (?, ?)');
+ for (const line of ['Error: Null pointer in the auth path', 'Root cause: x', 'Fix: y', 'Prevention: z']) ins.run(id, line);
+ setRecall(db, 'lesson-proj-null-pointer-in-the-auth-path', 1, 9);
+ });
+ const db = repaired();
+ const legacyName = 'lesson-proj-null-pointer-in-the-auth-path';
+ const canonicalName = `lesson-proj-${lessonSlug('Null pointer in the auth path')}`;
+ expect(statusOf(db, legacyName)).toBe('archived');
+ expect(recallOf(db, legacyName)).toEqual({ hits: 0, misses: 0 });
+ expect(metadataOf(db, legacyName).retired_recall).toEqual({ hits: 1, misses: 9 });
+ expect(recallOf(db, canonicalName)).toEqual({ hits: 0, misses: 0 });
+ closeDatabase();
+ });
+
+ it('is idempotent: a second open changes nothing further', () => {
+ seed((db) => {
+ const id = insertEntity(db, 'lesson-proj-other', 'lesson_learned',
+ ['project:proj', 'error-pattern:other', 'source:explicit']);
+ const ins = db.prepare('INSERT INTO observations (entity_id, content) VALUES (?, ?)');
+ for (const line of LESSON_A) ins.run(id, line);
+ setRecall(db, 'lesson-proj-other', 3, 61);
+ });
+ const first = repaired();
+ expect(recallOf(first, 'lesson-proj-other')).toEqual({ hits: 0, misses: 0 });
+ closeDatabase();
+ const second = openDatabase(dbPath);
+ expect(recallOf(second, 'lesson-proj-other')).toEqual({ hits: 0, misses: 0 });
+ expect(metadataOf(second, 'lesson-proj-other').retired_recall).toEqual({ hits: 3, misses: 61 });
+ closeDatabase();
+ });
+});
+
+describe('D15 — repairFusedLessonShellHistory: shells split before this fix existed', () => {
+ /**
+ * The state 4.8.2-and-later already produced on the maintainer's own
+ * graph: `splitFusedLessons` has already run to completion (the bucket is
+ * archived, empty, and a successor names it via `split_from`), from before
+ * this fix existed — so `splitFusedLessons`'s own migrate() has nothing
+ * left to do on this row; only the new standalone pass can reach it.
+ */
+ function seedAlreadySplitShell(db: Db, hits: number, misses: number): void {
+ insertEntity(db, 'lesson-proj-other', 'lesson_learned', [], 'archived');
+ setRecall(db, 'lesson-proj-other', hits, misses);
+ const successorId = insertEntity(db, nameA, 'lesson_learned', ['project:proj', 'source:explicit']);
+ db.prepare('INSERT INTO observations (entity_id, content) VALUES (?, ?)').run(successorId, LESSON_A[0]);
+ db.prepare('UPDATE entities SET metadata = ? WHERE id = ?')
+ .run(JSON.stringify({ split_from: 'lesson-proj-other' }), successorId);
+ // splitFusedLessons's own live pass cannot re-touch either row: the
+ // bucket carries no `source:explicit` tag (already stripped by the
+ // split that produced this fixture), and the successor's digest-shaped
+ // name never matches `legacyReadableLessonSlug`, so its legacy-readable
+ // branch skips it too. Only the new standalone pass can reach this shape.
+ }
+
+ it('retires a pre-existing shell\'s history the first time it opens under the new code', () => {
+ seed((db) => seedAlreadySplitShell(db, 3, 61));
+ const db = repaired();
+ expect(recallOf(db, 'lesson-proj-other')).toEqual({ hits: 0, misses: 0 });
+ expect(metadataOf(db, 'lesson-proj-other').retired_recall).toEqual({ hits: 3, misses: 61 });
+ expect(recallOf(db, nameA)).toEqual({ hits: 0, misses: 0 });
+ closeDatabase();
+ expect(runInvariants().status).toBe(0);
+ });
+
+ it('does not touch an archived, empty lesson with no split_from referrer', () => {
+ seed((db) => {
+ insertEntity(db, 'lesson-proj-forgotten', 'lesson_learned', [], 'archived');
+ setRecall(db, 'lesson-proj-forgotten', 4, 4);
+ });
+ const db = repaired();
+ expect(recallOf(db, 'lesson-proj-forgotten')).toEqual({ hits: 4, misses: 4 });
+ expect(metadataOf(db, 'lesson-proj-forgotten').retired_recall).toBeUndefined();
+ closeDatabase();
+ });
+
+ it('is idempotent: a second open finds nothing left to retire', () => {
+ seed((db) => seedAlreadySplitShell(db, 3, 61));
+ const first = repaired();
+ expect(first.prepare('SELECT value FROM memesh_metadata WHERE key = ?').get(FUSED_LESSON_SHELL_HISTORY_RESET_KEY))
+ .toEqual({ value: '1' });
+ closeDatabase();
+ const second = openDatabase(dbPath);
+ expect(recallOf(second, 'lesson-proj-other')).toEqual({ hits: 0, misses: 0 });
+ expect(metadataOf(second, 'lesson-proj-other').retired_recall).toEqual({ hits: 3, misses: 61 });
+ closeDatabase();
+ });
+});
+
+describe('the split path retires history on its own, not by leaning on the one-shot repair', () => {
+ // Both wirings run in the same `openDatabase`, and the one-shot repair runs
+ // SECOND — so on a fresh database it silently rescues anything the archive
+ // point in `splitFusedLessons` failed to retire, and a test that opens once
+ // cannot tell the two apart. Break-testing found exactly that: removing
+ // `retireRecallHistory` from BOTH archive points left every existing test
+ // green.
+ //
+ // But the repair is a `runOnceMigration`, already stamped at its current
+ // version (1) — it will not fire again as-is. That is not what protects
+ // an ordinary bucket the runtime fuses today: the current code no longer
+ // creates new `-other` buckets at all, so this state only matters for the
+ // next time `FUSED_LESSON_SPLIT_KEY` bumps past 2 (this split logic
+ // changing again) while the shell repair stays stamped and can no longer
+ // rescue what it misses — the archive points then have to retire the
+ // history on their own.
+ // This seeds that state: the repair already done, the split still owed.
+ function seedWithShellRepairAlreadyDone(bucketName: string, extraTags: string[] = []): void {
+ const db = openDatabase(dbPath);
+ const id = insertEntity(db, bucketName, 'lesson_learned',
+ ['project:proj', 'error-pattern:other', 'source:explicit', ...extraTags]);
+ const ins = db.prepare('INSERT INTO observations (entity_id, content, created_at) VALUES (?, ?, ?)');
+ for (const [i, line] of [...LESSON_A, ...LESSON_B].entries()) {
+ ins.run(id, line, `2026-08-0${1 + Math.floor(i / 4)} 10:00:0${i % 4}`);
+ }
+ setRecall(db, bucketName, 4, 37);
+ // The split is owed (version 2 > the stamped 1); the shell repair is not.
+ const stamp = db.prepare('INSERT OR REPLACE INTO memesh_metadata (key, value) VALUES (?, ?)');
+ stamp.run(FUSED_LESSON_SPLIT_KEY, '1');
+ stamp.run(FUSED_LESSON_SHELL_HISTORY_RESET_KEY, '1');
+ closeDatabase();
+ }
+
+ it('zeroes the emptied bucket even when the one-shot repair has already stamped and cannot rescue it', () => {
+ seedWithShellRepairAlreadyDone('lesson-proj-other');
+
+ const db = repaired();
+ // Guard the guard: if the one-shot repair DID run, this test proves
+ // nothing about the archive point, so assert it stayed stamped at 1.
+ expect(
+ db.prepare('SELECT value FROM memesh_metadata WHERE key = ?').get(FUSED_LESSON_SHELL_HISTORY_RESET_KEY),
+ 'the one-shot repair ran after all — this test can no longer isolate the archive point',
+ ).toEqual({ value: '1' });
+ expect(statusOf(db, 'lesson-proj-other'), 'setup: the bucket did not empty and archive').toBe('archived');
+ expect(recallOf(db, 'lesson-proj-other')).toEqual({ hits: 0, misses: 0 });
+ expect(metadataOf(db, 'lesson-proj-other').retired_recall).toEqual({ hits: 4, misses: 37 });
+ closeDatabase();
+ });
+
+ it('does the same on the legacy readable-only path, which is a second archive point', () => {
+ // `lesson--` rather than `-other`: the second loop
+ // in `splitFusedLessons`, with its own `archive.run(...)`. It had the
+ // identical gap and the identical rescue hiding it.
+ const legacy = 'lesson-proj-null-pointer-in-the-auth-path';
+ const db0 = openDatabase(dbPath);
+ const id = insertEntity(db0, legacy, 'lesson_learned',
+ ['project:proj', 'error-pattern:null-reference', 'source:explicit']);
+ const ins = db0.prepare('INSERT INTO observations (entity_id, content) VALUES (?, ?)');
+ for (const line of ['Error: Null pointer in the auth path', 'Root cause: x', 'Fix: y', 'Prevention: z']) ins.run(id, line);
+ setRecall(db0, legacy, 2, 11);
+ const stamp = db0.prepare('INSERT OR REPLACE INTO memesh_metadata (key, value) VALUES (?, ?)');
+ stamp.run(FUSED_LESSON_SPLIT_KEY, '1');
+ stamp.run(FUSED_LESSON_SHELL_HISTORY_RESET_KEY, '1');
+ closeDatabase();
+
+ const db = repaired();
+ expect(
+ db.prepare('SELECT value FROM memesh_metadata WHERE key = ?').get(FUSED_LESSON_SHELL_HISTORY_RESET_KEY),
+ 'the one-shot repair ran after all — this test can no longer isolate the archive point',
+ ).toEqual({ value: '1' });
+ expect(statusOf(db, legacy), 'setup: the legacy entity did not archive').toBe('archived');
+ expect(recallOf(db, legacy)).toEqual({ hits: 0, misses: 0 });
+ expect(metadataOf(db, legacy).retired_recall).toEqual({ hits: 2, misses: 11 });
+ closeDatabase();
+ });
+});