Skip to content

Releases: Foxfire1st/agents-remember

MCP 3.0.0rc6 — projection tick scaling

Choose a tag to compare

@Foxfire1st Foxfire1st released this 13 Jul 10:37
b120efb

Performance release: removes the observer dashboard daemon's per-tick O(contracts × tree × readers) filesystem storm.

Highlights

  • Walk-free load_contract — leaf-id normalization moved to write time plus an explicit idempotent heal-leaf-ids migration sweep; a contract load no longer walks the whole tasks tree.
  • One shared contract snapshot per projection tick — the three per-tick readers share a single enumeration, backed by a stat-identity parse cache across ticks.
  • Change-driven projection with idle heartbeat — the projector wakes on debounced coordination-input changes or a 15s heartbeat instead of unconditionally every second; the watch set never descends into worktree/container runtime, and any watch failure degrades loudly to fixed-interval ticking.

Impact

  • Observer tick read cost ~750 ms → ~9 ms.
  • Idle re-projections ~20 / 20s → ~3 / 20s; change latency ~1.2 s.
  • Steady daemon CPU ~160% → ~7–22%.

Full mcp suite 2126 passed; repository quality wrapper green; verified against a live tree with provider containers running.

Agents Remember MCP 3.0.0rc4

Pre-release

Choose a tag to compare

@Foxfire1st Foxfire1st released this 10 Jul 20:37
0d5ce67

Agents Remember 3.0.0rc4 ships the completed Hotfix 1 and Hotfix 2 orchestration stack.

Highlights:

  • Durable expectation rows, acknowledgement semantics, supervisor sweeps, bounded redelivery, escalation, and reclamation.
  • Settings-owned spawn dispatch with harness-log acceptance and duplicate-paste prevention.
  • Leaf-role seat bindings, pair-aware attach and retirement, and landed chat archives.
  • Sprint-local global chat hierarchy, robust task-document reading, and an adjustable persisted Chats sidebar.
  • Strict quality-gate repairs and the final consumed-inbox resurrection race correction.

The final race fix makes consumed inbox state monotonic: a concurrent in-flight delivery may append stale physical evidence, but cannot return the row to pending or redelivery state.

Validation:

  • GitHub dashboard rail passed.
  • Python 3.11, 3.12, and 3.13 quality wrappers passed.
  • 2,019 tests collected with no failures.
  • Strict CRAP threshold passed.
  • PyPI trusted publishing completed successfully.
  • Fresh uvx resolution of agents-remember-mcp==3.0.0rc4 passed.

agents-remember-mcp 3.0.0rc3 — agent orchestration v1

Choose a tag to compare

@Foxfire1st Foxfire1st released this 07 Jul 02:28

agents-remember-mcp 3.0.0rc3 — agent orchestration v1

The 260703_agent-orchestration series (PR #100): the v1 multi-agent orchestration system, built and adversarially reviewed through the very loops it defines.

Orchestration

  • Three-party loop doctrine: owner → builder → adversarial reviewer at leaf/master/portfolio level; complexity tiers; hard 3-round cap with a convergence rule; criteria catalogs with a promotion ratchet (two criteria reached standing during this series' own reviews); the spawn-first STRATEGIST as mandatory sprint planner with an eight-phase, tool-verified method.
  • Two-layer agentic settings (system/settings.json, global + repo-local): leaf-key deep merge, fail-loud on unknown keys and on JSON null family wipes, gateDelegation boot authority, per-level role knobs (rolesPerLevel).
  • Spawn knob application + open harness registry: per-harness effort/model delivery (argv flags + session-vehicle commands, e.g. Claude's /effort tiers), free-form escape hatch (launchArgs / sessionCommands / promptKeywords), unknown harnesses teachable via settings instead of crashing. New manual: docs/reference/harnesses.md.
  • worktree_start reconciliation recovery: an unmapped code base commit can now be reconciled into the memory ledger the same way closeout syncs record it; recovery blocks advertise only consumable choices.

Mission control (dashboard)

  • Flat long-session memory: stable-form SSE deltas, ETag/304 on /api/state, identity-preserving change-gated store, local age advance — a 1.6 GB OOM tab is now flat ~150 MB.
  • Notes reader v2: coordination notes (design records, reports, verdicts) on the file-viewer chrome — rail of the master's notes, DualPane content, deep links from task docs; truncation banner on oversize notes.
  • Visual command hierarchy: orchestration/master/leaf rank insignia (chevron tiers) and hierarchy-grouped chats.
  • Tasks-tab truth rules: rows render only for physically existing worktrees, one row per enclosure; vestigial wait-loop-era ask affordances removed.

Fixes & hardening (pre-release ten-lens review, all with failing-first regressions)

  • task_doc remove_subtask no longer reports a false error after a destructive success (response contract fixed).
  • UTF-8 codepoint-boundary truncation in notes/files serving (no more "empty binary" misreads of large text).
  • effortSessionCommand template validation at settings load (loud refusals instead of dispatch-time KeyError).
  • Inbox delivery echo-confirmation seam pinned by regression (delivered vs unconfirmed).

Verification

Every leaf landed through a full loop (builder report → adversarial opus review → owner folds → delta-verify) with onboarding body gates at closeout. Final: mcp pytest 1628 passed / 3 skipped; dashboard 435 passed; ruff, pyright, build, sync checks clean.

Install: uv tool install 'agents-remember-mcp==3.0.0rc3' · one-shot: uvx --from 'agents-remember-mcp==3.0.0rc3' agents-remember dashboard

Dashboard CLI ergonomics: flag-free, daemonized, supervised (rc2)

Choose a tag to compare

@Foxfire1st Foxfire1st released this 03 Jul 09:52
38c5631

Agents Remember 3.0.0rc2 (pre-release)

Running the mission-control dashboard is now effortless. This release candidate carries the dashboard-CLI-ergonomics series: agents-remember dashboard finds its trusted settings on its own, survives the terminal that started it, and can be supervised by the MCP server itself — plus install docs that make the unpinned uv tool install the first-class citizen. The architecture is unchanged from 3.0.0rc1; the rc caveat continues to cover the still-settling cockpit surface ahead of 3.0.0 final.

Highlights

  • Config auto-discovery: --config is optional across the dashboard CLI — the nearest .claude/mcp/agents-remember-settings.json above the working directory wins, falling back to the --config recorded in an .mcp.json agents-remember registration. A semantic usability probe keeps the repository's tracked placeholder template from ever shadowing real settings, so cd ~/Projects && agents-remember dashboard just works — even from inside a source checkout.
  • Daemon mode: agents-remember dashboard --daemon detaches a supervised dashboard that outlives the terminal (--status / --stop manage it). State is an atomic daemon.json plus a per-spawn-rotated log under <coordinationRoot>/logs/dashboard/; liveness is identity-checked (/proc cmdline marker) so pid reuse never resurrects a foreign process; stop is TERM → bounded wait → KILL.
  • MCP auto-start: the new fail-loud "dashboard": {"autoStart": true, "port": 8765} settings key makes every agents-remember-mcp boot ensure the daemon — adopt a healthy one, spawn a missing one, restart on version mismatch so an upgrade reaches the cockpit on the next session. Race-safe across concurrent boots (one flock; losers skip) and it never blocks or breaks the stdio handshake.
  • Install docs: uv tool install agents-remember-mcp + agents-remember dashboard is the documented first-class path (the README's new "Run The Dashboard" section and the PyPI page's Install And Run); version pinning moves to the debugging/repro path, with one honest pre-release note for the rc period.

Upgrade notes

  • Pre-releases are skipped by @latest/default resolution: install the CLI with uv tool install --prerelease allow agents-remember-mcp, and pin the MCP server registration explicitly — uvx agents-remember-mcp==3.0.0rc2 --config <settings.json>.
  • Dashboard from anywhere under your workspace: agents-remember dashboard (no flags), or one-shot without installing: uvx --from 'agents-remember-mcp==3.0.0rc2' agents-remember dashboard.
  • Opt into supervision by adding "dashboard": {"autoStart": true} to your trusted MCP settings JSON; the next harness/MCP start brings the cockpit up and keeps it current.

Mission Control: the 3.0 cockpit ships from the MCP (rc1)

Choose a tag to compare

@Foxfire1st Foxfire1st released this 03 Jul 06:32
ad30dd3

Agents Remember 3.0.0rc1 (pre-release)

The 3.0 arc, shipped: the working session is now an observable, steerable entity, and the mission-control browser dashboard is served directly from the MCP packageagents-remember dashboard starts the cockpit against your trusted settings. This release candidate spans everything since 2.9.3: the browser-dashboard substrate (#95), the post-landing task-system cleanup (#96), and the operations-integration series (#98). The rc tag means the cockpit surface is still settling toward the final 3.0.0 contract; the architecture beneath it is stable.

Highlights

  • Mission-control cockpit (#2, #43): the Operations task tree with live lifecycle/phase/gate state, task-document reader, event river, engine room (provider health), hosted terminal chats — a near-read-only projection with durable gate responses, served by the MCP package and launchable via CLI.
  • Observable session lifecycle: append-only ar-observer-event/v1 logs with trust provenance, ambient lifecycle signals (lifecycle_* tools), a pure projection reducer, durable approval gates, and NOTIFY-AND-CONTINUE turn ends.
  • Inspect–diff–converse integration (#98): File Viewer (Headless Tree + CodeMirror dual-pane), Change-Set Viewer (merge diffs with series / committed / working leaf views and master accumulation), and leaf-keyed sidebar chats — task highlights route straight into the adjacent leaf chat as a draft, never auto-submitted.
  • task_reopen: reopening a completed leaf reuses its exact leaf id — contract and doc reset to planning, worktree_start recreates fresh off the current tips and restamps the doc's lifecycle. No more suffixed reopen forks; worktree_abandon ends its anchored lifecycle and abandoned enclosures project terminal state.
  • Task documents are master/leaf-only (#96): task_doc create/replace refuse kind="light" and default kind context-awarely; remove_subtask completes the CRUD; docs authored under a leaf contract are stamped with their lifecycle and enclosure refs.
  • Provider stability: every managed provider container is memory-capped (watchers 512m, falkordb/ollama 2g, runner 1g, postgres 512m) with self-recycling OOM behavior; the enriched .cgcignore (defaults + repo .gitignore + per-repo exclusions) now reaches the live CGC watch context; the committed dashboard bundle is excluded from watch/index work; a maintained CGC patch pops fired debounce timers (runner image ar2).
  • Hosted terminal hardening: wheel scrolling via tmux mouse mode (alternate-screen aware), boot-safe context paste with echo-confirmed retries, typing auto-exits copy-mode, and hosted chats can be reassigned between leaves with live catalog sync across open dashboards.
  • Repo-wide quality gate: the pre-push hook (ruff + Pyright + full pytest + CRAP threshold) passes over the whole tree and gates every push.

Breaking and rc caveats

  • Per the Stability promise this is the major bump that retires kind="light" task-document authoring (existing light documents still load).
  • The cockpit's HTTP/SSE surface and dashboard internals may still change before 3.0.0 final.

Upgrade notes

  • Pre-releases are skipped by @latest resolvers: pin explicitly — uvx agents-remember-mcp==3.0.0rc1 --config <settings.json> for the MCP server.
  • Dashboard from the CLI: uvx --from agents-remember-mcp==3.0.0rc1 agents-remember dashboard --config <settings.json>.

Resolve worktree context by name

Choose a tag to compare

@Foxfire1st Foxfire1st released this 22 Jun 20:15
adbee7d

Agents Remember 2.9.3

A small but recurring resolver fix: the coordination context now resolves a worktree's contract.md from its worktree_name alone, so tooling addressed by worktree name gets the full contract context instead of empty paths.

Highlights

  • resolve_context / resolve_coordination_context now populate contract_path, code_worktree, and memory_worktree from worktree_name alone — matching what worktree_status(task_name=…) already returned (#90).

Resolver

  • resolve_contract gained a worktree_name fallback with strict precedence contract_path > task_name > worktree_name; an unmatched name returns empty rather than raising.
  • New find_worktree_contract helper enumerates tasks/<repo>/*/contract.md and matches each contract's recorded coordination.worktree_group, because worktree_name cannot be reversed to task_name (slugify preserves both - and _). The lossless join is on the worktree-group folder name.
  • find_worktree_contract is re-exported from the coordination_context_resolver facade alongside find_task_contract.

Tests

  • Happy-path regression guard (fields non-null), graceful-empty unknown name, task_name-over-worktree_name precedence, and a find_worktree_contract unit test.

Full changelog: mcp-v2.9.2...mcp-v2.9.3

Hermetic benchmark provider setup

Choose a tag to compare

@Foxfire1st Foxfire1st released this 19 Jun 13:18
add1235

Agents Remember 2.9.2

Running the benchmark suite no longer reaches into your live workspace or worktree providers. Benchmarks now build their own isolated index from their pinned fixture, so a benchmark run can't trigger a re-index storm across your real provider stacks.

Highlights

  • Hermetic benchmark provider setup. prepare_configured_providers no longer wires a seed source — a benchmark indexes its own fixture cold instead of seeding from (and starting) the live workspace provider backends.
  • Seed guard (defense-in-depth). The GrepAI and CodeGraphContext seed resolvers now refuse a benchmark-scoped target, so a benchmark can never clone/seed from another stack even if a source is mis-wired.
  • Benchmarked agent uses its own MCP server. benchmark_mcp_config_overrides points the benchmarked Codex at the benchmark's own MCP configuration rather than inheriting the host workspace's.

Why it matters

Previously, starting the benchmark suite seeded its providers from the live workspace coordination root. Because every worktree shares the workspace's GrepAI workspace identity, that disturbance cascaded a full re-embed across main and every worktree at once — saturating CPU and making the machine unusable. Benchmarks are now isolated like a regular worktree.

Other

  • providers/status.py compacts the CodeGraphContext watcher lastRefresh summary.
  • Regression tests for the seed guard and hermetic prepare.

Changes: #89

Committed-Range Closeout & the Two-Turn Gate Protocol

Choose a tag to compare

@Foxfire1st Foxfire1st released this 19 Jun 12:24
6f1a7e9

Agents Remember 2.9.1

Closeout now verifies everything a task transports — not just what sits dirty in the working tree — closing the phantom-drift hole that merge-consolidation and pre-committed flows hit (#83). The lifecycle also gains the two-turn gate protocol so gate reports are never swallowed by approval prompts.

Highlights

  • The closeout worklist covers the unverified committed range: paths changed between the last verified commit and the work branch HEAD, scoped by the recorded base so synced-in parallel work and previous closeouts never re-gate.
  • Two-tier responsibility: already-onboarded artifacts (sidecars, route overviews, entity fingerprints) gate on every transported change regardless of author; committed-range paths without onboarding are reported as the non-blocking unonboarded list instead of forcing whole-repository onboarding.
  • Memory-side honesty: body gates baseline against the last verified memory commit instead of memory HEAD, so sidecar work committed before closeout classifies correctly (and early-committed new sidecars stop false-flagging as stale).
  • Bounded tool payloads: lists that scale with transported history are exposed as count + capped sample (PATH_SAMPLE_LIMIT = 30).
  • Two-turn gate protocol in the l-01-session-job-lifecycle and c-12-closeout skills: every gate is a report turn (full relay ending with a prose approval question) followed by an action turn — no question widget, mutating tool call, or permission prompt may ride the report turn.

Onboarding And Memory

  • worktree_closeout_preview/apply stamp verification metadata to the existing HEAD when the tree is clean, so pre-committed work needs no artificial dirty state.
  • Preview and apply payloads surface unonboarded (count + sample) for the commit-approval relay; changed_code_paths, the metadata-refresh view, the sidecar body gate, and refreshed_onboarding adopt the bounded count + sample shape (blocking missing/unsupported lists stay full).
  • Gate error messages cap their path joins, so large consolidations cannot flood tool responses.

Upgrade Notes

  • Closeout gate behavior widens: tasks carrying committed-but-unverified changes (merges, multi-slice series, cherry-picks) will now see those paths gated and stamped. Previously they passed silently — that was the bug.
  • Consumers reading changed_code_paths or the body-gate lists from closeout payloads should expect {count, sample} objects instead of bare lists.

Worktree-Only Closeouts & Carryover Coverage

Choose a tag to compare

@Foxfire1st Foxfire1st released this 12 Jun 12:21
d35a15b

Agents Remember 2.9.0

Closeout is now worktree-only, branch-memory carryover covers every artifact kind, and the README's Status section now states where the project is and where it is going — with release history living here, in GitHub Releases.

⚠️ Breaking change — deliberate Stability exception

  • The direct_closeout_preview and direct_closeout_apply MCP tools are removed (GitHub #62). Worktree-only closeout was the original design intent of the session lifecycle: every change to a managed repo — chat builds included — runs through a code + memory worktree, keeping external memory consistent and auditable. The direct path was a leftover from an incomplete cleanup. Migration: worktree_start → work → worktree_closeout_preview / worktree_closeout_apply.
  • Under the Stability promise, tool removals belong to a major bump. This ships in a minor release as a recorded, deliberate exception: 3.0 is reserved for the dashboard/observability architecture named in the README's new Status section.

Highlights

  • Worktree-only closeout doctrine (#62): tools, skills (l-01-session-job-lifecycle, c-12-closeout), docs, and tests aligned; the MCP tool surface goes 37 → 36.
  • Carryover artifact coverage: memory_carryover_plan / memory_carryover_apply now also carry the repo entity catalog and memory-only doc updates between memory branches.
  • Repository rename sweep: stale agents-remember-md references swept across docs and onboarding after the GitHub rename to agents-remember.

Docs And Public Surface

  • The README Status section is rewritten from the per-release narrative chain (a de-facto changelog) into a two-paragraph current state + direction statement; per-release history now lives in GitHub Releases — this page is the canonical changelog.
  • system/git-workflow.md / system/tools.md (memory layer): the version-bump location count corrected to three (pyproject, SERVER_VERSION, README Status).

Lifecycle-Long Stale-Base Prevention & Mid-Task Worktree Sync

Choose a tag to compare

@Foxfire1st Foxfire1st released this 10 Jun 08:42
f62c732

Agents Remember 2.8.0

Base-currency becomes a lifecycle-long guarantee (GitHub #54): every stage of a task — session start, worktree start, and mid-task — can now see when its view of the official line went stale, and pull the official line in safely instead of silently building on old code and memory.

Highlights

  • Stale-base preflight: worktree_start refuses to base a new worktree on a source branch that is behind or diverged from its remote — with stale_base_choice="fast-forward" (the tool fast-forwards and proceeds) or "proceed-stale" recoveries. A stale base doesn't just produce wrong code: it silently defeated the provider seed fast-path into a multi-minute reindex.
  • New worktree_sync tool: pull a moved official line into a live worktree atomically — the new code tip must be ledger-mapped at the official memory tip, the code work branch merges (conflicts abort cleanly), parked memory fast-forwards, and the contract's recorded base pair advances with a durable sync_log. Sync early — before memories are written — and end-of-series integration stays ff-only with no carryover reconciliation.
  • Memory main keeps up: memory_carryover_apply now fast-forwards memory main to the official checkout tip (memory_main_advance), so cycles run on non-main source branches no longer leave memory main behind indefinitely.

Freshness Checkpoints

  • context_packet gains an opt-in include_freshness section: upstream ahead/behind for the code and memory checkouts plus ledgerMapsCodeHead, forming the lifecycle-start trust checkpoint (the l-01 skill opts in).
  • worktree_status carries a fetch-free freshness block (recorded base pair vs local source tips) with a syncHint recommending worktree_sync — network-free, so the background provider-setup polling loop stays fast.
  • A missing external-memory source branch is auto-created at the official memory tip using the code source branch name as template — one less manual step before worktree_start.

Onboarding And Memory

  • Runtime skills (l-01, c-09, c-11) teach the three checkpoints and the sync-early-before-memories doctrine.
  • The providers.context facade import-order fix (landed with 2.7.0) is now pinned by fresh-interpreter regression tests on Python 3.11.
  • Change-notification ping transport for the freshness payload is tracked as follow-up #60.