vestige/apps/dashboard/build/_app/immutable/nodes/15.C05K0kWE.js
Sam Valladares f7530af3db
release: v2.2.1 — Windows embeddings fix + backfill safety + first-run guide (#105)
* 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>
2026-07-02 12:02:42 -05:00

3 lines
10 KiB
JavaScript

import"../chunks/Bzak7iHL.js";import{o as Qe}from"../chunks/TZu9D97Z.js";import{p as Be,s as M,d as Je,o as Ke,t as m,a as c,b as Ue,i as w,g as e,j as u,e as i,h as v,n as Xe,r as a,m as we,u as ye}from"../chunks/wpu9U-D0.js";import{d as Ye,a as j,s as b}from"../chunks/D8mhvFt8.js";import{i as k}from"../chunks/DKve45Wd.js";import{e as C,s as P,a as Ze}from"../chunks/60_R_Vbt.js";import{a as G,r as H}from"../chunks/P1-U_Xsj.js";import{s as et,a as tt}from"../chunks/ByYB047u.js";import{P as st}from"../chunks/BHDZZvku.js";import{I as at}from"../chunks/D7A-gG4Z.js";import{A as rt}from"../chunks/DcKTNC6e.js";import{t as ie}from"../chunks/CqMQEF-F.js";import{a as U}from"../chunks/CZfHMhLI.js";import{m as it}from"../chunks/BhIgFntf.js";var lt=u("<span><!> pending</span>"),ot=u('<button><span class="mode-label svelte-c1wbiz"> </span> <span class="mode-blurb svelte-c1wbiz"> </span></button>'),nt=u("<button> </button>"),dt=u('<p class="empty svelte-c1wbiz">Loading…</p>'),vt=u('<p class="empty svelte-c1wbiz"><!></p>'),ct=u('<div class="pr-sig-count svelte-c1wbiz"> </div>'),ut=u('<li><button><div class="pr-row-top svelte-c1wbiz"><span> </span> <span> </span></div> <div class="pr-title svelte-c1wbiz"> </div> <!></button></li>'),pt=u('<ul class="svelte-c1wbiz"></ul>'),_t=u('<div class="glass center-msg svelte-c1wbiz">Select a Memory PR to review the diff.</div>'),bt=u('<a class="run-link svelte-c1wbiz" title="View the run that produced this"><!> </a>'),ft=u('<span class="meta-pill svelte-c1wbiz"> </span>'),mt=u('<span class="meta-pill tag svelte-c1wbiz"> </span>'),gt=u('<pre class="diff-add svelte-c1wbiz"><span class="gutter svelte-c1wbiz">+</span> </pre>'),wt=u('<div class="signal svelte-c1wbiz"><code class="sig-code svelte-c1wbiz"> </code> <span class="sig-detail svelte-c1wbiz"> </span></div>'),yt=u('<div class="signals svelte-c1wbiz"><span class="signals-title svelte-c1wbiz">Why this opened</span> <!></div>'),zt=u('<div class="signal svelte-c1wbiz"><code class="sig-code svelte-c1wbiz"> </code> <span class="sig-detail svelte-c1wbiz"> </span></div>'),ht=u(`<div class="why-box svelte-c1wbiz"><span class="why-title svelte-c1wbiz">Agent's reasoning</span> <!></div>`),xt=u("<button> </button>"),kt=u('<div class="actions svelte-c1wbiz"></div>'),Pt=u('<span class="text-dim svelte-c1wbiz"> </span>'),$t=u('<div class="decided svelte-c1wbiz">Decided: <strong> </strong> <!></div>'),Mt=u('<div class="glass diff-card svelte-c1wbiz"><div class="diff-head svelte-c1wbiz"><span> </span> <span> </span> <!></div> <h2 class="diff-title svelte-c1wbiz"> </h2> <div class="diff-body svelte-c1wbiz"><div class="diff-meta svelte-c1wbiz"><!> <!></div> <!></div> <!> <!> <!></div>'),Rt=u(`<div class="mx-auto max-w-6xl px-5 py-6"><!> <div class="manifesto svelte-c1wbiz">Vestige <strong class="svelte-c1wbiz">auto-remembers ordinary context</strong>, but opens a <strong class="svelte-c1wbiz">Memory PR</strong> when the agent tries to <strong class="svelte-c1wbiz">rewrite its own brain</strong>. <span class="manifesto-note svelte-c1wbiz">Risky writes are <strong class="svelte-c1wbiz">quarantine-reviewed</strong>: recorded for audit, but held
out of retrieval until you decide — influence suspended, history preserved.</span></div> <div class="modes glass svelte-c1wbiz"></div> <div class="filters svelte-c1wbiz"><!> <button>all</button></div> <div class="layout svelte-c1wbiz"><aside class="pr-list glass svelte-c1wbiz"><!></aside> <section class="pr-detail svelte-c1wbiz"><!></section></div></div>`);function Gt(ze,he){Be(he,!0);const xe=()=>et(it,"$memoryPrEvents",ke),[ke,Pe]=tt();let O=M(Je([])),X=M(0),Y=M("risk_gated"),R=M("pending"),n=M(null),E=M(null),Z=M(!1),ee=M(null);const le=[{id:"fast",label:"Fast",blurb:"Every write auto-lands. No review."},{id:"risk_gated",label:"Risk-Gated",blurb:"Ordinary writes land; risky ones open a PR."},{id:"paranoid",label:"Paranoid",blurb:"Every write waits for approval."}],$e=["pending","promoted","merged","superseded","quarantined","forgotten"],oe={new_fact:"New fact",strengthened_fact:"Strengthened",contradiction_detected:"Contradiction",memory_superseded:"Supersede",edge_added:"New edge",node_decayed:"Decayed",dream_consolidation:"Dream merge"},Me=[{id:"promote",label:"Promote",cls:"promote"},{id:"merge",label:"Merge",cls:"merge"},{id:"supersede",label:"Supersede",cls:"supersede"},{id:"quarantine",label:"Quarantine",cls:"quarantine"},{id:"forget",label:"Forget",cls:"forget"},{id:"ask_agent_why",label:"Ask Agent Why",cls:"why"}];async function T(){w(Z,!0);try{const s=await U.memoryPrs.list(e(R)||void 0,100);w(O,s.prs,!0),w(X,s.pendingCount,!0),w(Y,s.mode,!0),e(n)&&w(n,e(O).find(t=>t.id===e(n).id)??null,!0)}finally{w(Z,!1)}}async function Re(s){var r;const t=await U.memoryPrs.setMode(s);w(Y,t.mode,!0),ie.push({type:"MemoryPromoted",title:"Review mode updated",body:`Memory PR gating is now ${(r=le.find(d=>d.id===s))==null?void 0:r.label}.`,color:"#6366f1",dwellMs:4e3})}async function Ae(s,t){w(ee,`${s.id}:${t}`);try{if(t==="ask_agent_why"){const r=await U.memoryPrs.act(s.id,t);w(E,r.why,!0),w(n,s,!0);return}await U.memoryPrs.act(s.id,t),ie.push({type:"MemoryPromoted",title:`PR ${t}d`,body:s.title,color:Ne(t),dwellMs:4500}),w(E,null),await T()}catch(r){ie.push({type:"MemoryDemoted",title:"Action failed",body:String(r),color:"#f43f5e",dwellMs:5e3})}finally{w(ee,null)}}function Ne(s){switch(s){case"promote":return"#10b981";case"merge":return"#6366f1";case"supersede":return"#38bdf8";case"quarantine":return"#f59e0b";case"forget":return"#f43f5e";default:return"#818cf8"}}function Se(s){w(n,s,!0),w(E,null)}Ke(()=>{xe().length&&T()}),Qe(T);function ne(s){var r;const t=(r=s.diff)==null?void 0:r.node;return(t==null?void 0:t.content)??""}function de(s){var r;const t=(r=s.diff)==null?void 0:r.node;return(t==null?void 0:t.nodeType)??""}function qe(s){var r;const t=(r=s.diff)==null?void 0:r.node;return(t==null?void 0:t.tags)??[]}var te=Rt(),ve=i(te);st(ve,{icon:"memorypr",title:"Memory PRs",subtitle:"Approve changes to the agent's brain like code.",accent:"synapse",children:(s,t)=>{var r=lt();let d;var y=i(r);rt(y,{get value(){return e(X)}}),Xe(),a(r),m(()=>d=P(r,1,"pending-badge svelte-c1wbiz",null,d,{has:e(X)>0})),c(s,r)},$$slots:{default:!0}});var ce=v(ve,2);G(ce,s=>{var t;return(t=H)==null?void 0:t(s)});var Q=v(ce,2);C(Q,21,()=>le,s=>s.id,(s,t)=>{var r=ot();let d;var y=i(r),f=i(y,!0);a(y);var z=v(y,2),A=i(z,!0);a(z),a(r),m(()=>{d=P(r,1,"mode svelte-c1wbiz",null,d,{on:e(Y)===e(t).id}),b(f,e(t).label),b(A,e(t).blurb)}),j("click",r,()=>Re(e(t).id)),c(s,r)}),a(Q),G(Q,s=>{var t;return(t=H)==null?void 0:t(s)});var B=v(Q,2),ue=i(B);C(ue,16,()=>$e,s=>s,(s,t)=>{var r=nt();let d;var y=i(r,!0);a(r),m(()=>{d=P(r,1,"filter svelte-c1wbiz",null,d,{on:e(R)===t}),b(y,t)}),j("click",r,()=>{w(R,t,!0),T()}),c(s,r)});var pe=v(ue,2);let _e;a(B),G(B,s=>{var t;return(t=H)==null?void 0:t(s)});var be=v(B,2),J=i(be),Ce=i(J);{var De=s=>{var t=dt();c(s,t)},Ee=s=>{var t=vt(),r=i(t);{var d=f=>{var z=we(`No pending Memory PRs. The brain is up to date — ordinary writes
are landing automatically.`);c(f,z)},y=f=>{var z=we();m(()=>b(z,`No ${(e(R)||"")??""} PRs.`)),c(f,z)};k(r,f=>{e(R)==="pending"?f(d):f(y,!1)})}a(t),c(s,t)},Te=s=>{var t=pt();C(t,21,()=>e(O),r=>r.id,(r,d)=>{var y=ut(),f=i(y);let z;var A=i(f),D=i(A),F=i(D,!0);a(D);var L=v(D,2),I=i(L,!0);a(L),a(A);var N=v(A,2),K=i(N,!0);a(N);var se=v(N,2);{var ae=$=>{var V=ct(),re=i(V);a(V),m(()=>b(re,`${e(d).signals.length??""} risk signal${e(d).signals.length>1?"s":""}`)),c($,V)};k(se,$=>{e(d).signals.length&&$(ae)})}a(f),a(y),m(()=>{var $;z=P(f,1,"pr-row svelte-c1wbiz",null,z,{active:(($=e(n))==null?void 0:$.id)===e(d).id}),P(D,1,`pr-kind kind-${e(d).kind??""}`,"svelte-c1wbiz"),b(F,oe[e(d).kind]??e(d).kind),P(L,1,`pr-status st-${e(d).status??""}`,"svelte-c1wbiz"),b(I,e(d).status),b(K,e(d).title)}),j("click",f,()=>Se(e(d))),c(r,y)}),a(t),c(s,t)};k(Ce,s=>{e(Z)?s(De):e(O).length===0?s(Ee,1):s(Te,!1)})}a(J),G(J,s=>{var t;return(t=H)==null?void 0:t(s)});var fe=v(J,2),Fe=i(fe);{var Le=s=>{var t=_t();c(s,t)},Ie=s=>{var t=Mt(),r=i(t),d=i(r),y=i(d,!0);a(d);var f=v(d,2),z=i(f,!0);a(f);var A=v(f,2);{var D=o=>{var l=bt();Ze(l,"href","/blackbox");var p=i(l);at(p,{name:"blackbox",size:13});var _=v(p);a(l),m(g=>b(_,` ${g??""}`),[()=>e(n).run_id.replace("run_","").slice(0,8)]),c(o,l)};k(A,o=>{e(n).run_id&&o(D)})}a(r);var F=v(r,2),L=i(F,!0);a(F);var I=v(F,2),N=i(I),K=i(N);{var se=o=>{var l=ft(),p=i(l);a(l),m(_=>b(p,`type: ${_??""}`),[()=>de(e(n))]),c(o,l)},ae=ye(()=>de(e(n)));k(K,o=>{e(ae)&&o(se)})}var $=v(K,2);C($,16,()=>qe(e(n)),o=>o,(o,l)=>{var p=mt(),_=i(p);a(p),m(()=>b(_,`#${l??""}`)),c(o,p)}),a(N);var V=v(N,2);{var re=o=>{var l=gt(),p=v(i(l),1,!0);a(l),m(_=>b(p,_),[()=>ne(e(n))]),c(o,l)},Ve=ye(()=>ne(e(n)));k(V,o=>{e(Ve)&&o(re)})}a(I);var me=v(I,2);{var We=o=>{var l=yt(),p=v(i(l),2);C(p,17,()=>e(n).signals,_=>_.code,(_,g)=>{var h=wt(),x=i(h),S=i(x,!0);a(x);var q=v(x,2),W=i(q,!0);a(q),a(h),m(()=>{b(S,e(g).code),b(W,e(g).detail)}),c(_,h)}),a(l),c(o,l)};k(me,o=>{e(n).signals.length&&o(We)})}var ge=v(me,2);{var je=o=>{var l=ht(),p=v(i(l),2);C(p,17,()=>e(E),_=>_.code,(_,g)=>{var h=zt(),x=i(h),S=i(x,!0);a(x);var q=v(x,2),W=i(q,!0);a(q),a(h),m(()=>{b(S,e(g).code),b(W,e(g).detail)}),c(_,h)}),a(l),c(o,l)};k(ge,o=>{e(E)&&o(je)})}var Ge=v(ge,2);{var He=o=>{var l=kt();C(l,21,()=>Me,p=>p.id,(p,_)=>{var g=xt(),h=i(g,!0);a(g),m(()=>{P(g,1,`action ${e(_).cls??""}`,"svelte-c1wbiz"),g.disabled=e(ee)===`${e(n).id}:${e(_).id}`,b(h,e(_).label)}),j("click",g,()=>Ae(e(n),e(_).id)),c(p,g)}),a(l),c(o,l)},Oe=o=>{var l=$t(),p=v(i(l)),_=i(p,!0);a(p);var g=v(p,2);{var h=x=>{var S=Pt(),q=i(S);a(S),m(W=>b(q,`· ${W??""}`),[()=>new Date(e(n).decided_at).toLocaleString()]),c(x,S)};k(g,x=>{e(n).decided_at&&x(h)})}a(l),m(()=>b(_,e(n).decision??e(n).status)),c(o,l)};k(Ge,o=>{e(n).status==="pending"?o(He):o(Oe,!1)})}a(t),G(t,o=>{var l;return(l=H)==null?void 0:l(o)}),m(()=>{P(d,1,`pr-kind kind-${e(n).kind??""}`,"svelte-c1wbiz"),b(y,oe[e(n).kind]??e(n).kind),P(f,1,`pr-status st-${e(n).status??""}`,"svelte-c1wbiz"),b(z,e(n).status),b(L,e(n).title)}),c(s,t)};k(Fe,s=>{e(n)?s(Ie,!1):s(Le)})}a(fe),a(be),a(te),m(()=>_e=P(pe,1,"filter svelte-c1wbiz",null,_e,{on:e(R)===""})),j("click",pe,()=>{w(R,""),T()}),c(ze,te),Ue(),Pe()}Ye(["click"]);export{Gt as component};