Second observation from real use of v0.8.2 on MongLong0214/agent-control-plane. This one is minor and the behaviour is arguably correct — filing it for the wording and the retry story, not the fallback.
What happened
$ git push -q origin main
commitlore: notes mirror (origin) failed: spawnSync git ETIMEDOUT; branch push continues
The branch push succeeded. Immediately afterwards:
$ commitlore sync
origin nothing-to-do no notes mirror on either side
So the mirror had nothing to publish in the first place, and the failure line was about a transient network timeout while checking.
What is right about it
Not blocking the push is the correct call, and saying so on the same line (branch push continues) is genuinely useful — I did not have to guess whether my push landed.
The friction
The line reads as though something was lost. In this case nothing was: there were no notes to mirror at all. An agent reading that output has to run commitlore sync to find out whether it needs to do anything, and a human is likely to either ignore it permanently or chase it.
Two small things would fix it:
- Distinguish "could not reach the remote" from "failed to publish notes I had." If the local mirror is empty, the message could say so —
notes mirror unreachable (nothing pending); branch push continues is not alarming and is still honest.
- Say what to do.
run 'commitlore sync' to retry turns it into an actionable line. Retrying worked immediately here.
If a later push would republish pending notes anyway, saying that explicitly would be even better, since then the line needs no action at all.
Reproduction
Hard to force deterministically — it needs the remote to time out during the pre-push hook. It reproduced once here under host load (the machine was at load ~45 from concurrent builds), which suggests the hook's git invocation may be more timeout-sensitive than the push itself. If the hook uses a shorter timeout than git's own defaults, raising it or retrying once would make this rarer.
Environment
commitlore 0.8.2 · macOS (Darwin 25.3.0) · Node 22 · git push -q origin main under heavy host load
Second observation from real use of v0.8.2 on
MongLong0214/agent-control-plane. This one is minor and the behaviour is arguably correct — filing it for the wording and the retry story, not the fallback.What happened
The branch push succeeded. Immediately afterwards:
So the mirror had nothing to publish in the first place, and the failure line was about a transient network timeout while checking.
What is right about it
Not blocking the push is the correct call, and saying so on the same line (
branch push continues) is genuinely useful — I did not have to guess whether my push landed.The friction
The line reads as though something was lost. In this case nothing was: there were no notes to mirror at all. An agent reading that output has to run
commitlore syncto find out whether it needs to do anything, and a human is likely to either ignore it permanently or chase it.Two small things would fix it:
notes mirror unreachable (nothing pending); branch push continuesis not alarming and is still honest.run 'commitlore sync' to retryturns it into an actionable line. Retrying worked immediately here.If a later push would republish pending notes anyway, saying that explicitly would be even better, since then the line needs no action at all.
Reproduction
Hard to force deterministically — it needs the remote to time out during the pre-push hook. It reproduced once here under host load (the machine was at load ~45 from concurrent builds), which suggests the hook's git invocation may be more timeout-sensitive than the push itself. If the hook uses a shorter timeout than git's own defaults, raising it or retrying once would make this rarer.
Environment
commitlore 0.8.2 · macOS (Darwin 25.3.0) · Node 22 ·
git push -q origin mainunder heavy host load