mirror of
https://github.com/samvallad33/vestige.git
synced 2026-04-24 16:26:22 +02:00
chore(release): v2.0.6 "Composer" — rebuild + version bump + CHANGELOG
Some checks are pending
CI / Test (macos-latest) (push) Waiting to run
CI / Test (ubuntu-latest) (push) Waiting to run
CI / Release Build (aarch64-apple-darwin) (push) Blocked by required conditions
CI / Release Build (x86_64-unknown-linux-gnu) (push) Blocked by required conditions
Test Suite / Unit Tests (push) Waiting to run
Test Suite / MCP E2E Tests (push) Waiting to run
Test Suite / User Journey Tests (push) Blocked by required conditions
Test Suite / Dashboard Build (push) Waiting to run
Test Suite / Code Coverage (push) Waiting to run
Some checks are pending
CI / Test (macos-latest) (push) Waiting to run
CI / Test (ubuntu-latest) (push) Waiting to run
CI / Release Build (aarch64-apple-darwin) (push) Blocked by required conditions
CI / Release Build (x86_64-unknown-linux-gnu) (push) Blocked by required conditions
Test Suite / Unit Tests (push) Waiting to run
Test Suite / MCP E2E Tests (push) Waiting to run
Test Suite / User Journey Tests (push) Blocked by required conditions
Test Suite / Dashboard Build (push) Waiting to run
Test Suite / Code Coverage (push) Waiting to run
Bumps vestige-core + vestige-mcp + @vestige/dashboard + vestige-mcp-server + @vestige/init from 2.0.5 → 2.0.6, regenerates the Cargo.lock, rebuilds the dashboard with the new events.ts handlers + intentions page fix baked in, and writes the v2.0.6 "Composer" entry to CHANGELOG.md. Release contents: - fix(dashboard): intentions page priority + trigger rendering (commit 9df63de) - feat(dashboard): wire 6 graph event handlers — suppress, unsuppress, Rac1 cascade, Connected, ConsolidationStarted, ImportanceScored (commit f085cfd) - feat(mcp): opt-in VESTIGE_SYSTEM_PROMPT_MODE=full composition mandate (commit 7d7a7c2) - docs(readme): v2.0.6 header + Intel Mac / Windows build-from-source honesty (commit ede0a02) Pre-push gates green: cargo test --workspace --release, cargo clippy --all-targets -D warnings, svelte-check (580 files 0 errors), vitest (171/171). No regressions of merged PRs #18/20/22/24/26/28/29/30/32/33.
This commit is contained in:
parent
6be374d115
commit
6c24a0ca69
62 changed files with 99 additions and 57 deletions
39
CHANGELOG.md
39
CHANGELOG.md
|
|
@ -5,6 +5,45 @@ All notable changes to Vestige will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [2.0.6] - 2026-04-18 — "Composer"
|
||||
|
||||
Polish release aimed at new-user happiness. v2.0.5's cognitive stack was already shipping; v2.0.6 makes it *feel* alive in the dashboard and stays out of your way on the prompt side.
|
||||
|
||||
### Added
|
||||
|
||||
#### Dashboard visual feedback for six live events
|
||||
- `MemorySuppressed` → violet implosion + compounding pulse whose intensity scales with `suppression_count` (Anderson 2025 SIF visualised).
|
||||
- `MemoryUnsuppressed` → rainbow burst + green pulse when a memory is brought back within the 24h labile window.
|
||||
- `Rac1CascadeSwept` → violet wave across a random neighbour sample while the background Rac1 worker fades co-activated memories.
|
||||
- `Connected` → gentle cyan ripple on WebSocket handshake.
|
||||
- `ConsolidationStarted` → subtle amber pulses across a 20-node sample during the FSRS-6 decay cycle (matches feed-entry colour).
|
||||
- `ImportanceScored` → magenta pulse on the scored node with intensity proportional to composite score.
|
||||
|
||||
Before v2.0.6 all six events fired against a silent graph. Users perceived the dashboard as broken or unresponsive during real cognitive work.
|
||||
|
||||
#### `VESTIGE_SYSTEM_PROMPT_MODE` environment variable
|
||||
- `minimal` (default) — 3-sentence MCP `instructions` string telling the client how to use Vestige and how to react to explicit feedback. Safe for every audience, every client, every use case.
|
||||
- `full` — opt in to the composition mandate (Composing / Never-composed / Recommendation response shape + FSRS-trust blocking phrase). Useful for high-stakes decision workflows; misfires on trivial retrievals, which is why it is not the default.
|
||||
|
||||
Advertised in `vestige-mcp --help` alongside `VESTIGE_DASHBOARD_ENABLED`.
|
||||
|
||||
### Fixed
|
||||
|
||||
#### Dashboard intentions page
|
||||
- `IntentionItem.priority` was typed as `string` but the API returns the numeric FSRS-style scale (1=low, 2=normal, 3=high, 4=critical). Every intention rendered as "normal priority" regardless of its real value. Now uses a `PRIORITY_LABELS` map keyed by the numeric scale.
|
||||
- `trigger_value` was typed as a plain string but the API returns `trigger_data` as a JSON-encoded payload (e.g. `{"type":"time","at":"..."}`). The UI surfaced raw JSON for every non-manual trigger. A new `summarizeTrigger()` helper parses `trigger_data` and picks the most human-readable field — `condition` / `topic` / formatted `at` / `in_minutes` / `codebase/filePattern` — before truncating for display. Closes the loop on PR #26's snake_case TriggerSpec fix at the UI layer.
|
||||
|
||||
### Docs
|
||||
|
||||
- `README.md` — new "What's New in v2.0.6" header up top; v2.0.5 block strengthened with explicit contrast against Ebbinghaus 1885 passive decay and Anderson 1994 retrieval-induced forgetting; new "Forgetting" row in the RAG-vs-Vestige comparison table.
|
||||
- Intel-Mac and Windows install steps replaced with a working `cargo build --release -p vestige-mcp` snippet. The pre-built binaries for those targets are blocked on upstream toolchain gaps (`ort-sys` lacks Intel-Mac prebuilts in the 2.0.0-rc.11 release pinned by `fastembed 5.13.2`; `usearch 2.24.0` hit a Windows MSVC compile break tracked as [usearch#746](https://github.com/unum-cloud/usearch/issues/746)).
|
||||
|
||||
### Safety
|
||||
|
||||
No regressions of merged contributor PRs — v2.0.6 only touches regions that are non-overlapping with #20 (resource URI strip), #24 (codex integration docs), #26 (snake_case TriggerSpec), #28 (deep_reference query relevance), #29 (older glibc feature flags), #30 (`VESTIGE_DASHBOARD_ENABLED`), #32 (dream eviction), and #33 (keyword-first search).
|
||||
|
||||
---
|
||||
|
||||
## [2.0.5] - 2026-04-14 — "Intentional Amnesia"
|
||||
|
||||
Every AI memory system stores too much. Vestige now treats forgetting as a first-class, neuroscientifically-grounded primitive. This release adds **active forgetting** — top-down inhibitory control over memory retrieval, based on two 2025 papers that no other AI memory system has implemented.
|
||||
|
|
|
|||
4
Cargo.lock
generated
4
Cargo.lock
generated
|
|
@ -4531,7 +4531,7 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
|
|||
|
||||
[[package]]
|
||||
name = "vestige-core"
|
||||
version = "2.0.5"
|
||||
version = "2.0.6"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"criterion",
|
||||
|
|
@ -4566,7 +4566,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "vestige-mcp"
|
||||
version = "2.0.5"
|
||||
version = "2.0.6"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
|
|
|
|||
1
apps/dashboard/build/_app/immutable/chunks/BAlzCWFX.js
Normal file
1
apps/dashboard/build/_app/immutable/chunks/BAlzCWFX.js
Normal file
File diff suppressed because one or more lines are too long
BIN
apps/dashboard/build/_app/immutable/chunks/BAlzCWFX.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/BAlzCWFX.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/chunks/BAlzCWFX.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/BAlzCWFX.js.gz
Normal file
Binary file not shown.
1
apps/dashboard/build/_app/immutable/chunks/D1EqE5Bq.js
Normal file
1
apps/dashboard/build/_app/immutable/chunks/D1EqE5Bq.js
Normal file
File diff suppressed because one or more lines are too long
BIN
apps/dashboard/build/_app/immutable/chunks/D1EqE5Bq.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/D1EqE5Bq.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/chunks/D1EqE5Bq.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/chunks/D1EqE5Bq.js.gz
Normal file
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
BIN
apps/dashboard/build/_app/immutable/entry/app.Bvvx1UVC.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/entry/app.Bvvx1UVC.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/entry/app.Bvvx1UVC.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/entry/app.Bvvx1UVC.js.gz
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1 +0,0 @@
|
|||
import{a as r}from"../chunks/DwA4GIGc.js";import{w as t}from"../chunks/urMNLRPv.js";export{t as load_css,r as start};
|
||||
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1 @@
|
|||
import{a as r}from"../chunks/D1EqE5Bq.js";import{w as t}from"../chunks/BAlzCWFX.js";export{t as load_css,r as start};
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
‹:€import{a as r}from"../chunks/D1EqE5Bq.js";import{w as t}from"../chunks/BAlzCWFX.js";export{t as load_css,r as start};
|
||||
|
||||
BIN
apps/dashboard/build/_app/immutable/entry/start.D1AvCvNH.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/entry/start.D1AvCvNH.js.gz
Normal file
Binary file not shown.
File diff suppressed because one or more lines are too long
BIN
apps/dashboard/build/_app/immutable/nodes/0.CfGq9762.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/0.CfGq9762.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/0.CfGq9762.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/0.CfGq9762.js.gz
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1 +1 @@
|
|||
import"../chunks/Bzak7iHL.js";import"../chunks/D_N1HvA5.js";import{p as h,f as g,t as d,a as l,d as v,e as s,r as o}from"../chunks/nyjtQ1Ok.js";import{s as p}from"../chunks/C4L78yoI.js";import{a as _,f as x}from"../chunks/B0IenmM-.js";import{i as $}from"../chunks/Ck7jSX2P.js";import{p as m}from"../chunks/urMNLRPv.js";import{s as k}from"../chunks/DwA4GIGc.js";const b={get error(){return m.error},get status(){return m.status}};k.updated.check;const i=b;var E=x("<h1> </h1> <p> </p>",1);function D(f,n){h(n,!1),$();var t=E(),r=g(t),c=s(r,!0);o(r);var a=v(r,2),u=s(a,!0);o(a),d(()=>{var e;p(c,i.status),p(u,(e=i.error)==null?void 0:e.message)}),_(f,t),l()}export{D as component};
|
||||
import"../chunks/Bzak7iHL.js";import"../chunks/D_N1HvA5.js";import{p as h,f as g,t as d,a as l,d as v,e as s,r as o}from"../chunks/nyjtQ1Ok.js";import{s as p}from"../chunks/C4L78yoI.js";import{a as _,f as x}from"../chunks/B0IenmM-.js";import{i as $}from"../chunks/Ck7jSX2P.js";import{p as m}from"../chunks/BAlzCWFX.js";import{s as k}from"../chunks/D1EqE5Bq.js";const b={get error(){return m.error},get status(){return m.status}};k.updated.check;const i=b;var E=x("<h1> </h1> <p> </p>",1);function D(f,n){h(n,!1),$();var t=E(),r=g(t),c=s(r,!0);o(r);var a=v(r,2),u=s(a,!0);o(a),d(()=>{var e;p(c,i.status),p(u,(e=i.error)==null?void 0:e.message)}),_(f,t),l()}export{D as component};
|
||||
BIN
apps/dashboard/build/_app/immutable/nodes/1.BD13-5Fq.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/1.BD13-5Fq.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/1.BD13-5Fq.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/1.BD13-5Fq.js.gz
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1 +1 @@
|
|||
import"../chunks/Bzak7iHL.js";import"../chunks/D_N1HvA5.js";import{o as p}from"../chunks/DeTA_5mp.js";import{p as r,a as t}from"../chunks/nyjtQ1Ok.js";import{i as a}from"../chunks/Ck7jSX2P.js";import{g as m}from"../chunks/DwA4GIGc.js";function u(i,o){r(o,!1),p(()=>m("/graph",{replaceState:!0})),a(),t()}export{u as component};
|
||||
import"../chunks/Bzak7iHL.js";import"../chunks/D_N1HvA5.js";import{o as p}from"../chunks/DeTA_5mp.js";import{p as r,a as t}from"../chunks/nyjtQ1Ok.js";import{i as a}from"../chunks/Ck7jSX2P.js";import{g as m}from"../chunks/D1EqE5Bq.js";function u(i,o){r(o,!1),p(()=>m("/graph",{replaceState:!0})),a(),t()}export{u as component};
|
||||
|
|
@ -0,0 +1 @@
|
|||
G@ŒÔ^1óaRƒÛì”K7Ó†˜W<CB9C>“-Ï5°Ì²âºkÀí&¾›M€1LwÈì8£2&]),üT«5NLÍ«-SFë)ûsUõÀ(¯®©<C2AE>}¸pdÎx¸]È^µ’ð^Pv¹e&hýÃLTÿѸiPZÆJ멯ó‰5Ⱥ±q6–N:ñ@¥l¡Ì…V™h ²
!šL
j¿ß(gûÑϦö!Q/*3<>Ãç,„XANN#
|
||||
BIN
apps/dashboard/build/_app/immutable/nodes/3.BjemrBET.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/3.BjemrBET.js.gz
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
BIN
apps/dashboard/build/_app/immutable/nodes/6.FZZPojTg.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/6.FZZPojTg.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/6.FZZPojTg.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/6.FZZPojTg.js.gz
Normal file
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
1
apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js
Normal file
1
apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js
Normal file
File diff suppressed because one or more lines are too long
BIN
apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js.br
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js.br
Normal file
Binary file not shown.
BIN
apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js.gz
Normal file
BIN
apps/dashboard/build/_app/immutable/nodes/7.DgTyksQL.js.gz
Normal file
Binary file not shown.
|
|
@ -1 +1 @@
|
|||
{"version":"1776204719942"}
|
||||
{"version":"1776554482425"}
|
||||
Binary file not shown.
Binary file not shown.
|
|
@ -11,13 +11,13 @@
|
|||
<link rel="icon" type="image/svg+xml" href="/dashboard/favicon.svg" />
|
||||
<link rel="apple-touch-icon" href="/dashboard/favicon.svg" />
|
||||
<link rel="manifest" href="/dashboard/manifest.json" />
|
||||
<link href="/dashboard/_app/immutable/entry/start.CM2cmm4m.js" rel="modulepreload">
|
||||
<link href="/dashboard/_app/immutable/chunks/DwA4GIGc.js" rel="modulepreload">
|
||||
<link href="/dashboard/_app/immutable/entry/start.D1AvCvNH.js" rel="modulepreload">
|
||||
<link href="/dashboard/_app/immutable/chunks/D1EqE5Bq.js" rel="modulepreload">
|
||||
<link href="/dashboard/_app/immutable/chunks/nyjtQ1Ok.js" rel="modulepreload">
|
||||
<link href="/dashboard/_app/immutable/chunks/DAj0p1rI.js" rel="modulepreload">
|
||||
<link href="/dashboard/_app/immutable/chunks/urMNLRPv.js" rel="modulepreload">
|
||||
<link href="/dashboard/_app/immutable/chunks/BAlzCWFX.js" rel="modulepreload">
|
||||
<link href="/dashboard/_app/immutable/chunks/DeTA_5mp.js" rel="modulepreload">
|
||||
<link href="/dashboard/_app/immutable/entry/app.DzQ7RYYG.js" rel="modulepreload">
|
||||
<link href="/dashboard/_app/immutable/entry/app.Bvvx1UVC.js" rel="modulepreload">
|
||||
<link href="/dashboard/_app/immutable/chunks/C4L78yoI.js" rel="modulepreload">
|
||||
<link href="/dashboard/_app/immutable/chunks/B0IenmM-.js" rel="modulepreload">
|
||||
<link href="/dashboard/_app/immutable/chunks/Bzak7iHL.js" rel="modulepreload">
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
<div style="display: contents">
|
||||
<script>
|
||||
{
|
||||
__sveltekit_1ysfr3o = {
|
||||
__sveltekit_k7ei3f = {
|
||||
base: "/dashboard",
|
||||
assets: "/dashboard"
|
||||
};
|
||||
|
|
@ -41,8 +41,8 @@
|
|||
const element = document.currentScript.parentElement;
|
||||
|
||||
Promise.all([
|
||||
import("/dashboard/_app/immutable/entry/start.CM2cmm4m.js"),
|
||||
import("/dashboard/_app/immutable/entry/app.DzQ7RYYG.js")
|
||||
import("/dashboard/_app/immutable/entry/start.D1AvCvNH.js"),
|
||||
import("/dashboard/_app/immutable/entry/app.Bvvx1UVC.js")
|
||||
]).then(([kit, app]) => {
|
||||
kit.start(app, element);
|
||||
});
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@vestige/dashboard",
|
||||
"version": "2.0.5",
|
||||
"version": "2.0.6",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "vestige-core"
|
||||
version = "2.0.5"
|
||||
version = "2.0.6"
|
||||
edition = "2024"
|
||||
rust-version = "1.91"
|
||||
authors = ["Vestige Team"]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "vestige-mcp"
|
||||
version = "2.0.5"
|
||||
version = "2.0.6"
|
||||
edition = "2024"
|
||||
description = "Cognitive memory MCP server for Claude - FSRS-6, spreading activation, synaptic tagging, 3D dashboard, and 130 years of memory research"
|
||||
authors = ["samvallad33"]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@vestige/init",
|
||||
"version": "2.0.5",
|
||||
"version": "2.0.6",
|
||||
"description": "Give your AI a brain in 10 seconds — zero-config Vestige v2.0 installer with 3D dashboard",
|
||||
"bin": {
|
||||
"vestige-init": "bin/init.js"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "vestige-mcp-server",
|
||||
"version": "2.0.5",
|
||||
"version": "2.0.6",
|
||||
"description": "Vestige MCP Server — Cognitive memory for AI with FSRS-6, 3D dashboard, and 29 brain modules",
|
||||
"bin": {
|
||||
"vestige-mcp": "bin/vestige-mcp.js",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue