Skip to content

release: v0.1.36#822

Merged
memtomem merged 1 commit intomainfrom
release/v0.1.36
May 6, 2026
Merged

release: v0.1.36#822
memtomem merged 1 commit intomainfrom
release/v0.1.36

Conversation

@memtomem
Copy link
Copy Markdown
Owner

@memtomem memtomem commented May 6, 2026

Summary

Cuts the v0.1.36 release. Three-file diff (per the split-PR pattern):

  • packages/memtomem/pyproject.tomlversion = "0.1.36"
  • uv.lock — workspace pin sync
  • CHANGELOG.md[Unreleased][0.1.36] — 2026-05-06, with the merged-since-v0.1.35 entries folded in by section

Headline

memtomem-server runs on Windows natively (#817/#818/#819/#820). Pre-#818 the two fcntl.flock callsites in server/__init__.py crashed memtomem-server on Windows even though the mm CLI was Windows-clean from #652 / 0.1.34. v0.1.36 swaps both onto portalocker, POSIX-gates the SIGTERM handler (Windows has no equivalent — teardown via stdin-EOF + atexit), and closes the lock fd before unlinking the pid file on Windows (NTFS refuses to delete an open handle, WinError 32). Windows MCP hosts (Claude Desktop / Code) can now point at memtomem-server directly without WSL.

Other shipped this release

Added

Changed

Fixed

Security

Release mechanics

This is a behavior-change release (Windows server now starts at all on Windows; transactional uninstall changes failure shape; CSRF middleware logs new metrics). Per the v0.1.35 release-PR template:

  1. After this release PR's CI is green, squash-merge.
  2. Push test-v0.1.36a1 tag from the merge sha → TestPyPI dry-run.
  3. Approve the pypi environment for the test tag, smoke-test the wheel in an isolated worktree (fresh uv tool install), then push v0.1.36 from the same sha.
  4. Approve pypi again if pending_deployments is non-empty.
  5. gh release create v0.1.36 with notes extracted from this CHANGELOG section.

Test plan

  • uv run pytest packages/memtomem/tests/test_docs_guards.py -q — 11 passed (CHANGELOG schema)
  • uv run ruff check packages/memtomem/src && uv run ruff format --check packages/memtomem/src — clean
  • CI required checks: lint, typecheck, test, notebooks, golden-path, js-unit, browser, CLAAssistant
  • TestPyPI dry-run: fresh uv tool install memtomem==0.1.36 from https://test.pypi.org/simple/, confirm mm --version prints 0.1.36 and memtomem-server starts on Windows without ModuleNotFoundError: No module named 'fcntl'
  • Production: uvx --refresh --from memtomem==0.1.36 mm --version polls clean

🤖 Generated with Claude Code

…s + transactional uninstall

Three-file release diff (per the split-PR pattern):

- ``packages/memtomem/pyproject.toml`` — ``version = "0.1.36"``
- ``uv.lock`` — workspace pin sync
- ``CHANGELOG.md`` — ``[Unreleased]`` → ``[0.1.36] — 2026-05-06`` with
  the merged-since-v0.1.35 entries folded in by section.

Headline: ``memtomem-server`` (the MCP server) now runs natively on
Windows. Pre-#818 the server's two ``fcntl.flock`` callsites crashed
on Windows even though ``mm`` was Windows-clean from #652 / 0.1.34;
v0.1.36 closes that gap (#817/#818/#819/#820), so Windows MCP hosts
(Claude Desktop / Code) can point at ``memtomem-server`` directly
without WSL.

Other notable shipped surfaces in this release: tags rename/delete/
merge service on Web + MCP (#688 PR1), JS unit-test layer for static
modules (#641), CSRF/Origin/Host guard middleware in observe-only
mode (#787 stage 1), full-content privacy redaction at the LTM trust
boundary (#792), DNS-pinning to defeat rebinding in ``mem_fetch``
(#794), transactional ``mm uninstall`` via stage-then-rmtree (#757),
``--force`` clean refusal on Windows when a writer is alive (#730),
NTFS-aware runtime dir resolution (#637), context editor 409
conflict dialog (#763), and ``mm index`` streaming progress (#656).

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@memtomem memtomem merged commit c127549 into main May 6, 2026
11 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators May 6, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.