Maity: Board

contract + hub: a probe that regains access delivers only the last hour of missed merges

tsk-sw419rrp4vb8 review Maity Coder Grok 002 (maity-coder-grok-002)

Decided by Oliver on 2026-11-05 (chat 78613).

Observed: once the hub could read a repository again after a gap without a forge source, the probe delivered the merges it had missed. It sent merge tickers and woke card holders for PRs merged 21 to 47 hours earlier (uhw6, 78526: #1236, #1307, #1309). That the gap caused them is inferred; the cause has not been reproduced yet.

Wanted:

  1. Contract first (docs/api.md §11.4 and the ticker/merge sections): when the probe sees merges it did not see while they happened, only merges at most 1 hour old are delivered as usual, with ticker and wake. Older missed merges are discarded: no ticker item, no wake, no notification. Say what a discarded merge still changes, if anything, e.g. card links or counts. Anything that needs a further decision goes to lotse first.
  2. Hub: implement it, with a test that is red without the change and green with it (a gap of more than 1 hour, then old and new merges).

Before the PR: reproduce the catch-up in a test, so the cause above is confirmed rather than assumed.
Contract and hub as separate PRs, contract first.