R-758: mem_limit is the sum of the compose limits — eight figures corrected, gate mem-limit-sum (--fast, stdlib) with decoys

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-10-05 21:28:10 +02:00
parent 8940d768d3
commit 1b24d139bd
15 changed files with 292 additions and 29 deletions
+6
View File
@@ -25,6 +25,8 @@ Gates, in order (all must pass; **non-zero exit on any failure**):
ladder entry whose digests the registry still serves (hook; skipped on CI)
10. onboarding static, instant, whole repo — a NEW template directory carries a complete onboarding
record (NEW-APP-CHECKLIST.md; the 53 apps published before 2026-10-01 are exempt by name)
11. mem-limit-sum static, instant, whole repo — `.felhom.yml` resources.mem_limit equals the sum of every
service's deploy.resources.limits.memory, and every service has one (R-758)
4. engine-major static, needs GIT HISTORY — no database engine pin crosses a MAJOR version
(operator ruling 2026-09-13; expires when Slice 4 / R-448 ships). Runs in the
pre-push hook, which has the full clone; on a SHALLOW clone (CI fetches at
@@ -117,6 +119,10 @@ GATES = [
# 2026-10-02 (`09` §3 decisions 63/64): a family-gated template's exceptions are literal prefixes, it declares
# min_controller >= 0.287.0, and the newest baked golden knows the gate. Static, files only.
("family-gate", "check-family-gate.py", False, True, False),
# R-758 (2026-10-05): `.felhom.yml` resources.mem_limit is the SUM of the compose limits (REUSE.md §2). Eight
# templates were under it — the deploy screen and the box's overcommit warning read less than the app may take.
# Static, stdlib only (no PyYAML on CI), so --fast: the hook and CI.
("mem-limit-sum", "check-mem-limit-sum.py", True, True, False),
]
# 3 (R-605): the gate's HARNESS refused to run — its canary failed or it had nothing to judge — so NO app was