@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rizom/ops",
3
- "version": "0.2.0-alpha.244",
3
+ "version": "0.2.0-alpha.246",
4
4
  "description": "Operator CLI for managing private brain fleet registry repos",
5
5
  "keywords": [
6
6
  "brains",
@@ -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 -- views users
42
+ git add --intent-to-add -- users
43
43
 
44
- if git diff --quiet -- views users; then
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 }}" -- views users; then
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 -- views users > "$patch_file"
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 -- views users; then
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. 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>` and complete the manual identity, content-sync, and app-managed site checks.
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