Skip to content

Commit 7b54496

Browse files
committed
fix session-end duplicate recording
1 parent c628eaa commit 7b54496

5 files changed

Lines changed: 259 additions & 62 deletions

File tree

.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "evolver",
33
"displayName": "Evolver — Self-Evolving Agent Memory",
44
"description": "Gives the agent a persistent, auditable evolution memory plus a bridge to the EvoMap Proxy mailbox. Recalls what worked at session start, detects improvement signals while you edit, records outcomes when a task ends, and exposes the network's genes/capsules as MCP tools — powered by the Genome Evolution Protocol (GEP). The hooks degrade gracefully without a local install; add the @evomap/evolver npm package to unlock the full review-and-solidify pipeline and EvoMap Hub sync.",
5-
"version": "0.2.1",
5+
"version": "0.2.2",
66
"author": {
77
"name": "EvoMap",
88
"email": "team@evomap.ai"

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,18 @@
33
All notable changes to the Evolver Claude Code plugin are documented here.
44
This project adheres to [Semantic Versioning](https://semver.org/).
55

6+
## [0.2.2] — 2026-06-25
7+
8+
### Fixed
9+
- `Stop` outcome recording now inspects only current working-tree and staged
10+
changes, not `HEAD~1`, and suppresses duplicate records for the same session
11+
or unchanged diff.
12+
- Optional Hub recording now uses Node `fetch`, so API keys are not exposed in
13+
`curl` process arguments.
14+
- The MCP bridge now only sends the Proxy bearer token to loopback/local
15+
`http(s)` URLs from `~/.evolver/settings.json`; invalid or non-local URLs
16+
fall back to the default local Proxy address without a token.
17+
618
## [0.2.1] — 2026-06-07
719

820
### Changed

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Three hooks run automatically — you don't invoke them:
2727
|---|---|---|
2828
| `session-start.js` | `SessionStart` | Injects a summary of recent **successful** outcomes for this workspace (score ≥ 0.5, < 7 days, max 3) as context. |
2929
| `signal-detect.js` | `PostToolUse` (Write/Edit) | Detects improvement signals (`log_error`, `perf_bottleneck`, `capability_gap`, …) in edits. |
30-
| `session-end.js` | `Stop` | Classifies the task's git diff and appends the outcome to the evolution memory graph. |
30+
| `session-end.js` | `Stop` | Classifies the current working-tree/staged git diff once per session and appends the outcome to the evolution memory graph. |
3131

3232
Memory is **workspace-scoped** (via a forge-resistant `.evolver/workspace-id`),
3333
so one project's outcomes never leak into another's session.
@@ -97,7 +97,9 @@ the memory the pipeline consumes.
9797

9898
### EvoMap Hub (community strategies)
9999

100-
To record outcomes to the Hub from the `Stop` hook, set credentials:
100+
To record outcomes to the Hub from the `Stop` hook, set credentials. The hook
101+
uses Node's built-in `fetch`, so the API key is not exposed in process
102+
arguments:
101103

102104
```bash
103105
export EVOMAP_HUB_URL="https://evomap.ai"

0 commit comments

Comments
 (0)