Skip to content

feat(events-crawler): enable NVCL and Capilano - #97

Merged
ltanafranca1004 merged 1 commit into
mainfrom
feat/enable-nvcl-capilano
Aug 9, 2026
Merged

feat(events-crawler): enable NVCL and Capilano#97
ltanafranca1004 merged 1 commit into
mainfrom
feat/enable-nvcl-capilano

Conversation

@ltanafranca1004

@ltanafranca1004 ltanafranca1004 commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

What & why

Flips nvcl and capilano to enabled: true on Savar's explicit sign-off. Both landed staged and disabled in #92 / #94 so their adapters could be dry-run against the real feed before a single row could reach the shared events table — this is the flip that ends that staging.

Config only: two booleans plus the two comments that go stale with them (the section header, and Capilano's measurement date). No adapter, schema, migration, cron or next.config.ts change.

🛑 Merging this does NOT go live

ACTIVE_SOURCES only widens for a run once the function is deployed, and the deploy is a separate step. Until then production keeps running the currently deployed v7 bundle — which contains neither of these adapters — however this file reads.

Dry run at production settings (2026-08-09)

nvcl:     walked 16 page(s), 52 in-window + relevant (36 unique), taking soonest 25
capilano: parsed 10 block(s), 1 in-window + relevant (1 unique), taking soonest 1
source rows note
nvcl 25 cap-bound at MAX_PER_ORG; 36 unique relevant in the 4-month window
capilano 1 Fall 2026 New International Student Orientation. The ~10-item ceiling is robots.txt disallowing the ?…search=… calendar-navigation URLs — a low count here is the ceiling, not a failure

NVCL's yield depends on #96. Before that relevance widening it kept 10; the taken 25 now include Open door community hub, Drop-in technology help (incl. the Farsi session) and MS Office learn and practice: Intro to Word — exactly the terms #96 added. Worth noting the pre-existing backlog claim that NVCL matched nothing was wrong; #96 corrected it.

Blast radius once deployed

ACTIVE_SOURCES widens 10 → 12. Combined with #96 (already on main, also undeployed), the first cron run after the deploy inserts roughly:

source now after
nvcl 25
capilano 1
nvdpl 11 20 (from #96)
surrey-libraries 25 25 (cap-bound; composition shifts)
everything else unchanged

+35 rows. Rows dedupe on external_link (events_external_link_key), so re-crawls don't duplicate.

Image hosts need no change: www.capilanou.ca is already in next.config.ts remotePatterns, and nvcl.ts passes null to resolveCover so its covers only ever come from images.pexels.com / images.unsplash.com, both already allowlisted.

Verification

  • dryrun.ts --list12 enabled, 0 disabled
  • deno check clean, deno test 2/2, npx tsc --noEmit exit 0

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Enabled North Vancouver City Library and Capilano University as crawl sources.
    • These sources will be included in crawls after deployment.
  • Documentation

    • Updated source registry notes to reflect the enabled status.
    • Updated Capilano University’s measurement date.

Flips the two Phase-3 sources to enabled: true on Savar's explicit
sign-off. Both landed staged and disabled in #92 and #94 so their
adapters could be dry-run against the real feed before a row could reach
the shared events table; this ends that staging.

Config only: two booleans plus the comments that go stale with them (the
section header, and Capilano's measurement date). No adapter, schema,
migration or cron change.

Dry-run at production settings on 2026-08-09:
- nvcl      25 rows (36 unique relevant in window, cap-bound at
            MAX_PER_ORG). Its yield depends on the relevance widening
            merged in #96 — Open Door community hub, drop-in technology
            help and MS Office all appear in the taken 25.
- capilano   1 row (Fall 2026 New International Student Orientation).
            Its ~10-item ceiling is robots.txt, not a parse failure.

Enabled here is not live: ACTIVE_SOURCES only widens once the function is
deployed, which is a separate step.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
web-app Ready Ready Preview Aug 9, 2026 3:54am

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 95221b07-4bf2-44ac-843a-f8f0d923f73b

📥 Commits

Reviewing files that changed from the base of the PR and between 2707fde and da41b5e.

📒 Files selected for processing (1)
  • supabase/functions/events-crawler/lib/sources.ts

Walkthrough

Changes

Phase 3 source enablement

Layer / File(s) Summary
Update Phase 3 source registry
supabase/functions/events-crawler/lib/sources.ts
The registry enables North Vancouver City Library and Capilano University. The comments mark the sources as enabled on 2026-08-09.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/enable-nvcl-capilano

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.

@ltanafranca1004

Copy link
Copy Markdown
Collaborator Author

⚠️ Merging without a CodeRabbit review — explicit exception (the second in a row)

Recording this plainly. This is the second consecutive unreviewed merge to shared infrastructure (#96 was the first), made deliberately rather than by default. Flagging it as a pattern so it doesn't quietly become the norm.

What happened: CodeRabbit's automatic review on this PR was refused at 03:54:13 UTC —

Review limit reached. You've reached your PR review limit, so we couldn't start this review. Next review available in: 47 minutes.

The free-tier OSS review budget is exhausted after the #86#97 run. There are zero review objects on this PR. Merged on Luis's explicit instruction rather than waiting for the ~04:41 UTC window, given accumulated timeline pressure across this work.

Why the risk is materially lower than #96's:

  • Two booleans. enabled: false → true on nvcl and capilano, plus the comments that go stale with them. No regex, no logic, no schema, no migration, no cron, no next.config.ts change.
  • The runtime behaviour is directly evidenced, not inferred. Both sources were dry-run against their real live feeds at production settings (filter on, MAX_PER_ORG 25) immediately before the commit, and the output matched the forecast exactly:
nvcl:     walked 16 page(s), 52 in-window + relevant (36 unique), taking soonest 25
capilano: parsed 10 block(s), 1 in-window + relevant (1 unique), taking soonest 1

Capilano's single row is Fall 2026 New International Student Orientation. NVCL's 25 include Open door community hub, Drop-in technology help (incl. the Farsi session) and MS Office learn and practice: Intro to Word — the terms #96 added, confirming the two PRs compose as intended.

  • dryrun.ts --list12 enabled, 0 disabled
  • deno check clean · deno test 2/2 · npx tsc --noEmit exit 0

Follow-up: a post-merge CodeRabbit review of both #96 and #97 against main is still worth running once the quota frees up.

@ltanafranca1004
ltanafranca1004 merged commit 220bd47 into main Aug 9, 2026
4 checks passed
@ltanafranca1004

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
⚠️ Action not completed

Pull request is closed.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant