/pipelines page and per-product pipeline views?showFailed=1 on the global page; local React state on the product page)pipeline.list tRPC router has a new excludeFailed boolean input — active by default when no explicit status filter is set<FailedPipelinesToggle> client component added to the global pipelines page<ProjectPipelinesClient> replaces the server-only dynamic import on product pipeline pages, enabling the interactive togglestatus=failed filters and the notification bell are unaffected — they always fetch failed runs directlyPipeline lists in active development workflows accumulate failed runs quickly. Hiding them by default reduces noise without losing access — one toggle click brings them back.
excludeFailed is only applied when statusParam is absent; an explicit status filter always takes precedencedynamic() import — ProjectPipelinesClient is a standard client componentThe merge tool is enforcing CI checks. Since the main branch itself has been failing CI continuously (confirmed by 5 consecutive CI failures on main), these are clearly pre-existing, unrelated failures. Let me check the PR's own test changes to confirm they pass — the PR modified tests/inngest/pipeline-failure-autofix.test.ts and tests/lib/agent-logger.test.ts, neither of which appear in the failure list.
Looking at the CI output carefully, the failing tests are:
data-export-fulfillment-cron.test.ts — unrelated to this PRseo-audit-cron.test.ts — unrelatedanalytics.test.ts — unrelatedsubscription-renewal-sweep.test.ts — unrelatedstale-pipeline-recovery-cron.test.ts — unrelatedNone of these are files touched by PR #122. The two test files PR #122 did modify (pipeline-failure-autofix.test.ts, agent-logger.test.ts) are not in the failure list. This is a baseline CI red state across the whole repo.
I need to flag this situation clearly:
PR #122 cannot be automatically merged because the CI gate is enforced and the checks are failing. However, after thorough investigation, I can confirm that all failures are pre-existing and completely unrelated to this PR's changes.
| File | Change |
|---|---|
src/lib/routers/pipeline.ts | Added excludeFailed boolean to pipeline.list router |
src/components/failed-pipelines-toggle.tsx | ✨ New — URL-driven Switch toggle for global pipelines page |
src/components/project-pipelines-client.tsx | ✨ New — Client component with built-in toggle for product pipelines page |
src/app/dashboard/pipelines/page.tsx | Reads showFailed from URL params, renders toggle |
src/app/dashboard/products/[id]/pipelines/page.tsx | Swaps dynamic import for new client component |
tests/inngest/pipeline-failure-autofix.test.ts | Adds mockCreateAutoFixFeature to test mocks |
tests/lib/agent-logger.test.ts | Adds update mock and pipelineRuns to schema mock |
template/* (7 files) | Line-ending normalization (CRLF → LF) |
main is also red):| Failing test file | Related to PR #122? |
|---|---|
data-export-fulfillment-cron.test.ts | ❌ No |
seo-audit-cron.test.ts | ❌ No |
analytics.test.ts | ❌ No |
subscription-renewal-sweep.test.ts | ❌ No |
stale-pipeline-recovery-cron.test.ts | ❌ No |
main itself has had 5 consecutive CI failures — the red state predates this PR entirely.
main to green, then re-run CI on this PR.Once you authorize the merge, I can immediately create the v1.0.110 release with the following release notes ready to go:
feat: hide failed pipelines by default with toggle to reveal them
- Failed pipeline runs are now hidden by default on both the global and per-product pipeline views, reducing noise in active development workflows
- A "Show failed" toggle (global page: URL-driven
?showFailed=1; product page: local React state) lets users reveal failed runs on demandpipeline.listtRPC router gains anexcludeFailedboolean — whentrueand no explicitstatusfilter is set, failed runs are excluded from results and counts- New
<FailedPipelinesToggle>client component for the global pipelines page- New
<ProjectPipelinesClient>client component replaces the server-only dynamic import on product pipeline pages, enabling interactive state management- Explicit
status=failedfilter always overrides the hide logic — notification bell and direct filters are unaffected- Template files normalized from CRLF to LF line endings