Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,27 @@ All notable changes to MeMesh are documented here.
Doctor (broken install) > Onboarding (empty library) > Insights
(pending proposals) — showing exactly one; the next in line surfaces
the moment the winner is dismissed or its condition clears.
- **Recall accounting becomes honest: explicit citations replace literal
matching.** "Was an injected memory actually used?" used to be answered
by substring-matching names and titles against the transcript — measured
across ten real sessions and three matching strategies, that had **zero
signal**: nobody restates a memory's title in prose, so every injected
memory drifted toward an unearned `recall_miss`, and misses feed the
ranking's impact factor. Now every injected line carries a citation
handle (`[mem:42]`, on both the session-start injection and the
`briefing` tool), one instruction line asks the agent to cite the
memories it genuinely uses, and the Stop hook credits `recall_hits`
from those markers alone — after structurally stripping the hook's own
echoes, so the injection can never cite itself. The markers are
self-reported and therefore undercount, never overcount; on that
asymmetry `recall_misses` is **frozen** until measured compliance (two
new `memesh_metadata` counters track it) justifies reading silence as
non-use, and an accounting-mode stamp keeps the two eras of numbers
apart. The injected-set record now also includes the lessons pool,
which was never accounted at all. Measured on the same database
snapshot, the handles and the instruction cost +70 tokens per session
start (695 → 765) — the price of measuring injection ROI instead of
guessing it.

## [4.6.0] — 2026-08-16

Expand Down
2 changes: 1 addition & 1 deletion dist/core/briefing.d.ts.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions dist/core/briefing.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/core/briefing.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions dist/core/work-topology.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@ export declare function layerOf(type: string): TopologyLayer;
export interface TopologyEntity {
name: string;
type: string;
id?: number;
title?: string | null;
snippet?: string | null;
signalScore?: number | null;
foreign?: boolean;
}
export declare function topologyLine(entity: TopologyEntity, maxChars: number): string;
export declare function extractCitedMemoryIds(text: string): Set<number>;
export interface TopologySection {
heading: string;
entities: TopologyEntity[];
Expand Down
2 changes: 1 addition & 1 deletion dist/core/work-topology.d.ts.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 10 additions & 1 deletion dist/core/work-topology.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading