Skip to content

release: promote staging to main - #587

Open
izadoesdev wants to merge 131 commits into
mainfrom
staging
Open

release: promote staging to main#587
izadoesdev wants to merge 131 commits into
mainfrom
staging

Conversation

@izadoesdev

@izadoesdev izadoesdev commented Aug 2, 2026

Copy link
Copy Markdown
Member

Summary

  • Promote the current staging release train to main.
  • This release contains 134 commits across 333 files, including Intelligence recommendations and investigations, Links delivery/redirect reliability, ingestion and worker hardening, SDK/tracker improvements, ClickHouse delivery-deduplication migrations, and dashboard/docs updates.
  • The production promotion also includes the recent Basket retry safeguards, durable Uptime relays, and service-deployment context fixes.

Validation

  • The changes were integrated through the existing staging PR flow.
  • This promotion PR will run the main-targeted CI checks before merge.

Release notes

  • Review the included database and ClickHouse migration changes as part of the production rollout.

Summary by cubic

Promotes the current staging release to main with deep‑link redirects, a dedicated Insights Recommendations view, and hardened ingest with stable delivery IDs, API‑key admission gates, and retryable pixel delivery. Includes CI health checks for links/vector and new LINKS_URL/NEXT_PUBLIC_LINKS_URL environment variables.

  • New Features

    • Split Insights into Investigations and Recommendations with measurement drafts (goals, funnels, instrumentation), actionable flows, counts, a shared shell, and only the current published recommendation per signal; diversified scheduled coverage.
    • Added deep‑link redirects and public link URL helpers with app‑specific HTTPS validation, public‑slug guards, cached lookups, per‑IP rate limits using trusted client IPs, queued visit delivery, and health checks; updated OG, QR/preview, and navigation.
  • Bug Fixes

    • Ingest delivery hardening: bounded Kafka operations and health probes, shutdown budget, ClickHouse direct fallback keyed by delivery IDs with pending/ambiguous reservations, accept eventId to keep stable span/custom‑event identities, CORS‑safe JSON for unload beacons, and a retryable tracking pixel with Retry-After.
    • API admission: per‑key rate limits and in‑flight gates with retryable responses; auth dependency outages return 503 with Retry-After without exposing keys; consistent not‑found and webhook 4xx/401/404 responses with structured errors.
    • Links and image proxy safety: bounded queue admission and cached lookups, per‑IP rate limiting using trusted client IPs, and a safer image proxy with SSRF guard and protocol‑relative checks.
    • Dashboard polish and accessibility: preserve onboarding attribution through signup and setup, enforce @databuddy/ui usage, improve badges/labels and ARIA, and refine navigation with clearer Insights tabs.

Written for commit cf830f7. Summary will update on new commits.

Review in cubic

@greptile-apps

greptile-apps Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Too many files changed for review. (333 files found, 100 file limit)

Bypass the limit by tagging @greptile-apps to review.

@cursor

cursor Bot commented Aug 2, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@vercel

vercel Bot commented Aug 2, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
dashboard (staging) Ready Ready Preview Aug 4, 2026 12:43pm
databuddy-status Ready Ready Preview Aug 4, 2026 12:43pm
documentation (staging) Ready Ready Preview Aug 4, 2026 12:43pm

@coderabbitai

coderabbitai Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 7445cd89-e3b1-43ba-98b8-9113a7f4e978

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@dosubot

dosubot Bot commented Aug 2, 2026

Copy link
Copy Markdown

📄 Knowledge review

Dosu skipped reviewing this PR because your organization has used its 200 included credits for the month. Your usage will reset on 2026-09-01. To have Dosu review this PR before then, ask your organization admin to upgrade to a pro account.


Leave Feedback Ask Dosu about Databuddy Add Dosu to your team

@unkey-deploy

unkey-deploy Bot commented Aug 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Unkey Deploy

Name Status Preview Inspect Updated (UTC)
links (preview) Ready Visit Preview Inspect Aug 4, 2026 12:42pm

@socket-security

socket-security Bot commented Aug 2, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Added@​remotion/​fonts@​4.0.502911007296100
Added@​remotion/​media@​4.0.502991008096100
Added@​remotion/​cli@​4.0.50294100809680
Addedremotion@​4.0.502991001009680

View full report

#589)

* fix(basket): log geo resolution source on maxmind and unresolved paths

* perf(basket): drop redis geoip cache in favor of in-process maxmind lookup
* fix(basket): classify expected client errors as warn in axiom drain

Expected 4xx conditions (quota exceeded, rate limits, invalid client
IDs) were logged at error level because the evlog elysia plugin logs
every thrown error as error and drops the status. Derive the client
error message set from the error catalog and downgrade those events to
warn in the drain, keyed on http_status or the catalog message.

* fix(basket): log redpanda to clickhouse fallback as warn, not error

The fallback recovers the delivery via direct ClickHouse insert, so a
connection failure that is handled should not surface as an error in
Axiom. Log it via log.warn and assert the new channel in the test.

* refactor(basket): extract axiom drain helpers to @databuddy/shared/evlog-axiom

Move the batched Axiom drain, HTTP enrichers, string/duration
normalization, and the client-error downgrade into a shared module so
basket (and future services) reuse them. Basket keeps its catalog-driven
client-error detection and delegates the mechanics to the shared helpers.
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