Skip to content

fix(hotfix): 3 regressions post-EPIC6 — noreply sed, shim idempotence, sync_skills noise (AC-R019 AC-R025 AC-R026)#7

Merged
benoitvx merged 1 commit into
mainfrom
feat/hotfix-noreply-shim
Jul 6, 2026
Merged

fix(hotfix): 3 regressions post-EPIC6 — noreply sed, shim idempotence, sync_skills noise (AC-R019 AC-R025 AC-R026)#7
benoitvx merged 1 commit into
mainfrom
feat/hotfix-noreply-shim

Conversation

@benoitvx

@benoitvx benoitvx commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Contexte

3 regressions détectées en re-test dogfood après le merge de la PR #6 (feat/onboarding-polish-phaseA).

#1 (BLOQUANT) — AC-R019 (réouvert) : sed noreply jamais matché

Cause : les patterns sed oubliaient le guillemet fermant des clés JSON. GitHub renvoie "login":"benoitvx" mais le code cherchait "login[[:space:]]*: (sans " fermant) → aucune capture → fallback toujours.

Diff : lib/phases.sh lignes 113-114
```diff

  • gh_id="$(printf ... | sed -n 's/."login[[:space:]]:[[:space:]]"\([^"]\)".*/\1/p')"
  • gh_id="$(printf ... | sed -n 's/."login"[[:space:]]:[[:space:]]"\([^"]\)".*/\1/p')"
    ```
    (idem pour "id")

#2 — AC-R025 : install_shim jamais réécrit

Cause : install_shim fait if [ -f "$shim_path" ]; then return 0 → après un git pull qui modifie le contenu du shim (ex. le fix exec dAC-R022), la réinstall ne repose pas le nouveau fichier.

Fix : comparer les 3 premières lignes du shim existant avec le contenu attendu ; ne skip que si identique (sinon, réécrire).

#3 — AC-R026 : bruit « name= » dans sync_skills

Cause : bash 3.2 produit un diagnostic name=<valeur> quand local name précède name=$(basename ...) sur deux lignes dans une boucle for.

Fix : fusionner local avec lassignation : local name="$(basename ...)".

Tests

  • S35 : noreply sed match la vraie réponse api.github.com/user
  • S36 : install_shim réécrit sur contenu changé + sortie sync_skills sans « name= »

Checklist : bash -n OK, backport AC-R019 status dans FEEDBACK.md, log AC-R025 et AC-R026 dans FEEDBACK+BACKLOG.

…9 R025 R026)

AC-R019 (regression): sed patterns for noreply derivation missed closing
quote on JSON key names. Changed '.*"login[[:space:]]*:...' to
'.*"login"[[:space:]]*:...' (same for "id"). This caused every
PAT to fall back to 'non trouve automatiquement'. Verified against
real api.github.com/user response: now extracts login and id correctly.

AC-R025: install_shim was short-circuiting on 'file exists', never
rewriting when shim content changed (e.g. the exec fix from AC-R022).
Now compares first 3 lines of existing shim with expected content;
rewrites on mismatch.

AC-R026: sync_skills in runtime emitted 'name=<skill>' lines due to
bash 3.2 local+assignment quirk. Merged local declarations with
assignments (local name="$(basename ...)") to suppress the diagnostic
output.
@benoitvx benoitvx force-pushed the feat/hotfix-noreply-shim branch from bb9e18d to ca8d558 Compare July 6, 2026 21:51
@benoitvx benoitvx merged commit 60756d7 into main Jul 6, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant