Skip to content

v0.41.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 04:46
· 356 commits to main since this release

[0.41.0] — 2026-07-18

Added — autonomy.guard_when (interactive-scope for the autopilot guard)

  • New autonomy.guard_when: always | pipeline_only (default always, opt-in). Under
    persistent autopilot (autopilot_persistent: true) the .hm-autopilot marker is armed
    every session, so the always guard blocks never-auto ops + nags on Stop even in plain
    interactive chats where no pipeline is running — pure friction. pipeline_only keeps the
    guard dormant until a real pipeline stage starts this session, signalled by a leading
    .claude/.hm-pipeline-active crumb (stamped at stage start) or an active .hm-loop-*
    marker. A missing/typo'd key falls back to always (fail-safe — never a silent
    guard-disable).
  • The crumb carries the per-session HM_SESSION_ID (not the project-scoped session uuid),
    and the guard matches its own session_id from the hook payload — so a prior/parallel
    session's crumb reads as foreign → dormant, with no clear-on-arm and no parallel
    interference. Degraded (no id / unreadable crumb / .claude glob error) block-biases to
    guarded, never a silent disarm.
  • To enable: set autonomy.guard_when: pipeline_only in harness.yaml and re-render.

Boundary tests (advisory)

Layer 1 of PLAN-test-fidelity-gap. Pure parser checks; advisory only.

Status: ✅ PASS

============================= test session starts ==============================
platform linux -- Python 3.12.13, pytest-9.0.3, pluggy-1.6.0
rootdir: /home/runner/work/harness-maker/harness-maker
configfile: pyproject.toml
plugins: hypothesis-6.155.7, anyio-4.13.0, asyncio-1.3.0, respx-0.23.1
asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function
collected 50 items

tests/integration/test_boundary_codex_toml.py ............               [ 24%]
tests/integration/test_boundary_cursor_mdc.py .......                    [ 38%]
tests/integration/test_boundary_harness_yaml.py ........                 [ 54%]
tests/integration/test_boundary_hooks_json.py .........                  [ 72%]
tests/integration/test_boundary_meta.py .......                          [ 86%]
tests/integration/test_boundary_settings_json.py .......                 [100%]

============================== 50 passed in 3.77s ==============================