[33mcommit 49c4230260549b56a5d05d3c9ca72ee848b775d0[m[33m ([m[1;36mHEAD[m[33m -> [m[1;32mmain[m[33m, [m[1;31morigin/main[m[33m)[m
Merge: 450d560 7c36727
Author: kaushikhazra <hazra.kaushik@gmail.com>
Date:   Sun Sep 13 21:08:47 2026 +0530

    Merge pull request #3 from kaushikhazra/release/claude-md
    
    Add CLAUDE.md — the working instructions for this repo

[33mcommit 7c36727f71c9312e964db200ed4b7484b3a9e0e9[m
Author: kaushikhazra <hazra.kaushik@gmail.com>
Date:   Sun Sep 13 17:54:43 2026 +0530

    Add CLAUDE.md — the working instructions for this repo
    
    This repo had no CLAUDE.md and no .claude/ at all, so every agent session
    started by rediscovering the same things, and one of them is the kind of thing
    you only discover by breaking it.
    
    The load-bearing part is the coupling: synaptra is the PUBLIC MIRROR of a
    private upstream, changes flow one way, and a file-level copy from upstream
    silently destroys the branding delta — package dir, imports, dist name, console
    scripts, env prefix, data dir. That table exists because those differences look
    like bugs and are not.
    
    Also records the rules that have already cost something: migrations are
    numbered and run exactly once (editing an applied migration fails silently, and
    this package has public SQLite installs), every SQLite write maintains FTS5
    sync, and the mcp<2.0 pin is a decision rather than a cleanup.
    
    Checked in on a branch and merged rather than committed on main directly.
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01P2qFF5guKabSwhWXrNePqu

[33mcommit 450d560aceeef4b87a44b865b9467c2c0606b310[m
Merge: cb698d5 6aaee13
Author: kaushikhazra <hazra.kaushik@gmail.com>
Date:   Sun Aug 2 21:46:47 2026 +0530

    Merge release/mcp-stdio-transport: --transport flag, stdio warmup fix, package rename, v2.0.0

[33mcommit 6aaee1346b77ed675c00cddd875c10da39c5a6af[m
Author: kaushikhazra <hazra.kaushik@gmail.com>
Date:   Sun Aug 2 21:46:46 2026 +0530

    chore: bump version to 2.0.0
    
    Major bump: the import package rename cognitive_memory -> synaptra is a
    backward-incompatible change to the public import API (SemVer major).
    Reconciles __init__.__version__ (was stale at 1.0.0) with the dist version.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01G8DpG39ddpHjzEb95pt3Fs

[33mcommit e41f28a872c6c05fdc5075b9527a0078895592e9[m
Author: kaushikhazra <hazra.kaushik@gmail.com>
Date:   Sun Aug 2 11:58:53 2026 +0530

    refactor: rename package cognitive_memory -> synaptra
    
    synaptra is a separate repo but shipped its code under the import name
    cognitive_memory, colliding with the older cognitive-memory repo (both
    provided `cognitive_memory`; on import the old one won). Own the import name.
    
    - src/cognitive_memory/ -> src/synaptra/ (git mv, history preserved)
    - every internal/test import + patch target + `-m` module path rewritten
      (byte-level replace, per-file line endings preserved)
    - pyproject: wheel packages -> src/synaptra; console scripts point at
      synaptra.server:main / synaptra.cli:main / synaptra.service
    - stdio warmup fix (c5ad1f6) unchanged
    
    Verified: isolated venv `pip install -e .` -> `import synaptra` works,
    `import cognitive_memory` fails (clean break); console script
    `synaptra --transport stdio` launches; stdio memory_recall RETURNS ~170ms.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01G8DpG39ddpHjzEb95pt3Fs

[33mcommit c5ad1f65461ab8f4671c8c35e72de5b474235505[m
Author: kaushikhazra <hazra.kaushik@gmail.com>
Date:   Sun Aug 2 11:18:50 2026 +0530

    fix: warm engine + embedding model at stdio server start
    
    The stdio transport branch called mcp.run(transport="stdio") with engine
    init deferred to the first tool call. That made the first memory_recall pay
    the full embedding-model load (~16s, synchronous) on anyio's event-loop
    thread, blocking the loop and hanging the call.
    
    Mirror the HTTP branch's startup warmup before mcp.run: _get_engine()
    (builds storage with eager surrealkv-file DB connect + config) and
    embeddings.warmup() (loads the model). After startup, recall does zero
    initialization — only query work.
    
    Verified over stdio with the official MCP client (embedded surrealkv-file
    backend): initialize ~19s (includes boot warmup), memory_recall RETURNS in
    ~184ms (previously hung).
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01G8DpG39ddpHjzEb95pt3Fs

[33mcommit e1a98d77b0c097c98b300dec53b3f09190d793b7[m
Author: kaushikhazra <hazra.kaushik@gmail.com>
Date:   Sun Aug 2 01:31:36 2026 +0530

    feat: add --transport http|stdio flag (stdio for per-project MCP), bump 1.1.0
    
    Adds argparse --transport flag to main() with choices ["http","stdio"],
    default "http". The http branch is the existing uvicorn behaviour,
    unchanged. The stdio branch calls mcp.run(transport="stdio") so Claude
    Code can spawn synaptra as a per-session stdio MCP server for the
    second-brain project wiring. Version bumped 1.0.0 → 1.1.0.
    
    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

[33mcommit cb698d548e57066ee6da0776272d44474464697a[m
Merge: 7ccc39a 3883474
Author: kaushikhazra <hazra.kaushik@gmail.com>
Date:   Sat Aug 1 19:42:52 2026 +0530

    Merge pull request #1 from kaushikhazra/release/mcp-pin
    
    fix: pin mcp<2.0 to keep fresh installs working

[33mcommit 388347457e73f73b605302d5b770bf3148bcd199[m
Author: kaushikhazra <hazra.kaushik@gmail.com>
Date:   Sat Aug 1 19:04:02 2026 +0530

    fix: pin mcp<2.0 to keep fresh installs working
    
    A clean `pip install synaptra` pulled mcp 2.0.0, which removed
    `streamablehttp_client` (breaking cli.py's import) and deleted the
    `mcp.server.fastmcp` module entirely (server.py is built on FastMCP +
    @mcp.tool()). The result was a broken CLI and server out of the box.
    
    Pin `mcp>=1.0.0,<2.0` so the published wheel resolves to the 1.x line the
    codebase targets. Full mcp 2.0 adoption (server rewrite onto the new
    MCPServer API, or a switch to the standalone `fastmcp` package) is deferred
    to a separate change.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01FcR1HVetwNANSx6aPMP1mj

[33mcommit 7ccc39a3459200d2a43214eb9daad0bf962e0f61[m
Author: kaushikhazra <hazra.kaushik@gmail.com>
Date:   Sat Aug 1 18:15:06 2026 +0530

    Initial public release: synaptra — biologically-inspired agent memory as an MCP server
