hooks: register Entire as a Git config-based hook on Git 2.54+
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Start by tracing the existing five hook registrations, the Lefthook integration in lefthook-local.yml, and the status and doctor delivery checks. Review #2388's Git-version detection approach and the listed migration, uninstall, worktree, and mixed-version questions. Done means Git 2.54+ registration, coexistence, migration, and delivery checks work without duplicate or missing captures.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
Git 2.54 added config-based hooks (hook.<name>.event + hook.<name>.command). Git runs them in addition to the file in the hooks directory. On Git 2.54+ Entire could register its five hooks there instead of owning .git/hooks/*, which would end the ownership fights with every hook manager at once.
What was verified (Git 2.55.0, built from source; hk 2.1.0)
- A config hook and a
.git/hooks/<name>file for the same event both run. The config hook runs first. - Both receive the same arguments and the same stdin:
pre-pushgetsorigin <url>and one ref line on stdin, andpost-rewritegetsamendand one rewrite pair. hook.<name>.enabled=falsedisables a single entry.- hk 2.x already works this way (
hook.hk-pre-commit.command), and its hooks compose with Entire's native hooks with no interference.
Why it matters
- Lefthook (#2388): Entire currently runs as a Lefthook job, so
LEFTHOOK=0skips Entire too. Lefthook's launcher exits before reading any config, so a commit made that way is never linked to a checkpoint. A config hook isn't inside Lefthook's launcher, soLEFTHOOK=0couldn't skip it, and Lefthook's constant reclaiming of.git/hooks/*wouldn't matter. - Husky, pre-commit, Overcommit, legacy hk: these overwrite
.git/hooks/*at install time. Today Entire repairs that on the next agent turn, and commits made in between aren't captured. A config hook is never overwritten. statusanddoctordelivery checks (#2264) get simpler, since nothing else writes where Entire registers.
Open design questions
- Mixed git versions on one repo. A GUI client with an older bundled git ignores
hook.*config. If Entire drops its.git/hooksfiles on 2.54+, those clients silently capture nothing. If it keeps both, Git 2.54+ runs Entire twice per event. Options: keep both and have the.git/hookscopy skip when the running git honours config hooks, or accept dedup at the handler level. - Coexistence with the Lefthook integration. On 2.54+, Entire should probably stop registering in
lefthook-local.yml, or every hook runs twice. - Scope. Local repo config (
git config --local), matching per-clone.git/hookstoday. Worktrees share.git/config, so checkextensions.worktreeConfigand linked-worktree behaviour. - Migration and uninstall. Moving existing installs,
entire disable --uninstall, anddoctor --forceall need to learn the new location.GIT_DIR/-Chook environments behave as today. - Detection. Decide on a
git --versioncheck (the approach #2388 uses for hk's warning) versus probinggit hook list <event>.
Related
#2264, #1349, #2263, #2388 (the LEFTHOOK=0 limitation is documented there), #2577 (the carry-forward fix for commits made with hooks skipped).
🤖 Generated with Claude Code
- Lingua principale
- Go
- Stelle
- 5.1k
- Fork
- 475
- Merge medio
- 1g 17h
- PR unite (30g)
- 212
Preparare l'ambiente
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di entireio/cli
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
entireio/cli#2416 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Stale `entire configure --agent` hints in investigate and review error messagesForse già presa @suhaanthayyil l’ha presa 53 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
Codex last_assistant_message is parsed then discarded on Stop/SubagentStopForse già presa @Vishal202-rgb l’ha presa 44 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
entireio/cli#2064 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di entireio/cli
Issue simili
-
Project submission: CodeAFAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
slavakurilyak/awesome-ai-agents#888 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement nav-pilot
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
kind/enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
I maintainer di solito rispondono entro 1 giorno
-
feat(gmail): make gmail get --format raw text output the exact message, like drafts get --format rawApertaclawsweeper:needs-product-decision clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster P3
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
openclaw/gogcli#1276 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Seed a JRNYAx price before the last close so asset-detail S1.3 doesn't fail from 08:00Z to the openApertabug tests
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
lognorman20/monaco#7231 ·