Skip to content

feat!: replace tmux with heimdall session supervisor#8

Merged
nazq merged 1 commit intomainfrom
feat/heimdall-migration
Mar 15, 2026
Merged

feat!: replace tmux with heimdall session supervisor#8
nazq merged 1 commit intomainfrom
feat/heimdall-migration

Conversation

@nazq
Copy link
Copy Markdown
Owner

@nazq nazq commented Mar 15, 2026

Summary

Complete architecture pivot — removes tmux and the internal cc-sup Rust supervisor, replacing both with heimdall (hm) v1.0.0.

  • Replace tmux pane polling with heimdall Unix socket binary protocol
  • Web terminal via WebSocket relay to heimdall subscriptions
  • Agent state machine from heimdall classifier (idle/thinking/streaming/tool_use/dead)
  • Session creation launches hm run --detach
  • Delete cc-sup/ directory (replaced by standalone heimdall repo with 92% coverage)
  • Add /health/deps dashboard page for dependency health checks
  • Add claude as required dependency
  • Zero cc-sup references remaining

Test plan

  • uv run pytest — 197 tests passing, 96% coverage
  • uv run ruff check — zero lint errors
  • Zero cc-sup references in source, tests, plugins, docs
  • justfile updated: hm commands, doctor, clean-logs
  • Health deps page renders with green/red status + versions

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 15, 2026

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

Thanks for integrating Codecov - We've got you covered ☂️

@nazq nazq force-pushed the feat/heimdall-migration branch 5 times, most recently from 0a63a21 to bbe34d9 Compare March 15, 2026 15:00
Complete architecture pivot: remove tmux dependency and the internal
cc-sup Rust supervisor, replacing both with heimdall (hm) — the
standalone, tested, released PTY session supervisor.

Session management:
- Replace tmux pane polling with heimdall Unix socket protocol
- Add supervisor_client.py: async client for heimdall binary framing
- Web terminal via WebSocket relay to heimdall subscriptions
- Agent state machine from heimdall classifier (idle/thinking/
  streaming/tool_use/dead)
- Session creation launches `hm run --detach` instead of tmux
- Agent pruning probes heimdall status sockets every 5s

Architecture changes:
- Delete cc-sup/ directory (1,474 lines of Rust replaced by heimdall
  v1.0.0 with 5,480 lines, 92% coverage, 254 tests)
- Remove dashboard plugin system (BaseDashboard, discovery.py) —
  replaced with direct HTMX partials
- Remove APScheduler — replaced with asyncio background tasks
- SSE event bus for real-time dashboard updates
- Agent identity via DRASILL_SESSION_ID env var (set by heimdall
  pre-exec seam)

New features:
- /health/deps dashboard page: dependency health checks with
  green/red status, versions, install links
- Shared doctor.py module for CLI (check-deps) and dashboard
- claude added as required dependency check
- hm clean-logs recipe in justfile for orphaned log cleanup

Plugin hooks:
- Stop hook checks inbox via DRASILL_SESSION_ID
- Idle notification hook injects messages at idle prompt
- No join/leave commands — platform owns agent lifecycle

Docs updated: ARCH.md, mesh.md, terminal.md, plugin.md, database.md,
deployment.md, SKILL.md, README.md, CLAUDE.md
@nazq nazq force-pushed the feat/heimdall-migration branch from bbe34d9 to afe07b7 Compare March 15, 2026 15:07
@nazq nazq merged commit 285d9ee into main Mar 15, 2026
1 check passed
@nazq nazq deleted the feat/heimdall-migration branch March 15, 2026 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant