Skip to content

fix(memory): derive holographic auto-extracted facts#22959

Open
MestreY0d4-Uninter wants to merge 1 commit into
NousResearch:mainfrom
MestreY0d4-Uninter:fix/22907-holographic-auto-extract
Open

fix(memory): derive holographic auto-extracted facts#22959
MestreY0d4-Uninter wants to merge 1 commit into
NousResearch:mainfrom
MestreY0d4-Uninter:fix/22907-holographic-auto-extract

Conversation

@MestreY0d4-Uninter

Copy link
Copy Markdown
Contributor

What does this PR do?

Fixes holographic memory auto_extract so matched user messages are stored as derived facts instead of verbatim chat text.

For example, a message like:

Hey, for future work I prefer concise PR comments with no hype.

now stores:

User prefers concise PR comments with no hype.

instead of saving the full original message.

Related Issue

Fixes #22907

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 🔒 Security fix
  • 📝 Documentation update
  • ✅ Tests (adding or improving test coverage)
  • ♻️ Refactor (no behavior change)
  • 🎯 New skill (bundled or hub)

Changes Made

  • plugins/memory/holographic/__init__.py
    • builds auto-extracted facts from regex capture groups instead of content[:400]
    • keeps the existing categories (user_pref, project)
  • tests/plugins/memory/test_holographic_auto_extract.py
    • adds regression coverage for preference and project-decision extraction

How to Test

  1. Run:
    python -m pytest -o addopts='' tests/plugins/memory/test_holographic_auto_extract.py -q
  2. Run the focused memory plugin suite:
    python -m pytest -o addopts='' tests/plugins/memory -q
  3. Run ruff on the changed files:
    ruff check plugins/memory/holographic/__init__.py tests/plugins/memory/test_holographic_auto_extract.py

Checklist

Code

  • I've read the Contributing Guide
  • My commit messages follow Conventional Commits (fix(scope):, feat(scope):, etc.)
  • I searched for existing PRs to make sure this isn't a duplicate
  • My PR contains only changes related to this fix/feature (no unrelated commits)
  • I've run pytest tests/ -q and all tests pass
  • I've added tests for my changes (required for bug fixes, strongly encouraged for features)
  • I've tested on my platform: Ubuntu/Linux

Documentation & Housekeeping

  • I've updated relevant documentation (README, docs/, docstrings) — or N/A
  • I've updated cli-config.yaml.example if I added/changed config keys — or N/A
  • I've updated CONTRIBUTING.md or AGENTS.md if I changed architecture or workflows — or N/A
  • I've considered cross-platform impact (Windows, macOS) per the compatibility guide — or N/A
  • I've updated tool descriptions/schemas if I changed tool behavior — or N/A

Screenshots / Logs

$ python -m pytest -o addopts='' tests/plugins/memory/test_holographic_auto_extract.py -q
..                                                                       [100%]
2 passed

$ python -m pytest -o addopts='' tests/plugins/memory -q
162 passed

$ ruff check plugins/memory/holographic/__init__.py tests/plugins/memory/test_holographic_auto_extract.py
All checks passed!

I did not run the full local suite for this small plugin change. The current upstream Tests workflow is already red on main, so I kept validation focused on the affected memory plugin area.

@MestreY0d4-Uninter MestreY0d4-Uninter force-pushed the fix/22907-holographic-auto-extract branch from 501b853 to f0dcedb Compare May 10, 2026 03:33
@MestreY0d4-Uninter

Copy link
Copy Markdown
Contributor Author

CI triage note after the latest push:

  • ruff enforcement (blocking) passed.
  • ruff + ty diff generated a clean diff summary for this PR: ruff has 0 new issues and ty has 0 new issues. The job only failed when GitHub Actions tried to post the summary comment back to this fork PR (Resource not accessible by integration).
  • test, e2e, and Windows footguns (blocking) are failing on current main as well.
    • test: the final PR run fails in gateway TTS, update gateway restart, and async httpx cache tests. These same failures are present on the latest main push run I checked: https://github.com/NousResearch/hermes-agent/actions/runs/25617728674
    • e2e: the PR run fails the /new session lifecycle e2e cases; the same failures are present on that main run.
    • Windows footguns: both the PR and main report the existing tools/process_registry.py:588 os.killpg(..., signal.SIGKILL) finding.

Focused validation for this PR still passes locally:

python -m pytest -o addopts='' tests/plugins/memory/test_holographic_auto_extract.py -q
python -m pytest -o addopts='' tests/plugins/memory -q
ruff check plugins/memory/holographic/__init__.py tests/plugins/memory/test_holographic_auto_extract.py

I’m leaving the PR scoped to the holographic memory extraction fix.

@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/plugins Plugin system and bundled plugins tool/memory Memory tool and memory providers labels May 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/plugins Plugin system and bundled plugins P3 Low — cosmetic, nice to have tool/memory Memory tool and memory providers type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

holographic memory auto_extract saves raw user messages verbatim instead of extracting preferences

2 participants