feat(activity): show card provenance - #2317
Conversation
Reuse canonical source-priority semantics and read-model freshness across web and mobile activity lists. Refs #2123
|
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. |
|
🤖 Review skipped: Repository rate limit exceeded. Free accounts are limited to 2 reviews per 4 hours per repository. Upgrade to a paid plan for unlimited reviews. |
|
Warning Review limit reached
Next review available in: 48 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (27)
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. Comment |
Reviewer's GuideImplements canonical source provenance and read-model processing freshness on calendar activities, wiring provider/source fields from ClickHouse/Postgres through the server models and calendar router into web and mobile card UIs, and adds supporting tests plus an incident doc entry about local Docker AIO exhaustion. File-Level Changes
Assessment against linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
PR Summary by QodoExpose activity card source provenance and processing freshness
AI Description
Diagram
High-Level Assessment
Files changed (15)
|
Mobile PreviewScan to open on device:
To test on device:
|
|
Storybook previews for This comment updates automatically on each PR push. |
|
@coderabbitai review |
✅ Action performedReview finished.
|
Code Review by Qodo
Context used✅ Compliance rules (platform):
202 rules✅ Skills:
fix-provider, write-tests, cloudflare 1.
|
Distinguish missing link attribution from an empty matched set so hidden activity provenance remains mutation-verifiable.
|
🤖 Review skipped: Repository rate limit exceeded. Free accounts are limited to 2 reviews per 4 hours per repository. Upgrade to a paid plan for unlimited reviews. |
Project activity-summary refresh timestamps through the compatibility view and invalidate persisted mobile data with the previous calendar response shape.
|
🤖 Review skipped: Repository rate limit exceeded. Free accounts are limited to 2 reviews per 4 hours per repository. Upgrade to a paid plan for unlimited reviews. |
|
Addressed both Qodo findings in ee247e0:
I intentionally did not add a missing- |
Summary
Fixes #2123
Validation
pnpm exec vitest run ...— 96 focused server/web tests passedpnpm --dir packages/mobile test— 1,165 mobile tests passedpnpm tsc --noEmitpnpm lint:sandbox— all 8 gates passedpnpm test— all 14,789 executed tests passed; Vitest exited nonzero afterward on runner RPC errorTimeout calling "onTaskUpdate"Local integration environment
The repository Compose startup failed before an integration test could run.
pnpm compose -- up -d --wait --wait-timeout 180 db clickhouse redis redpandaCould not setup Async I/O: unknown error. The required nr_events 1 exceeds the capacity in /proc/sys/fs/aio-max-nr 65536.No sysctl, timeout, retry, application behavior, or other workspace state was changed. The current workspace's disposable Compose resources were removed. Clean exact-head CI is the real integration gate.
Summary by Sourcery
Expose canonical source attribution and processing freshness on calendar activity entries and activity cards across server, web, and mobile.
New Features:
Enhancements:
Documentation:
Tests:
Summary by cubic
Show canonical source attribution and processing freshness on activity cards across web and mobile. Implements #2123 by reusing source-priority semantics and exposing
lastProcessedAtfrom the read model, aligned with ClickHouse view freshness.New Features
packages/server)buildActivityListSourceto derive list-card provenance from canonical source-priority logic.provider_id,source_name, source links, and computeslast_processed_atas greatest of activity and summary refresh; API/schema returnsourceandlastProcessedAt.refreshed_atinanalytics.activity_summaryvia compatibility view and migration0064_activity_summary_freshness; integration helpers and tests updated.packages/web)ActivityCardContentshows a source pill, optional overlap summary, and “Processed X ago.”packages/mobile)ActivitiesScreenrenders the same provenance and freshness details.Bug Fixes
refreshed_atthrough the view and invalidating persisted mobile data with the previous calendar shape (cache contract bumped).Written for commit ee247e0. Summary will update on new commits.