Add evolver plugin: self-evolving agent memory#110
Open
autogame-17 wants to merge 3 commits into
Open
Conversation
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>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 5 potential issues.
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.
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>
- 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

What
Adds evolver — a self-evolving agent-memory plugin — to the marketplace.
Evolver gives the agent a persistent, auditable evolution memory via session hooks:
Plus a
capability-evolverskill, an/evolvecommand, 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/evolvernpm 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— registersevolver.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/evolverengine. Source repo: https://github.com/EvoMap/evolver-cursor-pluginValidation
node scripts/validate-plugins.mjs→ All plugins validated successfully. All hook scripts passnode --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 andcurl. Supporting pieces include workspace-scoped recall filtering, a hardenedworkspace-idfile under.evolver/, plus a skill,/evolvecommand, 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.