Releases: mrap/hex
v0.16.0 — Full rustification + S1 skills sync
What's new
Full rustification (43 Rust subcommands)
hex events— native Rust event daemon replacing Pythonhex_eventd.py. Hot-reload, multi-cadence scheduler, shell/emit/notify/update-file handlers.hex hook— Claude Code hook runners in Rust:session-start,post-tool-use,backup-session.hex doctor— DoctorCheck trait framework with 55+ checks. Replacesdoctor.sh.hex upgrade— upgrade pipeline ported fromupgrade.shto Rust.hex agent evolution/reset-periods/optimizer-wake— harness-native agent lifecycle.- Full Python scripting layer ported: 130 Python files reduced to ~22.
- All
.legacyshim references removed — real-port phase complete.
S1 skills sync (9 new skills + bet-status)
system/skills/hex-event/,hex-save/,hex-switch/,imessage/,mirofish/,remodeling/,x-twitter/,conjecture-criticism/,vibe-to-prod/system/commands/bet-status.md—/bet-statusslash command
Fixed
- PATH deduplication in
compose_path(pre-existing duplicates now filtered) - Release pipeline gate fixes: sanitize-check, PII scan, legacy file exclusions
- Doctor equivalence mismatches: agent-fleet, python, env-sh, me-md, scripts-exec, agent-liveness
v0.15.0 — Harness messaging + binary resolution fix
What's fixed
Agent messaging deadlock (system/harness/src/messaging.rs): cli_send() now writes to .hex/messages/{agent}.jsonl (the JSONL inbox the harness wake cycle reads). Previously it only wrote to messages.json, which is not read during wakes — CLI-sent messages were silently dropped. This caused persistent agent-to-agent communication deadlocks (Releaser→Sentinel sign-off blocked; S1499).
Daemon binary resolution (system/harness/src/claude.rs): claude::invoke() now resolves the claude binary via $CLAUDE_BIN env var, then $HOME/.local/bin/claude, then PATH. LaunchAgent/daemon wakes inherit a restricted PATH that excludes ~/.local/bin, causing "failed to spawn claude: No such file or directory" on automated wakes.
Gates
- Sentinel: PASS (SA-034)
- Docker E2E: PASS (env resolution + regression)
- Sanitize: PASS
- Codex parity: 7/7 PASS
- Autonomy regression: PASS
hex-foundation v0.14.0 — Slack deprecation + upgrade.sh cleanup
What's Changed
Slack/cc-connect deprecation complete. This release removes ~240 lines of dead Slack integration code and archives two retired scripts.
Changed
system/scripts/upgrade.sh: Drop legacy hex-events standalone install path — hex-events is nowhex eventssubcommand. RemovesHEX_EVENTS_REPO/DIR/SRCvars,verify_hex_events(), v1 rsync block. (~124 LOC removed)system/scripts/hex-vitals.py: Remove--slackflag and Slack posting (~155 LOC removed)system/scripts/hex-doctor: Remove deadcheck-slack-alert-roundtripmodulesystem/scripts/pulse-dashboard/server.py: Remove/api/messagesSlack-fetch endpoint andloadMessages()frontend pollersystem/scripts/pulse/server.py,telemetry-ratio.py: Remove dead Slack surface entriessystem/skills/secret-intake/SKILL.md: Remove cc-connect references
Archived
system/scripts/integrations/slack-bot.sh→integrations/_archive/system/scripts/integrations/secrets-pipeline.sh→integrations/_archive/
Deleted
system/scripts/hex-doctor: removed (dead Slack module only)
Net: -395 lines. Zero new dependencies. No new network paths or credentials.
Security: SA-032 PASS (Sentinel, 2026-05-12)
Full changelog: CHANGELOG.md
hex-foundation v0.13.3 — health scripts + test architecture fix
What's in this release
Added
- check-hex-events-policy-load.sh: New health script that surfaces
POLICY LOAD/VALIDATION ERRORentries from the hex-events daemon log. Previously these sat silently dead — legacy-schema policies, deprecated-field configs, invalid YAML all went undetected until manually reading the log. - check-vector-search.sh: New health script that verifies sqlite-vec is loadable and memory.db has vectors. Closes the silent degradation where semantic memory search falls back to FTS-only keyword search without any signal.
Fixed
- test-doctor-events-coverage.sh: Updated to test the new external-script architecture introduced in v0.13.2 (inline
check_66was replaced by the external health scripts above; the test was still testing the old inline behavior, causing regression suite failure). - release pipeline (bump-version gate): Documented and worked around the gate conflict where
bump-versioncreates a local tag that Gate 2 then rejects. Fix: delete local tag before running release.sh; release.sh re-creates the tag at push time.
Deferred to v0.14.0
messaging.rs MessagingHandler.receive()+wake.rscrash-recovery inbox: deferred due to type mismatch betweenmessaging::Messageandtypes::Message. Requires portingmessaging.rsto usecrate::types::Message(already done in mrap-hex source).
Commits (new since v0.13.2 / db56d3e)
9e73ed6docs: add v0.13.1 release notes41b92c8sync: session-start checkpoint resume + integration-check emit fix + memory leak fix315fc56bump: v0.13.2db56d3efix(sanitize): remove hardcoded absolute paths from check-career-pipeline.sheea07fdchore: commit Cargo.lock v0.13.2 bump and staged release notes02d6ef3fix(release): sync missing health scripts + update events-coverage test79ff066feat(harness): messaging.receive (REVERTED in next commit)20b44d3revert: defer harness messaging.receive to v0.14.07f3c8e3docs: add v0.13.3 changelog entrybba6957bump: v0.13.3718ba66chore: update Cargo.lock for v0.13.3
hex-foundation v0.13.2 — Session Checkpoint Resume + Memory Leak Fix
What's Changed
Patch release: session-start improvements, integration-check emit fix, and memory vector table leak fix.
Fixed
session-start.sh: channel→topic checkpoint resume; generalized blockers scan; topic-regex sanitizationhex-integration-check.sh:export _error_rawbug fix (was causing 11,948+ events/day); emit-throttle addedmemory_index.py: cascade-deletevec_chunksorphans on re-index (was accumulating 82K orphan rows)memory_search.py:_rrf_mergedocumented as FTS-only (KNOWN GAP); TODO surfaced
Changed
hex-doctor: two new health modules — Memory Vector Search + hex-events Policy Load Errors
Full changelog: CHANGELOG.md
hex v0.13.1 — doctor reliability + skip_llm WakeConfig
What's new in v0.13.1
Fixed
- hex-doctor check_66 restored:
fe094cbstreaming rewrite accidentally deleted thehex events statusparse-failure absorption check. Restored — doctor now surfaces broken policy paths and errors again. - Doctor streaming: Doctor command switches from buffered
cmd.output()tocmd.spawn()withStdio::inherit()— output streams live instead of appearing all at once. - Doctor path fixes:
run-startup-checks.sh,run-memory-checks.sh,run-landings-workspace-checks.shcorrected stale$HEX_DIR/.claudepath to$HEX_DIR/.hex(was causing 5 spurious ERRORs on fresh installs). - hex-doctor streaming rewrite: tee+PIPESTATUS pattern captures mid-pipeline failures. Combined EXIT traps into one to prevent second trap overwriting the first.
- BOI doctor check: rewritten for LaunchAgent-aware detection (was
pgrep-based, missed managed processes).
Added
WakeConfig.skip_llm: Harness field (#[serde(default)]) — health-probe agents can exercise wake plumbing without paying for an LLM call.system/scripts/health/check-message-roundtrip.sh: End-to-end validation of skip_llm health-probe wake — sends a message, wakes health-probe, verifies mark_delivered, state save, and audit emit.system/scripts/health/check-career-pipeline.sh: Career email pipeline health check — validates draft existence, policy load, and optional dry-run send. Sanitize-clean (env-var paths, example addresses).system/scripts/doctor-checks/boi.sh: BOI daemon doctor check with LaunchAgent-aware detection.system/scripts/hex-watcher: Minimal tmux BOI status pane (one-shot or--watchloop).
Security
Cleared by Sentinel SA-028. No new LOWs introduced. LOW-V14-1 (unquoted ${HEX_DIR} in YAML command fields) is a carry-forward non-blocking finding — fix targeted for v0.13.2.
hex v0.13.0 — Fleet self-driving mechanisms + agent performance review
What's in this release
Fleet self-driving mechanisms
- Fleet pulse watchdog (
system/scripts/health/check-fleet-pulse.sh): emitshex.agent.needs-attentionfor dormant agents. Composite liveness score, WARN/ERROR tiers, budget-lockout suppression. - Stalled initiative monitor (
system/scripts/health/check-stalled-initiatives.sh): detects initiatives with no progress signal in 48h. Sends drive-or-close directives. 24h anti-spam guard. - Mike-pending board monitor (
system/scripts/health/check-mike-pending.sh): tier-labeled (quiet/digest/direct-ping) coalesced alerts. DM fallback if Slack user ID not configured. - Budget period auto-reset (
system/scripts/health/budget-period-reset.py): rolls cost period forward on expiry. 5x runaway safety gate emits CRITICAL instead of resetting out-of-control agent.
Agent performance review
- Per-agent scorecard (
system/scripts/health/agent-performance-review.py): quality/velocity/autonomy from critic reviews, BOI DB, audit trail. Geometric mean (0.0–1.0). Cold-start handling. - Fleet aggregate (
system/scripts/health/fleet-scorecard-aggregate.py): top/bottom 5 performers, biggest movers. Single coalesced digest (no per-agent pings).
Policy templates (5 new)
adapter/policy-templates/fleet-pulse.yaml— wirestimer.tick.1h→ check-fleet-pulse.shadapter/policy-templates/stalled-initiative-monitor.yaml— wirestimer.tick.6h→ check-stalled-initiatives.shadapter/policy-templates/mike-pending-escalator.yaml— wirestimer.tick.2h→ check-mike-pending.shadapter/policy-templates/budget-period-reset.yaml— wirestimer.tick.daily→ budget-period-reset.pyadapter/policy-templates/agent-performance-review-weekly.yaml— wirestimer.tick.daily(Sunday gate) → fleet-scorecard-aggregate.py
Misc
system/events/hex_eventd.py: re-apply duration field to action_result (sc2b5 fix)
Security
SA-026 Sentinel PASS. All new scripts use HEX_DIR env var (no hardcoded user paths).
Notes
- Harness backlog auto-promotion feature deferred to v0.13.1 (incomplete implementation at commit time)
- Set
HEX_DIRenv var to your hex installation directory if not at$HOME/hex
Full changelog: CHANGELOG.md
v0.12.0
What's new in v0.12.0
Upgrade reliability, shell completions, failure-revive protocol, and doctor improvements.
Shell completions
hex completions bash|zsh|fish generates completion scripts for the hex binary. Install helper added at system/scripts/install-hex-completions.sh.
Upgrade reliability (5-bug patch)
upgrade.shnow detectsversion.txtchanges as part of the change-detection phase, preventing the early-exit "nothing to do" from skipping version updates- Upgrade test uses
--localflag instead of unrecognizedHEX_REPO_URLenv var - Version.txt synced from foundation source for v2 layout during upgrade
Doctor enhanced
hex-events daemon status absorbed into doctor checks.
Failure-revive protocol
Three-strike detection, spec-owner-resolver, and build-failure-brief added. All hardcoded paths replaced with HEX_DIR env var.
Policy validator
dagu added to VALID_ACTION_TYPES.
AGENTS.md
Quick Start, Gotchas, and How to Modify sections. Genericized related-repos links (removed personal paths).
Cleanup
cc-connect/slack-bot scripts removed. sanitize-check.sh excludes .hex/ from runtime-binary scan to eliminate false positives from upgrade cache.
v0.11.3 — commands mirror + install fixes
What's new in v0.11.3
Bug fixes
- install.sh: Remove
localkeyword used outside a function (line 514) — was causing install failure in bash strict mode when hex binary check ran - upgrade.sh: Add
HEX_RUNTIMEguard for commands mirror —commands/now mirrors to.claude/commands(Claude Code) or.codex/commands(Codex) based on runtime, fixing sanitize-check violation
Feature (from v0.11.2→v0.11.3 staging)
- commands/ mirror to
.hex/commands/(4ca7086) — install.sh and upgrade.sh now mirrorsystem/commands/*.mdto both.claude/commands/and.hex/commands/so doctor/tooling can discover slash commands independent of runtime - README.md updated to reflect commands/ dual-destination
All gates
- Docker E2E: PASS
- Sanitize check: CLEAN
- Codex parity: 7/7 PASS
- Autonomy regression: PASS
v0.11.2 — stable release
Stable release incorporating all work from 2026-04-30 session:
- hex-events inline daemon fix (P0)
- Harness path fixes (system/ → .hex/, mrap-hex → hex)
- HEX_DIR unification (AGENT_DIR deprecated)
- Codex parity (AGENTS.md + provider + tests)
- Autonomy regression suite (mechanism leak rate = 0%)
- v0.11.0 sync sweep (93 atomic units)
- Upgrade prune feature
- Fleet evolution: synthesizer + brand agents + self-improvement loop
- Goal-alignment dashboard
- fix: install.sh symlink clobber in hex-events install
- fix: memory/SKILL.md added for codex parity completeness