Skip to content

v0.2.0

Choose a tag to compare

@leonardsellem leonardsellem released this 06 Aug 15:26
· 20 commits to dev since this release
fab65b3

Install: uv tool install hypermnesic · PyPI 0.2.0 · Full changelog

Added

  • Repository social-preview asset for the public GitHub presentation.
  • Directory-submission prep for the official MCP Registry, awesome-mcp-servers, and
    Obsidian community plugin directory.
  • PyPI publication decision memo for the one-command install gate.
  • PyPI Trusted-Publishing release workflow (.github/workflows/release.yml): OIDC,
    no stored API token, triggered on v*.*.* tags or manual dispatch — enables
    uv tool install hypermnesic once the project's trusted publisher is configured
    and 0.1.0 is published.
  • Launch-week first-contact response SLO checklist and baseline.
  • Launch narrative and channel-specific post drafts tied to readiness evidence.
  • Launch sequencing plan and public-launch retro template.
  • GitHub Discussions welcome and public roadmap prep for the contribution funnel.
  • Live GitHub Discussions links in README/docs for the welcome thread and public roadmap.
  • Launch demo assets (media/): a receipts-first promotion set. The README now leads
    (above the fold) with the hero "receipt loop" GIF — an agent writes a memory through the
    real MCP commit_note tool, git log shows the real commit, and a fresh session recalls
    and cites it — and the ## Benchmarks section embeds a committed LongMemEval chart
    (judge-axis labeled, numbers from harness/BENCHMARKS.md). Engine .tape sources + a
    loopback MCP-client helper, a benchmark SVG, a connector montage, per-community carousels,
    and a companion PKM fixture vault + recording setup live under media/, run against
    disposable fixture vaults with a fixed committer identity, and pass a two-gate leak check:
    the automatic text scan (scripts/preflight_public_scan.py, now also catching macOS
    /Users/ and /var/folders/ paths) plus a manual frame-review checklist
    (docs/guides/demo-asset-frame-review-checklist.md) with a sign-off log (media/.review-log.md).
  • Flagged binary captures (LS-1778): the demo set's deliberately-flagged binary renders,
    now captured, frame-reviewed, and signed off pass in media/.review-log.md — the Claude Code
    client GIF (live TUI → MCP → a real commit_note), the companion read-only-proof composite, the
    live-graph companion-hero GIF, the Obsidian marketplace stills + demo.gif (in the separate
    companion repo), and the r/ObsidianMD obsidianmd-still.png; plus
    media/companion/capture-obsidian-stills.sh (reproducible Obsidian-CLI capture, TCC-free via
    dev:screenshot). Re-rendered the hero + index-recovery GIFs to fix a hidden-setup leak
    (clear is a no-op in VHS's headless terminal).
  • MCP read_note(path) read tool — fetches a located note's full markdown content by
    repo-relative path, bounded to indexed notes (a ../ traversal, an absolute path, or a
    non-note file returns found: false with content: null, never an out-of-vault read).
  • glama.json server-metadata file (maintainers) for the Glama MCP directory.

Changed

  • GitHub repository description and topics were applied for the public release presentation pass.
  • Directory-submission prep now reflects the current MCP Registry schema constraint,
    the open awesome-mcp-servers PR, and the Obsidian PR permission handoff.
  • README and getting-started quickstart now install from PyPI (uv tool install hypermnesic)
    instead of a clone / git URL, now that 0.1.0 is published to PyPI.
  • README header shows a PyPI version badge (replacing the git-tag version badge); added PyPI
    Trove classifiers to pyproject.toml (Intended Audience, Python 3.11–3.13, AI / indexing
    topics) for richer project metadata and a Python-versions badge from the next release.
  • search and hypermnesic_search MCP tool descriptions are now full, self-describing
    definitions (retrieval model, return shape, and when to use each) rather than one-line stubs,
    raising the Glama Tool Definition Quality Score; hypermnesic_search now states it is the
    prefixed alias of search. A connector-quality test guards against regressing to terse
    descriptions.
  • Every MCP tool parameter now carries a schema description (previously 0% coverage), so clients
    and directory scorers see documented inputs — addressing the Glama TDQS "Parameters" dimension
    across all read tools and the gated commit_note write tool.
  • README rewritten to lead with the use case and an unequivocal USP. A scenario-led hero
    ("One brain. Every AI. Yours.") opens above the receipt GIF; a new "Why it compounds" section
    pairs the Capture → Curate → Recall → Compound flywheel illustration (media/engine/flywheel.jpg)
    with the shared-brain argument; a "One endpoint, every client" section reuses the connector
    montage; and an honest "How it's different" comparison (mem0/Zep, Hindsight, Honcho, a
    database-backed brain) links docs/why-hypermnesic.md. The quick-start, how-it-works, and
    benchmark reference depth is preserved below the narrative.
  • docs/why-hypermnesic.md gains vs. Hindsight (own vector store; higher LongMemEval on a more
    lenient judge axis) and vs. Honcho (complementary behavioural layer) entries.

Fixed

  • A reindex no longer strands long-lived readers (LS-2539). reindex_isolated
    installs the rebuilt index with os.replace; a process that had already opened the
    database kept its connection on the unlinked inode, so reads silently served a frozen
    snapshot while writes failed with attempt to write a readonly database. On a
    long-running MCP server that meant recall answering confidently from a stale index with
    nothing to signal the drift. Index now records the file's (st_dev, st_ino) and
    reopens when the path resolves to a different file — a missing file (an in-flight
    rebuild) and an open transaction are deliberately not treated as swaps.
  • commit_note and rename_note no longer report a landed commit as a failure. The
    index projection runs after the git commit and push, where raising told the caller
    nothing had been written — so an agent would write the same note again elsewhere, and
    the audit entry for a real git write was skipped. An index failure past that point is
    now a degraded success: the SHA reaches the caller, the audit entry is still appended,
    and the new index_degraded / degraded_reason fields on the commit_note MCP output
    say what happened. Guard refusals are unchanged and still return committed: false
    a refusal wrote nothing, which is a different outcome.
  • README: removed a duplicated hero "receipt loop" GIF (embedded twice after the launch-assets
    merge) and activated the previously bare Docs-section links
    (docs/unified-oauth-mcp-deploy-runbook.md, plugin/README.md, docs/plans/,
    docs/threat-model-commit-note.md, the write-anywhere security review, and
    implementation-notes.md).

Full diff: v0.1.0...v0.2.0