chore(memory): BLK-021/022, LRN-150/151, BDR-088, EVAL-029 — macOS port

Capitalizes the macOS port and the gstack Chromium deadlock, plus an
append-only correction to BLK-008 / LRN-038: their "ubuntu24.04 fallback
build" cause is refuted — macOS arm64 has a native Playwright 1.58.2 build,
no fallback, and the same hang reproduces. The real variable was the Node
version, and that wrong record misdirected this investigation for an hour.

EVAL-029 records two process failures worth keeping: the first fix
recommendation (pin node@22) was reversed only because the user asked
whether the browser was current — staleness had gone unpriced; and the grep
sweep returned empty twice while defects were present, once to `set -e`,
once to a pattern that could not match `${1,,}`.

Index rows added for all four registries. Pre-existing index drift
(BLK-018..020, LRN-144..149) left alone — backfilling means summarising
entries someone else wrote.
This commit is contained in:
2026-09-15 21:39:22 -04:00
parent a53a5a26a8
commit 66012a97a7
6 changed files with 95 additions and 0 deletions
+30
View File
@@ -1272,3 +1272,33 @@ dans un runner; capitalize reste main-loop.
- [x] T3 BDR-084 + CHANGELOG + journal.
- [x] T4 make test rc 0 + shellcheck clean (SC2016 silencé, littéral
voulu). Merge NON fait — gate humain.
## 2026-09-13/15 — portage macOS du fork (sur develop)
Contexte: repo migré Linux → macOS (Darwin 25.6 arm64), origin basculé sur
git.bchanot.fr/bmottin/claude_mac. Racine unique: `/bin/bash` = **3.2.57**, et
`#!/usr/bin/env bash` y résout (pas de bash Homebrew). Détail: [[BLK-022]], [[BLK-021]].
Oracle = `make test` du repo: chaque défaut est apparu comme une assertion nommée.
- [x] T1 `bugfix/url-guard-ssrf-bash32` — `${1,,}` (bash 4+) → `shopt -s nocasematch`.
Garde SSRF qui renvoyait rc 0 pour localhost/127.x/10.x/192.168.x/172.16-31.x/
169.254.169.254. 10 cibles → rc 2, hôtes légitimes → rc 0.
- [x] T2 `bugfix/macos-bash32-portability` — `mapfile` → `_read_lines_into` (3 libs de
commit + 2 tests), `declare -A` → `case`, commentaires de `source-scope.sh`.
deploy-commit 4→16/16, source-scope 31→34/34, run-reconcile 23G/1R→25G/0R.
- [x] T3 `bugfix/macos-gnu-coreutils` — `timeout` résolu + repli bash pur (prouvé via
`GATES_TIMEOUT_BIN=""`, 64/64), `touch -d`→perl utime, padding `wc -l`,
`sed -i`+`\n`→awk, `/bin/grep`, `stat -c`. fast-libs 7→11/11, seo-data 217→221/221.
- [x] T4 `bugfix/macos-installer` — `_sed_inplace` (BSD) + awk pour le commentaire
orphelin (no-op même sur GNU) + `gstack_install_browser_guarded` (deadline 900s,
bump Playwright + 1 retry, warn non fatal). Hang forcé → rc 124 en 6s, 0 orphelin.
- [x] T5 `chore/sweep-bdr019-makefile` — gabarit `new-skill` réinjectait
`disable-model-invocation` que BDR-019 avait retiré. `doctor.sh` déjà corrigé amont.
- [x] T6 sous-module resynchronisé sur le pointeur de develop (11de390), bump
Playwright 1.63.0 réappliqué en local ([[BDR-029]]). `chromium.launch()` OK (Chrome 153).
- [x] T7 capitalisation — BLK-021/022, LRN-150/151, BDR-088, EVAL-029, journal, index à jour.
- [ ] MERGE — les 5 branches attendent le gate humain gitflow. Rien n'est poussé.
- [ ] OUVERT — `gitflow-test.sh` 13 échecs PRÉEXISTANTS et non attribués
(92/14 sur develop vierge vs 93/13 après). Chantier distinct, pas un reliquat.
- [ ] OUVERT — gitleaks absent de la machine, non fourni par l'installeur →
T16a et `make scan-secrets` indisponibles.
- [ ] OUVERT — dérive d'index préexistante: blockers BLK-018..020 et learnings
LRN-144..149 absents de leur Index (non backfillés — résumés non écrits par moi).