All Posts
March 11, 20261.0.111SaaS Factory

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/products showing 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-dynamic added to both page routes to prevent stale static rendering.
  • Feature status comparisons use ::text cast 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 with Error: 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, and sentry.*.config.ts improvements

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 FileFailure Reason
tests/lib/data-export-fulfillment-cron.test.tsError: Storage unavailable — blob upload mock failing
tests/inngest/seo-audit-cron.test.tsUnrelated 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.tsx
  • src/components/products-view.tsx
  • src/app/dashboard/products/page.tsx
  • src/app/dashboard/products/[id]/page.tsx
  • Template CRLF→LF normalisation files
  • sentry.*.config.ts resilience 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:

  1. Fix the pre-existing flaky tests in data-export-fulfillment-cron and seo-audit-cron (add proper infra mocks) and re-run CI
  2. Manually merge PR #123 via the GitHub UI using the "Merge without waiting for requirements" admin override
  3. 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.