HOMELAB-2682: chore(tooling): relief threshold 55->30, phase1 (GITS+Lab) only #880
No reviewers
Labels
No labels
operator-review
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Homelab/infra-core!880
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "plane/HOMELAB-2682-relief-threshold-p1"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What ships
The relief threshold for the GITS and Lab sandboxes only:
RELIEF_THRESHOLDdefaults to 30 (was 55). Three files, all under
core/manifests/apps/sbx-common-phase1/:epic-supervisor.wait-orchestrator.shRELIEF_THRESHOLD="${RELIEF_THRESHOLD:-30}", theCONTEXTOcheck compares against it, header text updatedepic-supervisor.SKILL.mdCONTEXTOand §6 relief sayRELIEF_THRESHOLD(30 % by default); one line in §6 naming the single setting;reglas.mdadded to the §0 start-up reading listSHA256SUMSNothing else. No new mechanism, no new variable: it is the same single setting
under the same name in every copy of the wait.
Deliberately excluded (and why)
sbx-common/(the Spanishsupervisor-epica.SKILL.md+supervisor-epica.espera-orq.sh+ itsSHA256SUMS) — those bytes are whatsbx-sendrastruns. The ruling: Sendrast stays at 55. There is no PR B;/opt/sendrast-directoris untouched.sbx-gits/reglas-fijas.md— the added section was ruled the wrong file:its hunk breaks the 60-line cap and
17[R159](d). The single-setting notebelongs in
epic-supervisor§6, which is where it now is.Closing condition:
sbx-sendrastrenders byte-identical (proof)El Director's condition is that the sendrast render does not change at all,
byte for byte — not merely that no pod rolls.
kubectl kustomize core/manifests/apps/sbx-sendrastsha256origin/live)8ea98ed85770700a92ad333431d9d7f3b138cf37d225759f534949db66b0cf066581d3a9c6f74f59ae2b4e10068b1429f736271a21dff84ce00280b4e13de163e4d804c32bf5df98d225759f534949db66b0cf066581d3a9c6f74f59ae2b4e10068b1429f736271akubectl kustomize, no flags (what ArgoCD does), each tree rendering withits own
../sbx-commonComponent: both exit 0, 2191 lines,cmp0,diff -uempty.Two controls show the comparison is not vacuous:
80cd9eb598cdc057d9ea7503b5516ae13666c97b) renderssendrast as
955f1aab250dcc365cf209ae3696ac2345a782db48d9b23003c91bb3df1063a1— different from base (the
sbx-commonpair changing thesha256sumsConfigMap and the Spanish skill text). That is exactly the reach this PR drops.
sbx-labmoves from65b5ecb6095c41d832ce573de79649c53720847ae6a166462e403f2d5eb7863c(base) to
9a685456e7aa52ccf0dcc167aefd795a07e0ebd4b7f8675d3c38f1c0cda8e218(head), 23 changed lines — the phase1 ConfigMap the GITS+Lab sandboxes consume
is the one that moved.
Evidence (renders, diff, controls, README with the commands to reproduce):
working-files/ldv0/homelab-2682-prA-render-proof/on the mgmt VM.Verification run locally
sha256sum -c SHA256SUMSincore/manifests/apps/sbx-common-phase1: all 15entries OK
bash -n epic-supervisor.wait-orchestrator.sh: cleanshellcheck: one pre-existing SC2034 (PLANE_TOKENunused) — identical atbase, untouched by this PR
grep -n '\b55\b'over both phase1 files: no matchgit diff origin/live...HEAD --stat: exactly the 3 files aboveOperational note
ConfigMap data only; the StatefulSets are
OnDelete, so nothing rolls. Thepods pick the new threshold up at their next restart, and until that restart
the in-pod
SHA256SUMScheck insbx-labgoes RED on sync because the mountedSHA256SUMSrefreshes in place while the skills files do not. Accepted, andrecorded so homelab-33 and homelab-73 know before landing.
Closes nothing by itself: #878 is superseded by this PR and is to be closed
unmerged.
Verdict of record — ld-reviewer — head
21dff84ce0: APPROVEmodel: omniroute/deepseek-flash
session: 01a1b28d-9e26-7155-8e66-42819d527083
Blockers
None.
What I measured
I worked from git objects only: a throwaway read-only clone,
git diff 8ea98ed8..21dff84c, two detached worktrees (base and head), and my ownkubectl kustomizerender ofcore/manifests/apps/sbx-sendrastat each side.core/manifests/apps/sbx-common-phase1/:SHA256SUMS,epic-supervisor.SKILL.md,epic-supervisor.wait-orchestrator.shsbx-commonbytesfc3fff5be372634a7835b98513cd6c550e472af2at base and at headsbx-gitsbytes (incl.reglas-fijas.md)73009b2cc6982555cb42998297c380823f32006fat base and at headRELIEF_THRESHOLD="${RELIEF_THRESHOLD:-30}"(wait script L113); comparison[ "${pct%.*}" -ge "$RELIEF_THRESHOLD" ](L200); 0 bare55left anywhere in phase1Read \intent.md`, `operator-words.md`, `reglas.md`, `decisiones.md`, `status.md` and `sup-handoff.md` if it exists.`reglas.mdpresentSHA256SUMSinternal consistencysha256sum -cat head: 15/15 OK; at base: 15/15 OK; diff base→head is exactly lines 3–4 (the two edited files). New entries0052cdce…andbb80172b…match the tree.d225759f534949db66b0cf066581d3a9c6f74f59ae2b4e10068b1429f736271a, headd225759f534949db66b0cf066581d3a9c6f74f59ae2b4e10068b1429f736271a;cmpexit 0sbx-common's Spanish pair verbatim — 8 occurrences of55(incl.≥ 55 %and-ge 55) and 0 occurrences ofRELIEF_THRESHOLD, plus thesbx-skills-sourcecomponent ConfigMapsbx-common, so base==head is evidence, not vacuousbash -nOK at head and at base;sh -nfails at L72 on both sides (pre-existing: the script is#!/usr/bin/env bashand uses arrays)scripts/gits-sbx-epic-test.shpins no55for phase1, assertssbx-sendrast/kustomization.yamldoes not pull phase1 (L11354)Judgement
Correctness: the diff does exactly what the ruling asks, and nothing else. The setting is one variable under one name, its default moved 55→30, the comparison reads the variable, and the two prose mentions in §2 and §6 now name it rather than restating a number, so the doc cannot drift from the script again.
Completeness: the three artefacts a settings change needs are all present — the script, the skill prose that describes it, and the regenerated
SHA256SUMSlimited to the two edited files.Claim honesty: the commit message says
sbx-sendrast's render is byte-identical at base and head, and my own re-derivation reproduces that exactly. It also sayssbx-commonandsbx-gits/reglas-fijas.mdare deliberately absent, and both trees hash the same on both sides. The §6 sentence claiming the name is shared by "§2andwait-orchestrator.sh" is accurate — §2 does carry the identifier (L236).Non-blocking notes, for whoever reads this next:
kustomization.yamlis absent from the phase1SHA256SUMSlist. That is the same on base and head, so this PR neither introduces nor worsens it.1.list interrupt a paragraph, so the list still renders; cosmetic only.-getest, so a fractional override such as30.5would make the test error out rather than compare. Not a problem for the documented default.