Skip to content

feat(admin): chart app creation build onboarding metrics#2571

Merged
riderx merged 19 commits into
mainfrom
codex/admin-app-build-onboarding-metrics
Jul 10, 2026
Merged

feat(admin): chart app creation build onboarding metrics#2571
riderx merged 19 commits into
mainfrom
codex/admin-app-build-onboarding-metrics

Conversation

@riderx

@riderx riderx commented Jun 23, 2026

Copy link
Copy Markdown
Member

Summary

  • Add daily global_stats counters for apps created, first-day CLI onboarding builds, and first-day manual builds.
  • Tag CLI native build requests as manual or cli_onboarding and normalize missing/unknown sources server-side.
  • Add an admin dashboard multi-line chart for the saved-by-day app creation/build onboarding metrics.

Screenshot

Admin dashboard app build onboarding chart

Validation

  • bun lint
  • bun lint:backend
  • bun typecheck
  • bun run cli:check
  • bun test tests/admin-stats.test.ts
  • bun test ./test/prescan/request-gate.test.ts from cli/
  • bun run supabase:db:reset
  • bunx supabase db lint --local from .context/supabase-worktrees/c85d6572 (exits 0 with existing warnings)
  • Captured the admin dashboard change as docs/pr-assets/admin-app-build-onboarding-chart.webp

Note

Medium Risk
Touches app creation paths, a DB migration/trigger, and daily global-stats aggregation; incorrect cohort logic would skew admin metrics but not core auth or billing.

Overview
Adds onboarding provenance on apps (created_from_onboarding, onboarding_completed_at via trigger when need_onboarding flips off) plus daily global_stats counters for apps created and first-day build activity (>2 succeeded builds in 24h, split CLI-onboarding vs manual).

Ingestion: CLI add sets created_from_onboarding for onboarding creates (with schema-missing fallback); public app create mirrors need_onboarding into that flag. Aggregation: logsnag_insights writes cohort metrics to the prior UTC day once the 24h window can complete; admin trend API exposes them with app_build_onboarding_finalized when the next day’s core shard exists.

UI: New admin multi-line chart and i18n labels; apps list normalizes onboarding fields from RPC rows. Migration redefines get_org_apps_with_last_upload with an explicit column list (no apps.*). CI concurrency uses github.head_ref for PRs. Tests cover summarization, trend fields, and admin stats.

Reviewed by Cursor Bugbot for commit 30eae79. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • New Features

    • Added onboarding provenance tracking for apps, including creation source and completion time.
    • Added admin dashboard metrics and charts for apps created and first-day CLI or manual builds.
    • Added localized labels for the new onboarding metrics.
  • Bug Fixes

    • Improved app icon loading across different app data sources.
    • Added compatibility fallback when onboarding fields are unavailable.
  • Tests

    • Added coverage for onboarding metrics and admin statistics.

@coderabbitai

coderabbitai Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds onboarding provenance fields and daily CLI/manual build metrics, persists and aggregates them, exposes them through admin stats, and renders a new admin dashboard chart. App icon loading now supports RPC rows with missing onboarding fields, and CLI creation retries against older schemas.

Changes

App Build Onboarding Metrics

Layer / File(s) Summary
Schema and typed contracts
read_replicate/schema_replicate.*, supabase/functions/_backend/utils/postgres_schema.ts, */types/supabase.types.ts
Adds app onboarding columns, an app creation index, and corresponding database and RPC type fields.
App creation onboarding provenance
supabase/functions/_backend/public/app/post.ts
Persists created_from_onboarding from the app creation request.
CLI onboarding insert compatibility
cli/src/app/add.ts
Writes onboarding metadata for onboarding-created apps and retries without it when schema fields are unavailable.
Onboarding metrics computation
supabase/functions/_backend/triggers/logsnag_insights.ts
Aggregates app creation and 24-hour CLI/manual build metrics into global stats.
Admin global stats trend query and interface
supabase/functions/_backend/utils/pg.ts
Returns the three new counters in admin trend data.
Admin dashboard onboarding chart and translations
src/pages/admin/dashboard/index.vue, messages/en.json, docs/pr-assets/*
Builds localized chart series and renders the onboarding metrics chart.
apps.vue icon loader
src/pages/apps.vue
Supports both app row shapes and normalizes missing onboarding fields during icon loading.
Tests
tests/admin-stats.test.ts, tests/logsnag-insights-revenue.unit.test.ts
Validates admin trend counters and onboarding metric classification.

CI Concurrency Grouping

Layer / File(s) Summary
Workflow concurrency key
.github/workflows/tests.yml
Updates concurrency suffix selection for workflow events.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
    participant StatsShard
    participant MetricsQuery
    participant Database
    participant AdminTrend
    participant Dashboard

    StatsShard->>MetricsQuery: compute prior-day onboarding metrics
    MetricsQuery->>Database: query apps and 24-hour build requests
    Database-->>MetricsQuery: return grouped app/build rows
    MetricsQuery-->>StatsShard: return onboarding counters
    StatsShard->>Database: update global stats snapshot
    Dashboard->>AdminTrend: request global stats trend
    AdminTrend-->>Dashboard: return onboarding trend counters
    Dashboard->>Dashboard: render onboarding chart series
Loading

Possibly related PRs

  • Cap-go/capgo#1834: Updates the onboarding app-creation backend and onboarding state propagation.
  • Cap-go/capgo#2053: Extends the get_accessible_apps_for_apikey_v2 return contract.

Suggested reviewers: adamsardo, WcaleNieWolny, Dalanir

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title is concise and accurately highlights the new admin chart for app creation and onboarding metrics.
Description check ✅ Passed It includes a summary, screenshot, and validation steps, but the template's checklist section is missing.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

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

@codspeed-hq

codspeed-hq Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will degrade performance by 38.23%

❌ 1 regressed benchmark
✅ 42 untouched benchmarks
⏩ 2 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Benchmark BASE HEAD Efficiency
/updates manifest response with metadata 87.5 µs 141.6 µs -38.23%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing codex/admin-app-build-onboarding-metrics (30eae79) with main (c4499f9)2

Open in CodSpeed

Footnotes

  1. 2 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

  2. No successful run was found on main (774b466) during the generation of this report, so c4499f9 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@riderx riderx force-pushed the codex/admin-app-build-onboarding-metrics branch from e68f3b7 to 4977799 Compare June 23, 2026 15:38
@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

🧪 Builder onboarding TUI preview — ❌ failed

▶ Open the interactive HTML report (zoomable journey tree + cast playback)

Commit: 202e524 · Job summary with the result table

@riderx riderx force-pushed the codex/admin-app-build-onboarding-metrics branch from 4977799 to ab04a7f Compare June 23, 2026 15:49
@riderx riderx force-pushed the codex/admin-app-build-onboarding-metrics branch from ab04a7f to aad7d3b Compare June 23, 2026 16:01
@riderx riderx force-pushed the codex/admin-app-build-onboarding-metrics branch from aad7d3b to 202e524 Compare June 23, 2026 16:11
@riderx riderx force-pushed the codex/admin-app-build-onboarding-metrics branch from 202e524 to b504255 Compare June 23, 2026 17:01
@riderx riderx force-pushed the codex/admin-app-build-onboarding-metrics branch from b504255 to 09f48a1 Compare June 23, 2026 17:17
@riderx riderx marked this pull request as ready for review June 23, 2026 17:26
@coderabbitai coderabbitai Bot added the codex label Jun 23, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk: medium. Cursor Bugbot remained pending after the 8-minute polling window, so automated review is incomplete and I am not approving. Human review is needed for the migration, backend trigger, and admin dashboard changes.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver External

@cursor cursor Bot requested a review from WcaleNieWolny June 23, 2026 17:34

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/types/supabase.types.ts (1)

321-332: 🗄️ Data Integrity & Integration | 🟡 Minor

Update TypeScript RPC return types to reflect actual column availability.

The new created_from_onboarding and onboarding_completed_at columns are missing from the TypeScript type definitions for both RPC functions:

  • get_accessible_apps_for_apikey_v2 (line 3596): Returns full apps row at SQL level but TypeScript types omit the new fields, causing type-SQL mismatch.
  • get_org_apps_with_last_upload (line 3824): Intentionally excludes these fields (per SQL comment: "stable apps list contract"), so TypeScript correctly omits them—but this is by design.

The consumer code in src/pages/apps.vue:42-43 works around this with fallback logic ('created_from_onboarding' in app), but relying on runtime field presence is fragile. Regenerate the TypeScript types to match the SQL schema.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/types/supabase.types.ts` around lines 321 - 332, The TypeScript type
definitions in the Supabase types file for the RPC functions
`get_accessible_apps_for_apikey_v2` and `get_org_apps_with_last_upload` are out
of sync with the actual SQL schema. The `get_accessible_apps_for_apikey_v2`
function should include the `created_from_onboarding` and
`onboarding_completed_at` fields since it returns the full apps row at the SQL
level, while `get_org_apps_with_last_upload` should continue to exclude these
fields as per its design contract for a stable API. Regenerate the TypeScript
type definitions from the Supabase schema to ensure they accurately reflect what
each RPC function returns, eliminating the need for runtime field presence
checks in consumer code like `src/pages/apps.vue`.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@src/types/supabase.types.ts`:
- Around line 321-332: The TypeScript type definitions in the Supabase types
file for the RPC functions `get_accessible_apps_for_apikey_v2` and
`get_org_apps_with_last_upload` are out of sync with the actual SQL schema. The
`get_accessible_apps_for_apikey_v2` function should include the
`created_from_onboarding` and `onboarding_completed_at` fields since it returns
the full apps row at the SQL level, while `get_org_apps_with_last_upload` should
continue to exclude these fields as per its design contract for a stable API.
Regenerate the TypeScript type definitions from the Supabase schema to ensure
they accurately reflect what each RPC function returns, eliminating the need for
runtime field presence checks in consumer code like `src/pages/apps.vue`.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: f35cf478-0df7-4267-872c-cdec0940988a

📥 Commits

Reviewing files that changed from the base of the PR and between 647bf87 and 09f48a1.

📒 Files selected for processing (15)
  • cli/src/types/supabase.types.ts
  • docs/pr-assets/admin-app-build-onboarding-chart.webp
  • messages/en.json
  • read_replicate/schema_replicate.sql
  • src/pages/admin/dashboard/index.vue
  • src/pages/apps.vue
  • src/types/supabase.types.ts
  • supabase/functions/_backend/public/app/post.ts
  • supabase/functions/_backend/triggers/logsnag_insights.ts
  • supabase/functions/_backend/utils/pg.ts
  • supabase/functions/_backend/utils/postgres_schema.ts
  • supabase/functions/_backend/utils/supabase.types.ts
  • supabase/migrations/20260623144909_admin_app_build_onboarding_metrics.sql
  • tests/admin-stats.test.ts
  • tests/logsnag-insights-revenue.unit.test.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • Cap-go/capacitor-updater (manual)

@cursor cursor Bot requested a review from Dalanir June 23, 2026 17:35

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk: medium. Cursor Bugbot is still pending after the 8-minute polling window and no Bugbot review comment was posted, so I am not approving without that automated signal. Human review is needed for the migration, backend metrics pipeline, and admin dashboard changes; WcaleNieWolny is already requested and I also requested Dalanir.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

@riderx riderx force-pushed the codex/admin-app-build-onboarding-metrics branch from 09f48a1 to 22c3dc0 Compare June 23, 2026 17:38
Comment thread supabase/functions/_backend/triggers/logsnag_insights.ts
Comment thread supabase/functions/_backend/triggers/logsnag_insights.ts

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk: medium. Cursor Bugbot finished with a skipped status and no Bugbot review comment was posted, so I am not approving without that automated signal. Human review is still needed for the migration, backend metrics pipeline, and admin dashboard changes; WcaleNieWolny and Dalanir are already requested.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver External

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk: medium. Cursor Bugbot finished with a skipped check and reported 2 unresolved findings (including one high-severity metrics timing issue), so I am not approving. WcaleNieWolny and Dalanir are already requested for human review of the migration, backend metrics pipeline, and admin dashboard changes.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@supabase/functions/_backend/triggers/logsnag_insights.ts`:
- Around line 1351-1392: The snapshot timing issue occurs because
getAppBuildOnboardingMetrics is being called too early in the day (01:01 UTC) to
capture the full 24-hour observation windows for apps created near the end of
the previous day. Find where getAppBuildOnboardingMetrics is invoked in the
snapshot recording workflow and delay the execution until after 23:59 UTC to
ensure all apps created the previous day have completed their full 24-hour build
observation window before the metric is recorded.

In `@supabase/migrations/20260623144909_admin_app_build_onboarding_metrics.sql`:
- Around line 48-52: The two CREATE INDEX statements for idx_apps_created_at and
idx_build_requests_app_created_at are missing the CONCURRENTLY keyword, which
will cause write locks on these tables during the migration. Add the
CONCURRENTLY keyword to both CREATE INDEX IF NOT EXISTS statements so that the
indexes are built without blocking concurrent write operations on the
public.apps and public.build_requests tables.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 037135c6-e2bc-4a1f-87b2-7c4102af84f8

📥 Commits

Reviewing files that changed from the base of the PR and between 09f48a1 and 22c3dc0.

📒 Files selected for processing (15)
  • cli/src/types/supabase.types.ts
  • docs/pr-assets/admin-app-build-onboarding-chart.webp
  • messages/en.json
  • read_replicate/schema_replicate.sql
  • src/pages/admin/dashboard/index.vue
  • src/pages/apps.vue
  • src/types/supabase.types.ts
  • supabase/functions/_backend/public/app/post.ts
  • supabase/functions/_backend/triggers/logsnag_insights.ts
  • supabase/functions/_backend/utils/pg.ts
  • supabase/functions/_backend/utils/postgres_schema.ts
  • supabase/functions/_backend/utils/supabase.types.ts
  • supabase/migrations/20260623144909_admin_app_build_onboarding_metrics.sql
  • tests/admin-stats.test.ts
  • tests/logsnag-insights-revenue.unit.test.ts
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • Cap-go/capacitor-updater (manual)

Comment thread supabase/functions/_backend/triggers/logsnag_insights.ts
Comment on lines +48 to +52
CREATE INDEX IF NOT EXISTS idx_apps_created_at
ON public.apps (created_at);

CREATE INDEX IF NOT EXISTS idx_build_requests_app_created_at
ON public.build_requests (app_id, created_at);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟠 Major | 🏗️ Heavy lift

Use concurrent index creation to avoid deploy-time write blocking.

Line 48 and Line 51 create indexes without CONCURRENTLY. On large tables, this can block writes for the migration duration and degrade API availability. Move these to a dedicated migration that builds indexes concurrently.

Suggested change
-CREATE INDEX IF NOT EXISTS idx_apps_created_at
-ON public.apps (created_at);
-
-CREATE INDEX IF NOT EXISTS idx_build_requests_app_created_at
-ON public.build_requests (app_id, created_at);
+-- Run in a dedicated migration that supports non-transactional statements
+CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_apps_created_at
+ON public.apps (created_at);
+
+CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_build_requests_app_created_at
+ON public.build_requests (app_id, created_at);
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@supabase/migrations/20260623144909_admin_app_build_onboarding_metrics.sql`
around lines 48 - 52, The two CREATE INDEX statements for idx_apps_created_at
and idx_build_requests_app_created_at are missing the CONCURRENTLY keyword,
which will cause write locks on these tables during the migration. Add the
CONCURRENTLY keyword to both CREATE INDEX IF NOT EXISTS statements so that the
indexes are built without blocking concurrent write operations on the
public.apps and public.build_requests tables.

@cursor

cursor Bot commented Jul 10, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_011648b8-020c-4946-bf39-935dad061217)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk: medium. Cursor Bugbot finished with a skipped check on the latest sync, and the prior Bugbot review still has unresolved findings, so I am not approving. WcaleNieWolny and Dalanir are already requested for human review.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

@cursor

cursor Bot commented Jul 10, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_ab2b0d5d-9fda-47e8-ae01-fdcd3c0ae240)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk: medium. Cursor Bugbot finished with a skipped check on the latest sync, and the prior Bugbot review still has 4 unresolved findings (including high severity), so I am not approving. WcaleNieWolny and Dalanir are already requested for human review.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk: medium. Cursor Bugbot finished with a skipped check on the latest sync (usage limit reached), and the prior Bugbot review still has unresolved findings, so I am not approving. WcaleNieWolny and Dalanir are already requested for human review.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver External

@cursor

cursor Bot commented Jul 10, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_cec601f7-7abf-4153-bfe2-bf0427d2fb23)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk: medium. Cursor Bugbot finished with a skipped check on the latest sync (usage limit reached), and the prior Bugbot review still has 5 unresolved findings, so I am not approving. WcaleNieWolny and Dalanir are already requested for human review.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver External

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk: medium. Cursor Bugbot finished with a skipped check on the latest sync, and the prior Bugbot review still has unresolved findings, so I am not approving. WcaleNieWolny and Dalanir are already requested for human review.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/tests.yml:
- Line 4: Update the workflow concurrency group expression to use
github.event.pull_request.number for pull_request events, while retaining the
SHA-based key for workflow_call and the existing branch/ref fallback for other
events, so unrelated PR runs cannot cancel each other.

In `@messages/en.json`:
- Line 1210: Remove the duplicate "events" key from messages/en.json, preferably
the later definition, while retaining the established earlier entry so the JSON
contains only one events property.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0a532249-e4c4-4ef5-9b9b-61e16ebd2a5b

📥 Commits

Reviewing files that changed from the base of the PR and between 22c3dc0 and f3f2dff.

📒 Files selected for processing (7)
  • .github/workflows/tests.yml
  • cli/src/app/add.ts
  • cli/src/types/supabase.types.ts
  • docs/pr-assets/admin-app-build-onboarding-chart.webp
  • messages/en.json
  • read_replicate/schema_replicate.catalog.json
  • read_replicate/schema_replicate.sql
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • Cap-go/capacitor-updater (manual)

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/tests.yml:
- Line 4: Update the workflow concurrency group expression to use
github.event.pull_request.number for pull_request events, while retaining the
SHA-based key for workflow_call and the existing branch/ref fallback for other
events, so unrelated PR runs cannot cancel each other.

In `@messages/en.json`:
- Line 1210: Remove the duplicate "events" key from messages/en.json, preferably
the later definition, while retaining the established earlier entry so the JSON
contains only one events property.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0a532249-e4c4-4ef5-9b9b-61e16ebd2a5b

📥 Commits

Reviewing files that changed from the base of the PR and between 22c3dc0 and f3f2dff.

📒 Files selected for processing (7)
  • .github/workflows/tests.yml
  • cli/src/app/add.ts
  • cli/src/types/supabase.types.ts
  • docs/pr-assets/admin-app-build-onboarding-chart.webp
  • messages/en.json
  • read_replicate/schema_replicate.catalog.json
  • read_replicate/schema_replicate.sql
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • Cap-go/capacitor-updater (manual)
🛑 Comments failed to post (2)
.github/workflows/tests.yml (1)

4-4: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '--- .github/workflows/tests.yml ---'
nl -ba .github/workflows/tests.yml | sed -n '1,80p'

echo
echo '--- other workflow concurrency keys ---'
rg -n "concurrency:|group:" .github/workflows -A4 -B2 || true

echo
echo '--- workflow triggers in tests.yml ---'
sed -n '1,80p' .github/workflows/tests.yml | rg -n "on:|workflow_call|pull_request|push|schedule|workflow_dispatch|concurrency|cancel-in-progress" -n -A3 -B3 || true

Repository: Cap-go/capgo

Length of output: 226


🏁 Script executed:

#!/bin/bash
set -euo pipefail

nl -ba .github/workflows/tests.yml | sed -n '1,120p'

Repository: Cap-go/capgo

Length of output: 190


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '--- .github/workflows/tests.yml ---'
sed -n '1,120p' .github/workflows/tests.yml

echo
echo '--- workflow concurrency references ---'
rg -n "concurrency:|group:|cancel-in-progress:|workflow_call|pull_request|push" .github/workflows -A4 -B2 || true

Repository: Cap-go/capgo

Length of output: 33081


Keep PR runs isolated in the concurrency key. .github/workflows/tests.yml:4 uses only the branch name for pull_request and push runs, so two PRs from different forks with the same branch name—or a push and its PR check on the same branch—can cancel each other when cancel-in-progress: true is set. Use github.event.pull_request.number for PR events and keep the SHA-based key for workflow_call.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/tests.yml at line 4, Update the workflow concurrency group
expression to use github.event.pull_request.number for pull_request events,
while retaining the SHA-based key for workflow_call and the existing branch/ref
fallback for other events, so unrelated PR runs cannot cancel each other.
messages/en.json (1)

1210-1210: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Remove the duplicate events key.

"events" is defined at Line 1210 and again at Line 2492. Biome reports this duplicate key; keep only one definition so linting and JSON parsing remain deterministic.

Proposed fix
-  "events": "Events",

Remove either duplicate definition, preferably the later one if the earlier key is already established.

Also applies to: 2492-2492

🧰 Tools
🪛 Biome (2.5.1)

[error] 1210-1210: The key events was already declared.

(lint/suspicious/noDuplicateObjectKeys)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@messages/en.json` at line 1210, Remove the duplicate "events" key from
messages/en.json, preferably the later definition, while retaining the
established earlier entry so the JSON contains only one events property.

Source: Linters/SAST tools

@cursor

cursor Bot commented Jul 10, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_8ab8fcf4-bd56-4948-af2a-66da55e455f9)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk: medium. Cursor Bugbot finished with a skipped check on the latest sync (usage limit reached) and did not post a fresh review for the current commit, so I am not approving. WcaleNieWolny and Dalanir are already requested for human review.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Risk: medium. Cursor Bugbot finished with a skipped check on the latest sync (usage limit reached), so automated review is incomplete and I am not approving. WcaleNieWolny and Dalanir are already requested for human review.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver External

@cursor

cursor Bot commented Jul 10, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_00fc01d3-faf5-42fc-a20e-dcb5d611dddb)

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Risk: high. Cursor Bugbot finished with a skipped check on the latest sync (usage limit reached), so automated review is incomplete and I am not approving. WcaleNieWolny and Dalanir are already requested for human review.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver External

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Risk: medium. Cursor Bugbot finished with a skipped check on the latest sync and did not post a fresh review for the current commit, so I am not approving. WcaleNieWolny and Dalanir are already requested for human review.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

@sonarqubecloud

Copy link
Copy Markdown

@riderx riderx merged commit 5ebf11b into main Jul 10, 2026
46 of 65 checks passed
@riderx riderx deleted the codex/admin-app-build-onboarding-metrics branch July 10, 2026 19:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants