Skip to content

chore(notifications): run the checker on the VPS; GitHub keeps a manual fallback - #1151

Merged
ashwkun merged 1 commit into
masterfrom
notifier-on-vps
Oct 20, 2026
Merged

ashwkun merged 1 commit into
masterfrom
notifier-on-vps

Conversation

@ashwkun

@ashwkun ashwkun commented Oct 20, 2026

Copy link
Copy Markdown
Member

Summary

The new-episode checker moves to the VPS and runs hourly; the GitHub workflow becomes a manual fallback that rehearses by default.

Motivation

The workflow is scheduled every 30 minutes, but GitHub ran it every 2–6 hours (for example 03:33, 09:08 and 14:25 UTC on 20 Oct), so notifications arrived hours late. Each run also committed its state file to the repository.

What changed

  • scripts/check-new-episodes.js: the state file path can be set with NOTIFIER_STATE_FILE; without it, nothing changes.
  • Workflow: no schedule. workflow_dispatch stays as a fallback with dry_run on by default, because a live run there would use the repository's older state and resend releases.
  • scripts/README.md: where the checker runs now and where its state lives.

The VPS side (an hourly systemd timer, its own Firebase service account limited to reading registrations and sending pushes, state outside the checkout and in the daily backup) lives in the VPS repository.

Behavior & compatibility

  • Listeners: notifications arrive within about an hour of a release instead of hours later; content is unchanged.
  • Deploy: the VPS timer starts after this merges and the latest committed state is copied to the VPS, so the two never send in parallel.

Impact (required)

User impact — pick exactly one

  • user-impact-critical
  • user-impact-high
  • user-impact-medium
  • user-impact-low
  • no-user-impact

Backend — optional, pairable with any user-impact level

  • backend-change

Release copy (verbatim — highest priority)

CHANGELOG.md (required developer copy)

Changed

  • New-episode notifications are checked hourly on our own server instead of GitHub Actions, whose schedule ran every few hours.

README What's New / Upcoming (required for user-impact changes)

  • New-episode notifications arrive sooner after a release.

Test plan

  • npm run test:check-new-episodes --prefix scripts: 45 tests pass.
  • After merge: one rehearsal run on the VPS against the copied state, then the hourly timer.

@ashwkun ashwkun added user-impact-low Minor user-facing polish — CHANGELOG yes; README optional backend-change Touches backend/proxy/infra — pairable with any user-impact level labels Oct 20, 2026
@coderabbitai

coderabbitai Bot commented Oct 20, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 37 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: boxcreate/boxlore/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: dc80d6b9-5525-40a5-b77c-0465840c2dfb
📥 Commits

Reviewing files that changed from the base of the PR and between ec1a9c9 and 8a15d07.

📒 Files selected for processing: 3
  • .github/workflows/new-episode-check.yml
  • scripts/README.md
  • scripts/check-new-episodes.js
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sonarqubecloud

Copy link
Copy Markdown

@ashwkun
ashwkun merged commit 2dd7662 into master Oct 20, 2026
11 of 12 checks passed
@ashwkun
ashwkun deleted the notifier-on-vps branch October 20, 2026 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend-change Touches backend/proxy/infra — pairable with any user-impact level user-impact-low Minor user-facing polish — CHANGELOG yes; README optional

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant