Repository navigation
Releases: r0b0tlab/hermes-zvec-memory
Release list
Zvec Memory v0.3.0 — reduced core
Zvec Memory v0.3.0 — reduced core
Release commit: f28abfc4875dd8b6cfef537f7ce0405824b7a5c6
Pull request: #5
Retains local memory_search/memory_store, committed Markdown durability, resolving
source citations, authoritative mirroring, durable indexing/reindex intent,
same-model restart and ordinary recovery. Engine remains 0.2.2.
Verified
- 2022 core offline passes on the clean reconciled commit, retaining all 1891
prior passing neighbors; exact full tree equals the published merge tree. - 26 actual native functional passes plus real pinned-host CLI dispatch and
CLI-activated native composition: request consumed, generated-launcher
store/search and source-cited recall after fresh-manager restart. - Final clean-qualified-tree 120-second soak: 9 cycles, 1 intentional restart,
66 valid queries, corpus removed, final mirror count 0 and no owned leftovers.
One index exit1 during restart recovered; not every native command returned0. - Two independent post-execution reviews passed with 202 and 252 exact bindings.
- Source archive matches all122 Git blobs and permission modes, including the
installed MIT notice; no SDK/model/private auth/config/logs/virtualenv bundled.
Supported boundary
Pinned Linux7.2.5-3-omarchy, Hermes7239625ae1b786827c952a8ace41fa6fd7f2eec5,
Node26.8.1, zvec-grep0.2.2 and local/potion-retrieval-32m (512/cosine).
The vault and every ancestor must remain stationary while active.
Managed setup requires the pre-provisioned pinned SDK/cached model and does not
start/reload services. Doctor's unloaded-service unhealthy result and initial
reindex requested-not-completed state remain truthful; subsequent native
completion was verified separately. Fresh network/bootstrap is not qualified.
Desktop/F9, migration/adoption, provider backup/restore, model switching, broader
platforms and bulk/multiwriter capacity are unsupported. Original full-scope
FAIL (133failures/46errors) is preserved; all179nonpasses have explicit individual
scope/successor dispositions. Historical8x200convergenceFAIL is not relabeled.
Execution retained2GiB/zero-swap/256tasks/200%CPU/no-network/300s outer caps.
Initial CLI asset-copy memory pressure and nonzero CPU throttling are disclosed
in the downloadable qualification report. No statistical speedup, long-term
leak-freedom or capacity extrapolation is made.
Publication is not production deployment. No production service change, other
real-profile modification or catalog submission was made by release execution.
The two newer main-branch commits are preserved in history; their Node admission
intent is superseded by stricter exercised explicit-interpreter generation.
See repository release notes, validation, reduced-core contract and upgrade
restrictions. The archive and qualification JSON are covered by SHA256SUMS.
Raw private evidence remains local; credentials were present [REDACTED].
v0.2.1 — audit fixes
Fixes found by the 2026-09-26 maintenance audit; no change to recall or persistence behaviour.
hermes zvec-memory reindexnow actually requests a rebuild. It writes.reindex-request.jsoninto the vault, and the provider consumes and removes it at the nextinitialize(), forcing the rebuild. Previously the subcommand printed a request that nothing persisted or read.doctor'staskscheck now reads the service unit, not the caller. It reads the effectiveTasksMaxofhermes-zvec-memory.serviceviasystemctl --user show(trusted only withLoadState=loaded) and falls back to the caller's cgroup otherwise — previously it could pass on an unrelated shell scope while the unit's real ceiling was misconfigured.- Test environment follows the host.
requirements-test.txtpinsruamel.yaml==0.18.17(required by the host'shermes_yamlconfig policy), and the host-contract coldness test no longer treats the host's ownskills/bootstrap as a plugin side effect.
Gates at this revision: offline suite 408 passed / 10 deselected; native lane 9 passed / 1 skipped (through the production launcher).
hermes-zvec-memory v0.2.0
hermes-zvec-memory v0.2.0
First tagged release: a local-first Hermes memory provider over a zg-indexed
Markdown vault — hybrid semantic and keyword recall, file:line citations, no
cloud dependency — now installable, checkable and upgradable in three commands.
Install
hermes plugins install https://github.com/r0b0tlab/hermes-zvec-memory#zvec-memory
hermes memory setup zvec-memory # generates the launcher + unit, activates the provider
hermes zvec-memory engine install # the one explicit step that fetches the pinned engine
hermes zvec-memory doctor # exits 0 only when all eight checks passRequirements: Hermes with the memory-provider plugin interface, Node.js >= 22,
@zvec/zvec-grep@0.2.2, a local embedding model (default
local/potion-retrieval-32m), POSIX filesystem locking. Linux is the tested
platform; macOS is not yet exercised; Windows is unsupported by the process-safe
transaction layer.
Highlights
Operability — the provider now maintains itself.
hermes zvec-memory doctor|status|reindex|engine install checks config, vault,
engine, index, inbox, mirror, identity and the task ceiling, and fails closed.
hermes memory setup installs the engine runtime and the systemd unit from
post_setup, without touching your values. python scripts/upgrade.py gates a
swap behind a clean tree, the offline suite, the native lane, a receipted backup,
a baseline re-record and doctor — and can roll it back. docs/maintenance.md is
the operating manual.
Robustness — the durable state is versioned and recoverable.
Process-safe mirror transactions with a journaled, reversible mirror; a durable
notification inbox on guarded WAL that tolerates a peer mid-journal-conversion;
an engine-identity sidecar that rebuilds the index when the engine or embedding
changes and adopts an existing index instead of rebooting it on upgrade; a mirror
map that refuses a newer layout rather than misreading it.
Recall quality and cost.
Bounded context budget including heading and truncation marker, coalesced index
work and duplicate recalls, cached empty results, cache-generation invalidation
on vault change, native index contention retried with bounded backoff, duplicate
requests coalesced, prefetch bounded to 2 s.
Independence from Hermes internals.
The runtime path no longer imports hermes_cli, tools.registry, utils or
agent.context_compressor; the helpers it genuinely needed are vendored in
zvec-memory/hostio.py and pinned to the host by an equivalence suite plus a
guarded import probe.
Measured envelope
Not claimed: speed. What is measured and reproducible lives in
docs/stress-results.md, including the two correctness gaps the campaign found
(a harness task ceiling and a real durable-inbox journal-conversion race), both
closed with regression tests, and the recorded limits: TasksMax=1024 in the
generated unit (the engine aborts rather than degrades below ~150 tasks; measured
peak 138–150), campaign default --tasks 256, and the 30-minute soak envelope
(341/341 required hits, 453/453 absences, one engine restart, 138 tasks peak).
Verification for this release
| Gate | Result |
|---|---|
| Offline suite | 401 passed, 10 deselected |
Native lane (ZVEC_RUN_NATIVE=1, through the generated launcher) |
9 passed, 1 skipped |
hermes zvec-memory doctor on the running profile |
healthy |
| Generated launcher vs the hand-verified production launcher | byte-identical |
| Fresh engine install in an isolated runtime root | zg 0.2.2, launcher runs |
hermes memory setup zvec-memory against the live host |
takes over activation, config gains only its own block |
| Production baseline | re-recorded (revision 5; earlier revisions preserved) |
Notes
- The plugin-catalog entry (
plugin-catalog-entry.yaml) is ready to submit once
itsshais set to this release's commit (git rev-list -n1 v0.2.0). - Durable state lives under
$HERMES_HOME/zvec-memory/(vault, index, inbox,
mirror map); the engine runtime under~/.local/share/hermes-zvec-memory/.
Backups from an upgrade are kept in$HERMES_HOME/backups/zvec-upgrade-*.