@rizom/ops 0.2.0-alpha.244 → 0.2.0-alpha.246
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/brains-ops.js +95 -94
- package/dist/index.js +120 -119
- package/package.json +1 -1
- package/templates/rover-pilot/.github/workflows/reconcile.yml +5 -5
- package/templates/rover-pilot/README.md +3 -1
- package/templates/rover-pilot/docs/canonical-crossover-record.md +4 -3
- package/templates/rover-pilot/docs/operator-playbook.md +4 -4
package/package.json
CHANGED
|
@@ -39,23 +39,23 @@ jobs:
|
|
|
39
39
|
# `git diff` cannot see untracked files — without intent-to-add
|
|
40
40
|
# the new config is silently dropped here and every later deploy
|
|
41
41
|
# skips that user (their files never appear in a commit range).
|
|
42
|
-
git add --intent-to-add --
|
|
42
|
+
git add --intent-to-add -- users
|
|
43
43
|
|
|
44
|
-
if git diff --quiet --
|
|
44
|
+
if git diff --quiet -- users; then
|
|
45
45
|
exit 0
|
|
46
46
|
fi
|
|
47
47
|
|
|
48
48
|
git fetch origin "${{ github.ref_name }}"
|
|
49
|
-
if git diff --quiet "origin/${{ github.ref_name }}" --
|
|
49
|
+
if git diff --quiet "origin/${{ github.ref_name }}" -- users; then
|
|
50
50
|
exit 0
|
|
51
51
|
fi
|
|
52
52
|
|
|
53
53
|
patch_file="$(mktemp)"
|
|
54
|
-
git diff --binary --
|
|
54
|
+
git diff --binary -- users > "$patch_file"
|
|
55
55
|
git reset --hard "origin/${{ github.ref_name }}"
|
|
56
56
|
git apply --3way --index "$patch_file"
|
|
57
57
|
|
|
58
|
-
if git diff --cached --quiet --
|
|
58
|
+
if git diff --cached --quiet -- users; then
|
|
59
59
|
exit 0
|
|
60
60
|
fi
|
|
61
61
|
|
|
@@ -46,6 +46,8 @@ When a push changes only deploy contract files, CI prints `No affected user conf
|
|
|
46
46
|
- `brains-ops secrets:encrypt <repo> <handle>`
|
|
47
47
|
- `brains-ops reconcile-cohort <repo> <cohort>`
|
|
48
48
|
- `brains-ops reconcile-all <repo>`
|
|
49
|
-
- `brains-ops reconcile-all <repo> --dry-run` (isolated, no external content-repository access)
|
|
49
|
+
- `brains-ops reconcile-all <repo> --dry-run` (isolated, no external content-repository access; lists both passes' changed files)
|
|
50
|
+
|
|
51
|
+
`render` owns the observational `views/users.md` projection. Reconcile owns generated per-user config and never rewrites observed status rows.
|
|
50
52
|
|
|
51
53
|
Use `docs/canonical-crossover-record.md` to record exact forward and rollback artifact pins before an approved crossover window.
|
|
@@ -75,8 +75,9 @@ Command:
|
|
|
75
75
|
bunx brains-ops reconcile-all <canonical-review-copy> --dry-run
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
- First-pass changed files:
|
|
79
|
-
- Second-pass changed files (must be zero):
|
|
78
|
+
- First-pass reconciler-owned changed files:
|
|
79
|
+
- Second-pass reconciler-owned changed files (must be zero):
|
|
80
|
+
- Observational `views/users.md` unchanged by reconciliation:
|
|
80
81
|
- Review copy unchanged:
|
|
81
82
|
- External content-repository access blocked:
|
|
82
83
|
|
|
@@ -98,6 +99,6 @@ Complete only inside the explicitly approved maintenance window.
|
|
|
98
99
|
- Image digest set matched this record:
|
|
99
100
|
- First reconcile reviewed:
|
|
100
101
|
- Per-instance health, MCP authorization, identity, content, and site checks:
|
|
101
|
-
- Second reconcile produced zero drift and no deploy work:
|
|
102
|
+
- Second reconcile produced zero reconciler-owned drift and no deploy work:
|
|
102
103
|
- Freeze lifted:
|
|
103
104
|
- One-week soak start:
|
|
@@ -52,7 +52,7 @@ Before the window, record and review:
|
|
|
52
52
|
- canary-first rollout order, followed by the remaining cohorts;
|
|
53
53
|
- expected `/health` version, unauthenticated MCP response, site marker, and content repository identity for each posture.
|
|
54
54
|
|
|
55
|
-
Run `bunx brains-ops reconcile-all <canonical-review-copy> --dry-run` against the isolated review copy. The command blocks external content-repository access, leaves the review copy untouched, and must report second-pass zero drift.
|
|
55
|
+
Run `bunx brains-ops reconcile-all <canonical-review-copy> --dry-run` against the isolated review copy. The command blocks external content-repository access, leaves the review copy untouched, lists both passes' changed files, and must report second-pass zero drift. Reconciliation owns generated per-user config; only `render` owns the observational `views/users.md` projection.
|
|
56
56
|
|
|
57
57
|
During the approved window:
|
|
58
58
|
|
|
@@ -60,9 +60,9 @@ During the approved window:
|
|
|
60
60
|
2. Publish and verify the reviewed unified runtime and matching ops artifacts. Do not update pilot desired state until the exact versions are installable and the expected images can be built.
|
|
61
61
|
3. Apply the reviewed canonical pilot revision while automation remains disabled. Confirm repository names, server/domain identity, content repositories, secret selectors, image names, and tag identity against the review diff.
|
|
62
62
|
4. Enable only Build, run it for the canonical desired-state revision, and record every resulting image digest. Stop if the observed digest set differs from the cutover record.
|
|
63
|
-
5. Enable only Reconcile, run it once, and review its generated config commit.
|
|
64
|
-
6. Enable Deploy and deploy one handle at a time in the approved order. After each deploy, run `bunx brains-ops verify-user . <handle
|
|
65
|
-
7. Run Reconcile a second time. Require no generated diff and no deploy work before re-enabling normal automation and lifting the merge/release freeze.
|
|
63
|
+
5. Enable only Reconcile, run it once, and review its generated per-user config commit. It must not rewrite `views/users.md`, and no generated file may combine canonical config with a retired image version.
|
|
64
|
+
6. Enable Deploy and deploy one handle at a time in the approved order. After each deploy, run `bunx brains-ops verify-user . <handle>`, render observed fleet status, and complete the manual identity, content-sync, and app-managed site checks.
|
|
65
|
+
7. Run Reconcile a second time. Require no reconciler-owned generated diff and no deploy work before re-enabling normal automation and lifting the merge/release freeze. Observed status rendering remains separate from this convergence gate.
|
|
66
66
|
|
|
67
67
|
If any gate fails, disable all three workflows again. Restore the prior pilot desired-state and dependency revision, reconcile with the prior ops version, and redeploy the prior image tag/digest as one rollback pair. Verify the prior `/health` version and identity/content/site checks before re-enabling automation. Never restore only config or only an image.
|
|
68
68
|
|