You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some QA and CR comments never show up on the board. Pulldasher only hears about a new comment, push, or close when GitHub sends it a webhook, and some of those webhooks are not getting through. GitHub does not resend a failed delivery, and the only thing that re-reads a pull later is a restart. A restart only covers the repos in the config, so stamps in any other repo stay missing until someone clicks refresh on the card.
ifixit#64895: the board stopped updating it at 10:28Z and still shows the old head as a draft. It missed a push at 12:18Z, ready for review, and a CR comment at 12:51Z.
Pushes: #64893, #64521, #64894 and #64885 still show their old head after pushes between 11:01Z and 12:58Z. #64886, pushed three seconds after #64885, came through, so single events are being dropped.
Repos missing from the config: 8 open pulls in fixbot, DocHarvestor, fixhub-app, ci-actions and expo have a QA comment after their last push that the board ignores.
Why they stay missing: the startup refresh only walks config.repos (utils.js#L79, from app.js#L98). Other repos reach the board only through webhooks.
Why deliveries fail is still open. It needs the webhook's delivery log or the production container logs.
It isn't the QA pattern, the push check, or comment edits
The production config uses the same regex as config.example.js#L5-L8, and it matches every missed comment when run in Node.
Every missed stamp is newer than its pull's head commit, so the check that drops stamps older than the last push doesn't apply.
The refresh on edit (githubHooks.js#L158) works: edited QA stamps on ifixit#64779, #64780 and #64782 through #64785 registered.
Ways to fix it
A re-read costs 8 to 15 REST calls per pull (#467). The board holds 151 open pulls from configured repos, 316 in all.
#
Approach
Fixes missed events
Missing repos
Delay
GitHub calls
New code
1
Refresh the card, or restart
When someone notices
Refresh only
Until noticed
1,200 to 2,300 per restart
None
2
Add every repo to config.repos
At restart
Yes
Next restart
2,500 to 4,700 per restart
Config only, a line per new repo
3
Startup refresh every hour
Yes
No
Up to 1 hour
1,200 to 2,300 an hour
A timer
4
Per-repo list of recently updated pulls every 10 min
Yes
No
Up to 10 min
156 an hour, plus re-reads
A timer and a list call per repo
5
Option 4 with conditional requests
Yes
No
Up to 10 min
Re-reads only
Option 4 plus an ETag store
6
One org-wide search every 10 min
Yes
Yes
Up to 10 min
6 search calls an hour, plus re-reads
A timer and one search call
7
Resend failed deliveries on a schedule
Only failed deliveries
Yes
Next run
A few per run
Script, workflow, org owner token
8
Fix why deliveries fail
That cause only
n/a
n/a
None
Unknown
I'd go with 6. It needs the least new code of 4 to 6, covers every repo, and search returns closed pulls, so it covers #501's case too. The open question is 5 or 6. Option 5 avoids search, but it only covers configured repos and has to store each list's ETag.
Notes on the options
Re-reads: 111 org pulls changed in the 24 hours before this was written, so options 4 to 6 spend up to 900 to 1,700 calls a day on re-reads. Comment edits count as updates: fixhub-app#21, ci-actions#15 and expo#1332 each show an updated_at equal to their QA edit.
Option 6: search has its own limit of 30 calls a minute. Its indexing delay isn't documented, so each search should overlap the previous one by a few minutes.
Option 7: GitHub's redelivery script needs an org owner token. It misses events Pulldasher answered 200 to but failed to save, and only deliveries from the last 3 days can be resent.
Option 8: deploys and restarts still drop events, so it needs one of 4 to 6 next to it.
QA comments the board ignores in repos missing from the config
All posted after the pull's last push and matching the QA pattern, as of 2026-09-29. Clicking refresh on each card should clear them.
Some QA and CR comments never show up on the board. Pulldasher only hears about a new comment, push, or close when GitHub sends it a webhook, and some of those webhooks are not getting through. GitHub does not resend a failed delivery, and the only thing that re-reads a pull later is a restart. A restart only covers the repos in the config, so stamps in any other repo stay missing until someone clicks refresh on the card.
Reported on ifixit#64761: the QA comment came after the last push and never counted.
What the board missed on 2026-09-29
config.repos(utils.js#L79, fromapp.js#L98). Other repos reach the board only through webhooks.Why deliveries fail is still open. It needs the webhook's delivery log or the production container logs.
It isn't the QA pattern, the push check, or comment edits
config.example.js#L5-L8, and it matches every missed comment when run in Node.githubHooks.js#L158) works: edited QA stamps on ifixit#64779, #64780 and #64782 through #64785 registered.Ways to fix it
A re-read costs 8 to 15 REST calls per pull (#467). The board holds 151 open pulls from configured repos, 316 in all.
config.reposI'd go with 6. It needs the least new code of 4 to 6, covers every repo, and search returns closed pulls, so it covers #501's case too. The open question is 5 or 6. Option 5 avoids search, but it only covers configured repos and has to store each list's ETag.
Notes on the options
updated_atequal to their QA edit.git-manager.js#L165-L171), so a pull whose close was dropped stays stuck, the case Fix pulls stuck open after a missed close webhook #501 fixes.QA comments the board ignores in repos missing from the config
All posted after the pull's last push and matching the QA pattern, as of 2026-09-29. Clicking refresh on each card should clear them.
Found by comparing
signoffs.qa.byfrom/api/v1/pullswith each pull's comments and head commit date from the GitHub API.