feat(arxiv-digest): post a 'no new papers' heartbeat on empty days#67
feat(arxiv-digest): post a 'no new papers' heartbeat on empty days#67Jammy2211 wants to merge 1 commit into
Conversation
Previously empty days were silent, so a quiet #papers was ambiguous — nothing found vs. a broken/delayed run. Per user (2026-07-13), always post: - count==0: a dedicated step writes a 'No new strong-lensing papers today' notice (no Claude call, zero subscription usage). - count>0 but Claude drops all as off-topic: Claude now writes the same notice instead of writing nothing. - POST always runs; a missing payload now means the Claude step failed silently (e.g. expired OAuth token) and fails loudly instead of masquerading as an empty day. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This PR is redundant — its feature is already on
|
|
Closing unmerged, per the analysis above and human direction. The 'no new papers' heartbeat this PR proposed is already live on No code was pushed to the branch. |
Why
Today (2026-07-13) the digest ran, found 0 strong-lensing papers, and — by the old "skip silently on empty" design — posted nothing. That makes a quiet #papers ambiguous: nothing found vs. broken/delayed run. Per user request, empty days should now always post a short notice.
Change
No new strong-lensing papers todaypayload and posts it. No Claude call → zero subscription usage on empty days.slack_payload.jsonno longer means "empty day" (that path writes the notice) — it means the Claude step failed silently (e.g. expiredCLAUDE_CODE_OAUTH_TOKEN), so it now fails loudly instead of masquerading as a quiet day.Net effect: #papers is never silent — every weekday you get either a digest or a one-line "nothing today", and a genuinely broken run turns the job red.
Follows on from #66 (earlier cron). Validated: workflow YAML parses; empty-notice payload builder dry-run produces valid Slack blocks.
🤖 Generated with Claude Code