python-olm build breakage on Windows and extras

NousResearch/hermes-agent · cluster 4178 · agent

Data as of

4 open items. Fix merged in #4615. Check it covers your case.

The short answer

2open issues
2open PRs
16items grouped
Known?
Yes. 16 related items grouped here, 4 issues already closed.
Fix event
A fix was merged to main in PR #4615. Check it covers your case. No release data is tracked.
Tracker
The maintainers' tracker marks this partially resolved, deciding PRs #4615, #72361. That is separate from the fix event.
Still open
2 issues and 2 PRs.

These issues and fixes relate to python-olm failing to build on Windows due to CMake 4.x incompatibility, with workarounds including skipping lazy refresh, patching CMake policy, and excluding the matrix extra from the [all] group.

Open issues2

  • Issue#62401[Bug]: [platform.matrix] Matrix gateway blocked on macOS arm64 with E2EE off — _is_satisfied() ignores the [encryption] extra, so a mautrix pin-drift forces an unneeded python-olm build
  • Issue#64065fix(platform.matrix): mark unsupported on macOS so 'hermes update' skips instead of failing

Open PRs2

  • PR#62433fix(matrix): split lazy e2ee deps
  • PR#93860fix(matrix): gate only the olm-bound E2EE part to Linux so plaintext Matrix installs on macOS

Fixes on record

Merged to main. A stamp counts the issues a fix is linked to.

  • #4615 fix: exclude matrix from [all] extras — python-olm is upstream-broken

    merged to main

    files: pyproject.toml, tests/test_project_metadata.py

    Show the diff
    • pyproject.toml
      @@ -76,7 +76,10 @@ all = [
         "hermes-agent[modal]",
         "hermes-agent[daytona]",
         "hermes-agent[messaging]",
      -  "hermes-agent[matrix]",
      +  # matrix excluded: python-olm (required by matrix-nio[e2e]) is upstream-broken
      +  # on modern macOS (archived libolm, C++ errors with Clang 21+). Including it
      +  # here causes the entire [all] install to fail, dropping all other extras.
      +  # Users who need Matrix can install manually: pip install 'hermes-agent[matrix]'
         "hermes-agent[cron]",
         "hermes-agent[cli]",
         "hermes-agent[dev]",
    • tests/test_project_metadata.py
      @@ -11,8 +11,12 @@ def _load_optional_dependencies():
           return project["optional-dependencies"]
       
       
      -def test_all_extra_includes_matrix_dependency():
      +def test_matrix_extra_exists_but_excluded_from_all():
      +    """matrix-nio[e2e] depends on python-olm which is upstream-broken on modern
      +    macOS (archived libolm, C++ errors with Clang 21+).  The [matrix] extra is
      +    kept for opt-in install but deliberately excluded from [all] so one broken
      +    upstream dep doesn't nuke every other extra during ``hermes update``."""
           optional_dependencies = _load_optional_dependencies()
       
           assert "matrix" in optional_dependencies
      -    assert "hermes-agent[matrix]" in optional_dependencies["all"]
      +    assert "hermes-agent[matrix]" not in optional_dependencies["all"]
  • #72361 fix(lazy_deps): anchor-gated activation stops phantom backend refreshes

    merged to main

    files: contributors/emails/[redacted:email], tests/test_project_metadata.py, tests/tools/test_lazy_deps.py, tools/lazy_deps.py

6 PRs closed without merging

From the close comments: done elsewhere 3 · duplicate 2 · other 1

  • #44416 fix(lazy-deps): use version-aware check in active_features() to prevent unnecessary downgrades · done elsewhere → #72361, #27878
  • #44461 fix(lazy-deps): use _is_satisfied in active_features() to prevent false-positive activation on transitive installs (#44404) · duplicate → #44416, #44404
  • #58416 fix(matrix): set CMake policy for Windows lazy install · done elsewhere → 0588738
  • #58575 fix(lazy_deps): use sentinel package for active-feature detection · duplicate → #54178
  • #58652 fix(lazy-deps): detect active features by primary package · done elsewhere → #72361, #27878
Show 1 more
  • #64078 fix(gateway): hide platform.matrix on macOS too (#64065) · other → #64078
Closed issues · 4
  • Closed#4178[Bug]: python-olm build fail
  • Closed#44404fix(lazy-deps): active_features() presence-only check causes false-positive activation and unnecessary downgrades
  • Closed#58063[platform.matrix] Lazy backend refresh fails on Windows: python-olm source build incompatible with CMake 4.x
  • Closed#58458lazy_deps: shared aiohttp pin marks never-enabled backends active; matrix refresh then fails on Windows (python-olm needs make)
How this cluster was grouped
  • Link evidence (partly structural links): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
  • Members outside that structural core may belong to a different underlying problem.
  • Pairwise link density 0.12: the share of item pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. 1.00 means every pair is linked.

Pick up a Lab task

Check whether a fix covers the open issues here, with your own agent. Bring back evidence for maintainers.

Open the Lab

At a glance

Subsystem
agent
Merged PRs
#4615, #72361
Closed issues
4
Attempts
6 PRs closed without merging
Fix link checked
27 Jul 2026

For your agent

The same facts, typed.