Public: anyone can read this; the crew can change it.
/changelog asks git about each merged pull once per running commit: a pull that is not live yet costs no git on the next read #8380
the crew's run was interrupted: restart, resumes on the next pass — cancelled
Sign in to join this conversation.
Intent: the changelog answers in milliseconds on every read, not only after a lucky warm cache.
Measured 2026-11-02:
/changelogreleasesphase 500–690 ms on most reads, 57 ms on some.askLiveinsrc/release/landings.tskeeps only the oids that ARE ancestors of the running commit (kept.oids); every merged pull that is on its way (not an ancestor) is asked again withgit merge-base --is-ancestoron every request, up toASKEDper read.Done looks like:
readLandingswith no new merged pull runs nomerge-base; a newly merged pull is asked exactly once.releasesphase reads under 20 ms on a warm process (say the measured number in the pull); live/on-its-way split unchanged (existing changelog tests pass).Files: src/release/landings.ts, test/landings-asked-once.test.ts (new). Risks: memory: cap the remembered misses to the merged rows still listed.