Skip to content

[RELEASE] Guard enforcement: policy-driven pause/stop/kill behind three locks (carries #5367) - #5470

Merged
vivekchand merged 1 commit into
mainfrom
release/guard-enforcement
Sep 3, 2026
Merged

[RELEASE] Guard enforcement: policy-driven pause/stop/kill behind three locks (carries #5367)#5470
vivekchand merged 1 commit into
mainfrom
release/guard-enforcement

Conversation

@vivekchand

Copy link
Copy Markdown
Owner

Product record: https://factory.8090.ai/project/b415065f-ab2f-4f53-8864-0c009fd098cb/requirements/c5b10c2a-68c5-457c-a98d-ce73af82472a

What

Release PR for #5367 (merged as 469e1d0): the Guard enforcement half — policy engine, three-lock enforcement in the daemon, Guard tab, one actuator module, Windows native actuators, honest OpenClaw pause. Off by default: new policies are monitor, CLAWMETRY_POLICY_ENFORCE defaults to 0, and the entitlement lock fails closed.

Why it ships now

The Rootconf talk (2026-09-05) and clawmetry.com present a kill switch for rogue agents; this is the wire from a detector finding to the stop, behind locks the operator opens deliberately.

Verification

After merge: wait for release-on-merge.yml + PyPI, verify clawmetry/guard_actuator.py and routes/guard.py are in the published wheel, then pin clawmetry-cloud.

🤖 Generated with Claude Code

https://claude.ai/code/session_01ApawEewWFfK2MEmRWdxKaP

…ee locks (carries #5367)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ApawEewWFfK2MEmRWdxKaP
@8090-software-factory

Copy link
Copy Markdown

✅ Drift Bot (ClawMetry): no drift detected

Drift Bot analyzed the changed files against this project's blueprints and requirements and found no drift.

@vivekchand
vivekchand merged commit 1962bf8 into main Sep 3, 2026
36 checks passed
vivekchand added a commit that referenced this pull request Sep 3, 2026
guard.html shipped in #5470 wrapped in <div id="guard" class="tab-content">.
The switcher hides panels via .page / #page-<tab>; nothing hides tab-content,
so the Guard cards drew above every tab, stuck on "Loading..." because
loadGuardTab keyed on a #page-guard that did not exist.

- guard.html is a normal .page panel with id page-guard
- the 38 #guard-scoped CSS rules move to #page-guard
- guard joins _CM_NODE_TABS so the nav item survives the runtime switcher
- tests/test_tab_template_page_wrapper.py guards all three (red on the
  shipped template and on an orphaned CSS scope); added to the CI file list

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JqeUMB1GPqXU3AJgDmg3mW
vivekchand added a commit that referenced this pull request Sep 3, 2026
…ding (0.12.806 regression) (#5476)

* Fix Guard panel rendering on top of every tab (0.12.806 regression)

guard.html shipped in #5470 wrapped in <div id="guard" class="tab-content">.
The switcher hides panels via .page / #page-<tab>; nothing hides tab-content,
so the Guard cards drew above every tab, stuck on "Loading..." because
loadGuardTab keyed on a #page-guard that did not exist.

- guard.html is a normal .page panel with id page-guard
- the 38 #guard-scoped CSS rules move to #page-guard
- guard joins _CM_NODE_TABS so the nav item survives the runtime switcher
- tests/test_tab_template_page_wrapper.py guards all three (red on the
  shipped template and on an orphaned CSS scope); added to the CI file list

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JqeUMB1GPqXU3AJgDmg3mW

* Re-trigger drift-bot: tab panel contract now in the blueprints

Local Agent Observability gained a "Dashboard tab panel contract" section
and the Guard Enforcement component block cites it for guard.html.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JqeUMB1GPqXU3AJgDmg3mW

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
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