Skip to content

Add evolver plugin: self-evolving agent memory#110

Open
autogame-17 wants to merge 3 commits into
cursor:mainfrom
autogame-17:add-evolver-plugin
Open

Add evolver plugin: self-evolving agent memory#110
autogame-17 wants to merge 3 commits into
cursor:mainfrom
autogame-17:add-evolver-plugin

Conversation

@autogame-17
Copy link
Copy Markdown

@autogame-17 autogame-17 commented Jun 2, 2026

What

Adds evolver — a self-evolving agent-memory plugin — to the marketplace.

Evolver gives the agent a persistent, auditable evolution memory via session hooks:

  • sessionStart — injects a short summary of recent successful outcomes (scoped to the current workspace) as opening context, so the agent reuses what worked and avoids past failures.
  • afterFileEdit — detects improvement signals (errors, perf, capability gaps, test failures…) in edits.
  • stop — classifies the session's git diff and records the outcome to a local memory graph (or an EvoMap Hub if configured).

Plus a capability-evolver skill, an /evolve command, and a recall-and-record rule. In a non-git folder it surfaces a one-line notice that memory is inactive instead of failing silently.

It works with zero extra setup (local memory). Installing the optional @evomap/evolver npm package unlocks the full review-and-solidify pipeline; the hooks degrade gracefully when it's absent.

Structure

  • evolver/ — plugin dir: .cursor-plugin/plugin.json, hooks/ (+ hooks.json), skills/, commands/, rules/, README.md, LICENSE.
  • .cursor-plugin/marketplace.json — registers evolver.

License

MIT. The hook scripts are an original clean-room implementation (Node built-ins only, no external deps) written from the hook behavior spec — not derived from the GPL-licensed @evomap/evolver engine. Source repo: https://github.com/EvoMap/evolver-cursor-plugin

Validation

node scripts/validate-plugins.mjsAll plugins validated successfully. All hook scripts pass node --check; each reads stdin / writes JSON / exits 0 and never throws.


Note

Medium Risk
Hooks run automatically on every session and file edit, write persistent data under the user home directory, spawn git/curl subprocesses, and may POST outcomes when Hub env vars are set.

Overview
Adds the evolver Cursor plugin to the repo and registers it in .cursor-plugin/marketplace.json, so users can install persistent “evolution memory” for the agent.

The new evolver/ package wires three Node hooks (sessionStart, afterFileEdit, stop) that recall recent successful outcomes into session context, flag improvement signals in edited content, and on task end classify the git diff into signals/status/score and append a JSONL entry under ~/.evolver/... (or an existing project graph). Optional EvoMap Hub recording uses env credentials and curl. Supporting pieces include workspace-scoped recall filtering, a hardened workspace-id file under .evolver/, plus a skill, /evolve command, and rule documenting recall → work → record. Hooks are designed to always exit 0 with JSON and degrade when git or Hub is unavailable.

Reviewed by Cursor Bugbot for commit abae3d4. Bugbot is set up for automated code reviews on this repo. Configure here.

Adds the evolver plugin (MIT) to the marketplace: session hooks that recall
what worked on past tasks, detect improvement signals while editing, and record
outcomes at session end, scoped per workspace. Degrades gracefully without any
extra install; the optional @evomap/evolver npm package unlocks the full
review-and-solidify pipeline.

- evolver/: plugin dir (.cursor-plugin/plugin.json, hooks, skills, command, rule)
- .cursor-plugin/marketplace.json: register evolver

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 5 potential issues.

Fix All in Cursor

Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.

Reviewed by Cursor Bugbot for commit 83d881c. Configure here.

Comment thread evolver/hooks/session-end.js
Comment thread evolver/hooks/_paths.js
Comment thread evolver/hooks/session-start.js Outdated
Comment thread evolver/hooks/session-end.js Outdated
Comment thread evolver/hooks/session-start.js
autogame-17 added a commit to EvoMap/evolver-cursor-plugin that referenced this pull request Jun 2, 2026
- session-end: watchdog timeout now runs proceed() instead of emitting {}
  bare, so a session outcome is no longer silently dropped when stdin stays
  open past the timeout (was a real data-loss path).
- session-start: gate main() on stdin end/2s-watchdog with an emit-once guard,
  consistent with the other hooks; no behavior change but no pipe race.
- session-start: belongsToWorkspace no longer blanket-includes foreign
  workspace_id-tagged entries when our own id can't be resolved — falls back to
  cwd matching, so a shared user-level graph can't leak another project's recall.
- _paths: findMemoryGraph(projectDir) now resolves a project-local
  <projectDir>/memory/evolution/memory_graph.jsonl when it exists (matching the
  docs), before the user-level fallback; both hooks pass their projectDir.
- README/SKILL: corrected the claim that hooks auto-detect/invoke the installed
  engine — they don't; @evomap/evolver gives you the CLI (evolver run/review)
  to run the pipeline separately, fed by the memory the hooks record. Also fixed
  stale hook filenames in the README table and the bundling description.

Verified: node --check all hooks; watchdog path now records; project-local
path resolution + user-level fallback; official validate-plugins.mjs passes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
autogame-17 and others added 2 commits June 2, 2026 10:54
- session-end watchdog now records on timeout (was dropping the outcome)
- session-start gates on stdin drain; workspace recall no longer leaks
  foreign workspaces when our id can't be resolved (cwd fallback)
- findMemoryGraph resolves project-local graph before user-level
- README/SKILL: hooks don't auto-invoke the engine; corrected claims + stale
  filenames

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant