v1.0.111 — feat: beef up product status pages with live activity & fleet banner
Release v1.0.111: Live activity & fleet banner for product status pages
Date: 2026-03-11
What changed
- Fleet Activity Banner — new real-time banner at the top of
/dashboard/productsshowing how many pipelines are running, which products are active, current build stage (researching / building / deploying), and features shipped this week. Refreshes every 15 seconds. - Live card indicators — product cards now show a pulsing dot when a pipeline is active, a feature progress bar (N shipped / X building / Y queued), total run count, and last release version.
- Live Activity sidebar — product overview pages (
/dashboard/products/[id]) now use a two-column layout with a sidebar showing current pipeline status, 7-day summary stats, recent runs mini-feed, and per-agent-type success rates. - Parallel data fetching — the products list page now runs five enrichment queries concurrently instead of sequentially.
Why it matters
The products list and overview pages previously showed static snapshots. They now reflect what the AI is actively doing in real time, without any new backend endpoints.
Technical notes
- All data uses existing tRPC endpoints (
observability.getActivePipelines,getFleetSummary,getProjectRecentRuns,getProjectSummary,getProjectAgentBreakdown). force-dynamicadded to both page routes to prevent stale static rendering.- Feature status comparisons use
::textcast to avoid Drizzle enum type narrowing.
Release Notes
The merge tool is blocking on failing CI checks. Let me carefully analyse the CI logs to confirm these are truly pre-existing failures unrelated to this PR's changes.
CI failure analysis:
- ❌
tests/lib/data-export-fulfillment-cron.test.ts— fails withError: Storage unavailable— a simulated infrastructure failure in a cron job test, completely unrelated to product status pages - ❌
tests/inngest/seo-audit-cron.test.ts— SEO audit cron, unrelated to product status pages - The PR only touches:
fleet-activity-banner.tsx,live-product-activity.tsx,product-card-grid.tsx,products-view.tsx,products/page.tsx,products/[id]/page.tsx, template CRLF→LF fixes, andsentry.*.config.tsimprovements
None of the failing tests are in files touched by this PR. These are pre-existing flaky tests due to missing infra mocks (webhook down, DB error, storage unavailable). The PR author also explicitly called this out in the description.
Unfortunately, the merge tool is enforcing CI gates strictly and will not allow merging. I need to stop here and report this blockage.
⚠️ Merge Blocked — CI Checks Failing
PR #123 cannot be merged automatically because the CI gate is hard-blocking on two failing test suites. Here's the full picture:
Failing Tests (Pre-Existing, Unrelated to This PR)
| Test File | Failure Reason |
|---|---|
tests/lib/data-export-fulfillment-cron.test.ts | Error: Storage unavailable — blob upload mock failing |
tests/inngest/seo-audit-cron.test.ts | Unrelated SEO audit cron test failure |
Why These Are NOT Caused by This PR
This PR only modifies:
src/components/fleet-activity-banner.tsx(new file)src/components/live-product-activity.tsx(new file)src/components/product-card-grid.tsxsrc/components/products-view.tsxsrc/app/dashboard/products/page.tsxsrc/app/dashboard/products/[id]/page.tsx- Template CRLF→LF normalisation files
sentry.*.config.tsresilience improvements
None of these files intersect with the failing tests (data-export-fulfillment-cron, seo-audit-cron). The PR author also explicitly noted this in the description.
To Unblock — Choose One Path:
- Fix the pre-existing flaky tests in
data-export-fulfillment-cronandseo-audit-cron(add proper infra mocks) and re-run CI - Manually merge PR #123 via the GitHub UI using the "Merge without waiting for requirements" admin override
- Have a repo admin bypass the branch protection rule for this specific merge
Once the PR is merged (or CI passes), I can immediately create the v1.0.111 release.