mirror of
https://github.com/samvallad33/vestige.git
synced 2026-07-14 22:52:11 +02:00
* patch(backfill-safety): VESTIGE_BACKFILL_AUTOFIRE gate (default OFF) + bounded promote_memory_backfill
Off-by-default env gate around step-8.5 auto-fire in run_consolidation (decouples
backfill from consolidation cadence). New promote_memory_backfill caps stability at
MIN(stability*1.5, stability+365.0) (the bound retroactive_backfill.rs:300 already
computes but discarded); both backfill entry points use it. Fixes the false 'capped'
comment. Cloud-sync excluded at build (--no-default-features). Pending upstream PR to
samvallad33/vestige. omega-backfill-safety-v2.2.0 off tag v2.2.0 (3bcd4667).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* release: v2.2.1 — Windows embeddings fix + backfill safety + first-run guide
Board-clearing patch release.
Fixes:
- #101 Windows embeddings: release.yml already restores vector-search on the
x86_64-pc-windows-msvc target (merged in #102); this release rebuilds the
Windows binary so users actually get working embeddings.
- #103 Retroactive Salience Backfill safety (from community PR #104, adjusted):
* promote_memory_backfill bounds the stability multiply to
MIN(stability*1.5, stability+365.0) on both auto-fire and manual paths.
* VESTIGE_BACKFILL_AUTOFIRE gate — default ON (preserves the shipped/documented
v2.2.0 behavior), disable with 0/false/off/no. Env value is trimmed.
* Corrected the false "capped" comment and the promote_memory_backfill doc.
* Added 3 tests: +365 cap binds, *1.5 multiply below crossover, gate parsing.
Docs:
- #83 First-Run: new docs/GETTING-STARTED.md + README pointer.
- Consolidated roadmap issues #82,#84-#92 into docs/ROADMAP.md (Tracked Issues).
- Documented VESTIGE_BACKFILL_AUTOFIRE in docs/CONFIGURATION.md.
- CHANGELOG v2.2.1 entry.
Version bumped to 2.2.1 across all manifests + Cargo.lock + dashboard build.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Peter Lauzon <inbijiburu@protonmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 line
7.5 KiB
JavaScript
1 line
7.5 KiB
JavaScript
import"../chunks/Bzak7iHL.js";import{o as Rt}from"../chunks/TZu9D97Z.js";import{p as Ct,a as p,b as kt,j as f,e,l as dt,i as D,c as At,f as lt,g as t,h as i,r as a,t as j,s as J,n as K,u as Q}from"../chunks/wpu9U-D0.js";import{d as Mt,s as R,a as Pt}from"../chunks/D8mhvFt8.js";import{i as V}from"../chunks/DKve45Wd.js";import{e as W,i as X}from"../chunks/60_R_Vbt.js";import{a as c,r as C}from"../chunks/P1-U_Xsj.js";import{s as B}from"../chunks/EqHb-9AZ.js";import{a as S}from"../chunks/CZfHMhLI.js";import{P as Dt}from"../chunks/BHDZZvku.js";import{A as U}from"../chunks/DcKTNC6e.js";import{s as Z}from"../chunks/DPdYG9yN.js";import{N as ut}from"../chunks/CcUbQ_Wl.js";var St=f('<div class="flex items-center gap-2 px-3 py-1.5 rounded-full glass-subtle text-xs"><span class="ping-host w-2 h-2 rounded-full"></span> <span class="font-semibold tracking-wide"> </span> <span class="text-muted"> </span></div>'),Et=f('<div class="h-24 glass-subtle rounded-xl shimmer"></div>'),Ot=f('<div class="grid grid-cols-2 lg:grid-cols-4 gap-4"></div>'),Tt=f('<div class="flex-1 flex flex-col items-center gap-1"><span class="text-xs text-dim"> </span> <div class="w-full rounded-t transition-all duration-500"></div> <span class="text-xs text-muted"> </span></div>'),Nt=f('<div class="flex items-center gap-2 text-sm rounded-lg px-2 py-1.5 hover:bg-white/[0.03] transition"><div class="w-3 h-3 rounded-full"></div> <span class="text-dim capitalize"> </span> <span class="text-muted ml-auto tabular-nums"><!></span></div>'),jt=f('<div class="flex items-center gap-3 text-sm rounded-lg px-2 py-1 hover:bg-decay/[0.06] transition"><span class="text-xs text-decay tabular-nums w-9"> </span> <div class="w-16 h-1 rounded-full bg-deep overflow-hidden shrink-0"><div class="h-full rounded-full bg-decay"></div></div> <span class="text-dim truncate"> </span></div>'),Bt=f('<div class="p-6 glass rounded-xl !border-decay/20"><h2 class="text-sm text-decay font-semibold mb-3 flex items-center gap-2"><span class="breathe inline-block w-2 h-2 rounded-full bg-decay text-decay"></span> </h2> <div class="space-y-1 max-h-48 overflow-y-auto"></div></div>'),Ft=f('<div class="p-6 glass rounded-xl"><h2 class="text-sm text-bright font-semibold mb-4">Retention Distribution</h2> <div class="flex items-end gap-1 h-40"></div></div> <div class="p-6 glass-subtle rounded-xl"><h2 class="text-sm text-bright font-semibold mb-4">Memory Types</h2> <div class="grid grid-cols-2 lg:grid-cols-4 gap-3"></div></div> <!>',1),Lt=f('<div class="grid grid-cols-2 lg:grid-cols-4 gap-4"><div class="metric-card spotlight-surface lift p-4 glass rounded-xl svelte-w41m0t"><div class="relative z-[1] text-3xl text-bright font-bold"><!></div> <div class="relative z-[1] text-xs text-dim mt-1">Total Memories</div></div> <div class="metric-card spotlight-surface lift p-4 glass rounded-xl svelte-w41m0t"><div class="relative z-[1] text-3xl font-bold"><!></div> <div class="relative z-[1] text-xs text-dim mt-1">Avg Retention</div></div> <div class="metric-card spotlight-surface lift p-4 glass rounded-xl svelte-w41m0t"><div class="relative z-[1] text-3xl text-bright font-bold"><!></div> <div class="relative z-[1] text-xs text-dim mt-1">Due for Review</div></div> <div class="metric-card spotlight-surface lift p-4 glass rounded-xl svelte-w41m0t"><div class="relative z-[1] text-3xl text-bright font-bold"><!></div> <div class="relative z-[1] text-xs text-dim mt-1">Embedding Coverage</div></div></div> <!> <div class="flex gap-3"><button class="lift px-4 py-2 bg-warning/20 border border-warning/40 text-warning text-sm rounded-xl hover:bg-warning/30 transition">Run Consolidation</button></div>',1),Ht=f('<div class="p-6 max-w-5xl mx-auto space-y-6"><!> <!></div>');function aa(mt,pt){Ct(pt,!0);let _=J(null),h=J(null),b=J(null),ot=J(!0);Rt(async()=>{try{await(async n=>{var o=dt(n,3);D(_,o[0],!0),D(h,o[1],!0),D(b,o[2],!0)})(await Promise.all([S.stats(),S.health(),S.retentionDistribution()]))}catch{}finally{D(ot,!1)}});function tt(n){return{healthy:"#10b981",degraded:"#f59e0b",critical:"#ef4444",empty:"#6b7280"}[n]||"#6b7280"}async function gt(){try{await S.consolidate(),await(async n=>{var o=dt(n,3);D(_,o[0],!0),D(h,o[1],!0),D(b,o[2],!0)})(await Promise.all([S.stats(),S.health(),S.retentionDistribution()]))}catch{}}var at=Ht(),nt=e(at);Dt(nt,{icon:"stats",title:"System Stats",subtitle:"Live health and retention across your memory store",accent:"recall",children:(n,o)=>{var w=At(),$=lt(w);{var E=F=>{var g=St(),O=e(g),L=i(O,2),k=e(L,!0);a(L);var H=i(L,2),et=e(H);a(H),a(g),j((T,Y,rt,q)=>{B(g,`color: ${T??""}`),B(O,`color: ${Y??""}; background: ${rt??""}`),R(k,q),R(et,`v${t(h).version??""}`)},[()=>tt(t(h).status),()=>tt(t(h).status),()=>tt(t(h).status),()=>t(h).status.toUpperCase()]),p(F,g)};V($,F=>{t(h)&&F(E)})}p(n,w)},$$slots:{default:!0}});var xt=i(nt,2);{var ft=n=>{var o=Ot();W(o,20,()=>Array(8),X,(w,$)=>{var E=Et();p(w,E)}),a(o),p(n,o)},_t=n=>{var o=Lt(),w=lt(o),$=e(w),E=e($),F=e(E);U(F,{get value(){return t(_).totalMemories}}),a(E),K(2),a($),c($,(s,r)=>{var d;return(d=C)==null?void 0:d(s,r)},()=>({delay:0})),c($,s=>{var r;return(r=Z)==null?void 0:r(s)});var g=i($,2),O=e(g),L=e(O);U(L,{get value(){return t(_).averageRetention},scale:100,decimals:1,suffix:"%"}),a(O),K(2),a(g),c(g,(s,r)=>{var d;return(d=C)==null?void 0:d(s,r)},()=>({delay:70})),c(g,s=>{var r;return(r=Z)==null?void 0:r(s)});var k=i(g,2),H=e(k),et=e(H);U(et,{get value(){return t(_).dueForReview}}),a(H),K(2),a(k),c(k,(s,r)=>{var d;return(d=C)==null?void 0:d(s,r)},()=>({delay:140})),c(k,s=>{var r;return(r=Z)==null?void 0:r(s)});var T=i(k,2),Y=e(T),rt=e(Y);U(rt,{get value(){return t(_).embeddingCoverage},decimals:0,suffix:"%"}),a(Y),K(2),a(T),c(T,(s,r)=>{var d;return(d=C)==null?void 0:d(s,r)},()=>({delay:210})),c(T,s=>{var r;return(r=Z)==null?void 0:r(s)}),a(w);var q=i(w,2);{var ht=s=>{var r=Ft(),d=lt(r),vt=i(e(d),2);W(vt,21,()=>t(b).distribution,X,(u,l,x)=>{const A=Q(()=>Math.max(...t(b).distribution.map(I=>I.count),1)),N=Q(()=>t(l).count/t(A)*100),y=Q(()=>x<3?"#ef4444":x<5?"#f59e0b":x<7?"#10b981":"#6366f1");var v=Tt(),m=e(v),M=e(m,!0);a(m);var P=i(m,2),z=i(P,2),it=e(z,!0);a(z),a(v),j(()=>{R(M,t(l).count),B(P,`height: ${t(N)??""}%; background: ${t(y)??""}; opacity: 0.7; min-height: 2px`),R(it,t(l).range)}),p(u,v)}),a(vt),a(d),c(d,u=>{var l;return(l=C)==null?void 0:l(u)});var G=i(d,2),ct=i(e(G),2);W(ct,21,()=>Object.entries(t(b).byType),X,(u,l)=>{var x=Q(()=>dt(t(l),2));let A=()=>t(x)[0],N=()=>t(x)[1];var y=Nt(),v=e(y),m=i(v,2),M=e(m,!0);a(m);var P=i(m,2),z=e(P);U(z,{get value(){return N()}}),a(P),a(y),j(()=>{B(v,`background: ${(ut[A()]||"#8B95A5")??""}; box-shadow: 0 0 8px ${(ut[A()]||"#8B95A5")??""}80`),R(M,A())}),p(u,y)}),a(ct),a(G),c(G,u=>{var l;return(l=C)==null?void 0:l(u)});var yt=i(G,2);{var wt=u=>{var l=Bt(),x=e(l),A=i(e(x));a(x);var N=i(x,2);W(N,21,()=>t(b).endangered.slice(0,20),X,(y,v)=>{var m=jt(),M=e(m),P=e(M);a(M);var z=i(M,2),it=e(z);a(z);var I=i(z,2),$t=e(I,!0);a(I),a(m),j(zt=>{R(P,`${zt??""}%`),B(it,`width: ${t(v).retentionStrength*100}%`),R($t,t(v).content)},[()=>(t(v).retentionStrength*100).toFixed(0)]),p(y,m)}),a(N),a(l),c(l,y=>{var v;return(v=C)==null?void 0:v(y)}),j(()=>R(A,` Endangered Memories (${t(b).endangered.length??""})`)),p(u,l)};V(yt,u=>{t(b).endangered.length>0&&u(wt)})}p(s,r)};V(q,s=>{t(b)&&s(ht)})}var st=i(q,2),bt=e(st);a(st),c(st,s=>{var r;return(r=C)==null?void 0:r(s)}),j(()=>B(O,`color: ${t(_).averageRetention>.7?"var(--color-recall)":t(_).averageRetention>.4?"var(--color-warning)":"var(--color-decay)"}`)),Pt("click",bt,gt),p(n,o)};V(xt,n=>{t(ot)?n(ft):t(_)&&t(h)&&n(_t,1)})}a(at),p(mt,at),kt()}Mt(["click"]);export{aa as component};
|