- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
- Claude-Session
- https://claude.ai/code/session_016o8HwTaqLKEWCHTjsjFtrB
Install the push guard from precommit, not from memory
Deploy story
What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.
Not deployed through the forge lane
No push, promotion, build, or deploy receipt references this commit (receipts are scanned over a bounded recent window). Changes shipped by full node replacement carry their proof in the release gate receipt instead.
Changed files
-
modified
AGENTS.md -
modified
INVARIANTS.md -
modified
mix.exs -
modified
ops/dev/install-push-guard.sh -
modified
test/openagents/push_remote_contract_test.exs
Diff
5 files changed, +65 -18
AGENTS.md modified +3 -1
@@ -26,7 +26,9 @@ mirror; pushing to it directly leaves the forge behind a mirror it does not
| 26 | 26 |
|
| 27 | 27 |
|
| 28 | 28 |
|
| 29 |
|
|
| 29 |
|
|
| 30 |
|
|
| 31 |
|
|
| 30 | 32 |
|
| 31 | 33 |
|
| 32 | 34 |
|
INVARIANTS.md modified +6 -3
@@ -1821,9 +1821,12 @@ The check is a guard, not a deployment: it refuses a wrong destination and
| 1821 | 1821 |
|
| 1822 | 1822 |
|
| 1823 | 1823 |
|
| 1824 |
|
|
| 1825 |
|
|
| 1826 |
|
|
| 1824 |
|
|
| 1825 |
|
|
| 1826 |
|
|
| 1827 |
|
|
| 1828 |
|
|
| 1829 |
|
|
| 1827 | 1830 |
|
| 1828 | 1831 |
|
| 1829 | 1832 |
|
mix.exs modified +1
ops/dev/install-push-guard.sh modified +31 -14
@@ -10,39 +10,54 @@ set -eu
| 10 | 10 |
|
| 11 | 11 |
|
| 12 | 12 |
|
| 13 |
|
|
| 13 |
|
|
| 14 | 14 |
|
| 15 |
|
|
| 15 |
|
|
| 16 |
|
|
| 17 |
|
|
| 18 |
|
|
| 19 |
|
|
| 20 |
|
|
| 21 |
|
|
| 22 |
|
|
| 23 |
|
|
| 24 |
|
|
| 16 | 25 |
|
| 17 | 26 |
|
| 18 | 27 |
|
| 19 | 28 |
|
| 20 |
|
|
| 21 |
|
|
| 29 |
|
|
| 22 | 30 |
|
| 23 |
|
|
| 31 |
|
|
| 24 | 32 |
|
| 25 | 33 |
|
| 26 | 34 |
|
| 27 | 35 |
|
| 36 |
|
|
| 28 | 37 |
|
| 29 | 38 |
|
| 39 |
|
|
| 40 |
|
|
| 41 |
|
|
| 42 |
|
|
| 43 |
|
|
| 44 |
|
|
| 45 |
|
|
| 46 |
|
|
| 47 |
|
|
| 48 |
|
|
| 30 | 49 |
|
| 31 | 50 |
|
| 32 | 51 |
|
| 33 |
|
|
| 34 |
|
|
| 35 |
|
|
| 52 |
|
|
| 36 | 53 |
|
| 37 | 54 |
|
| 38 |
|
|
| 39 |
|
|
| 40 |
|
|
| 55 |
|
|
| 56 |
|
|
| 41 | 57 |
|
| 42 | 58 |
|
| 43 | 59 |
|
| 44 | 60 |
|
| 45 |
|
|
| 46 | 61 |
|
| 47 | 62 |
|
| 48 | 63 |
|
@@ -57,5 +72,7 @@ HOOK
| 57 | 72 |
|
| 58 | 73 |
|
| 59 | 74 |
|
| 60 |
|
|
| 61 |
|
|
| 75 |
|
|
| 76 |
|
|
| 77 |
|
|
| 78 |
|
test/openagents/push_remote_contract_test.exs modified +24
@@ -101,6 +101,30 @@ defmodule OpenAgents.PushRemoteContractTest do
| 101 | 101 |
|
| 102 | 102 |
|
| 103 | 103 |
|
| 104 |
|
|
| 105 |
|
|
| 106 |
|
|
| 107 |
|
|
| 108 |
|
|
| 109 |
|
|
| 110 |
|
|
| 111 |
|
|
| 112 |
|
|
| 113 |
|
|
| 114 |
|
|
| 115 |
|
|
| 116 |
|
|
| 117 |
|
|
| 118 |
|
|
| 119 |
|
|
| 120 |
|
|
| 121 |
|
|
| 122 |
|
|
| 123 |
|
|
| 124 |
|
|
| 125 |
|
|
| 126 |
|
|
| 127 |
|
|
| 104 | 128 |
|
| 105 | 129 |
|
| 106 | 130 |
|