Files
PaperClipAI/scripts/serialized-shard-durations.json
T
DottaandPaperclip 9077748894 Remove the Pipelines experiment and preserve its data (#16834)
## Thinking Path

> - Paperclip manages AI agents and their work.
> - Pipelines was an unused experiment with its own UI, API, CLI, and
automation.
> - Keeping it leaves unsupported product surfaces and extra task-detail
queries.
> - Removing the experiment must preserve data that users already saved.
> - This pull request removes the feature and keeps its database schema
and migration history.
> - Cases and Routines remain available as separate features.

## Linked Issues or Issue Description

**What existing behavior does this improve?**

Remove the unused Pipelines experiment across the application.

**Current behavior**

The experiment includes pipeline boards, stage settings, case
automation, review queues, learnings, permissions, and CLI commands.
Task detail also queries pipeline links.

**Proposed behavior**

Remove all these product surfaces and their implementation. Preserve
existing tables, records, and documents. Ignore the retired boolean in
older managed configurations so upgrades still start.

**Breaking changes**

Pipeline URLs, API endpoints, CLI commands, and `pipelines:write` are
removed. Task detail no longer includes the old `linkedCases` field. The
independent Cases API remains available. No database migration or
cleanup is included.

Related feature work: #7907, #9110, #10905, #11375, #13004, #14671,
#16133. Related issues: #9663, #10310, #10312. This removal supersedes
the feature; it does not implement those pending enhancements or delete
their saved data.

## What Changed

- Remove Pipeline UI pages, navigation, gates, clients, query keys,
helpers, and unused design tokens.
- Remove Pipeline REST routes, services, automation dispatch,
task-detail queries, and OpenAPI discovery.
- Remove the CLI commands, shared contracts, experimental flag, catalog
entry, and permission defaults.
- Remove feature-specific tests, tutorials, smoke scripts, maps, and
Storybook examples.
- Preserve database schema, migration history, and the reserved document
key used by old records.
- Keep Cases routes independent and cover obsolete stored and managed
settings.

## Verification

- Passed: `pnpm build` and `pnpm -r typecheck`.
- Passed: targeted settings, managed configuration, sidebar, settings
UI, routing, and feature-catalog tests. A first sidebar run caught a
shared Workspaces icon import; the import was restored and the sidebar
rerun passed.
- Passed: 40 tests covering Cases routes, OpenAPI discovery, retained
Pipeline table constraints, and schema snapshot drift.
- Passed: token gates, map validation, generated API metadata check,
Storybook catalog validation, and 28 map/catalog tests.
- Passed: isolated local browser verification of navigation and
Experimental settings with Pipelines absent; Cases and Routines still
open normally. Live GET/POST requests to retired Pipeline endpoints
return 404, and the retired setting is absent. CLI help has no Pipeline
commands.
- Passed: 22 access-service and agent-default-grant tests after
restoring unrelated permission assertions flagged in review.
- Local full run: `pnpm test:run` reported one failure in the unchanged
workspace-runtime port-allocation test. That test passed in an isolated
rerun. The long local run was stopped after full CI passed; it is not
reported as a complete local pass.
- Passed: all 56 checks on `def9181f3a4491d95fca1d38e9739f5b821aae3e` (2
conditional checks skipped), including build, typecheck, test shards,
and browser suites. Eleven interrupted CI jobs reported “The operation
was canceled”; their one-time retry passed. [CI
run](https://github.com/paperclipai/paperclip/actions/runs/39255211006).
- Greptile: 5/5 on the final commit, with the only review finding fixed
and resolved.
- Sandbox socket restrictions affected the first build/API test
attempts. The same commands ran with local sockets available.

## Risks

- Existing Pipeline clients must stop using the removed endpoints and
commands.
- Existing data remains in the database and backups, but the removed UI
no longer displays it.
- Historical boolean `enablePipelines` values are ignored. They cannot
restore the feature.
- Cases and Routines must retain their separate behavior. Targeted route
tests cover this boundary.

## Model Used

OpenAI Codex, GPT-6, with repository inspection, editing, shell
execution, and browser verification. The exact deployed model ID and
context-window size are not exposed in this session.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have searched GitHub for duplicate or related PRs and linked
them above
- [x] I have either (a) linked existing issues with `Fixes: #` / `Closes
#` / `Refs #` OR (b) described the issue in-PR following the relevant
issue template
- [x] I have not referenced internal/instance-local Paperclip issues or
links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip`
URLs)
- [x] My branch name describes the change (e.g. `docs/...`, `fix/...`)
and contains no internal Paperclip ticket id or instance-derived details
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [x] All Paperclip CI gates are green
- [x] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge

---------

Co-authored-by: Paperclip <noreply@paperclip.ing>
2026-10-19 08:09:46 -05:00

151 lines
10 KiB
JSON

{
"$comment": "Per-suite wall-clock durations (ms) for serialized route/authz verification, used by scripts/run-vitest-stable.mjs in PR and release shards. Refreshed from successful Cloud readiness run 34705914878 (2026-09-12), jobs 103585803684, 103585803688, 103585803716, 103585803734, and 103585803754. Each weight spans consecutive [test:run] suite-start timestamps; the last suite ends at the first post-job cleanup timestamp. This includes each isolated Vitest process startup, import, collection, tests, and shutdown. All 145 suites are sampled exactly once. New or renamed suites use the median weight. Refresh from a successful complete run when observed shard times drift.",
"unit": "ms",
"durations": {
"server/src/__tests__/access-routes-hidden-floor.test.ts": 11187,
"server/src/__tests__/access-routes-permissions-upgrade.test.ts": 18919,
"server/src/__tests__/activity-routes.test.ts": 5963,
"server/src/__tests__/adapter-auth-signal-routes.test.ts": 14105,
"server/src/__tests__/adapter-model-refresh-routes.test.ts": 10257,
"server/src/__tests__/adapter-routes-authz.test.ts": 7991,
"server/src/__tests__/adapter-routes.test.ts": 8580,
"server/src/__tests__/agent-action-audit-routes.test.ts": 17869,
"server/src/__tests__/agent-adapter-validation-routes.test.ts": 24906,
"server/src/__tests__/agent-cross-tenant-authz-routes.test.ts": 9297,
"server/src/__tests__/agent-device-login-routes.test.ts": 25216,
"server/src/__tests__/agent-hire-idempotency-routes.test.ts": 16903,
"server/src/__tests__/agent-instructions-routes.test.ts": 15221,
"server/src/__tests__/agent-live-run-routes.test.ts": 30747,
"server/src/__tests__/agent-permissions-routes.test.ts": 9849,
"server/src/__tests__/agent-secrets-routes.test.ts": 16629,
"server/src/__tests__/agent-skills-routes.test.ts": 24106,
"server/src/__tests__/agent-test-environment-routes.test.ts": 20121,
"server/src/__tests__/approval-routes-idempotency.test.ts": 6366,
"server/src/__tests__/artifact-review-document-routes.test.ts": 11415,
"server/src/__tests__/assets.test.ts": 7738,
"server/src/__tests__/auth-routes.test.ts": 3471,
"server/src/__tests__/auth-session-route.test.ts": 4282,
"server/src/__tests__/authz-company-access.test.ts": 3348,
"server/src/__tests__/authz-existence-oracle-guard.test.ts": 312,
"server/src/__tests__/authz-secret-context.test.ts": 3899,
"server/src/__tests__/board-chat-route-feature-flag.test.ts": 1251,
"server/src/__tests__/bootstrap-claim-routes.test.ts": 5821,
"server/src/__tests__/built-in-agent-routes.test.ts": 6607,
"server/src/__tests__/cases-routes.test.ts": 17725,
"server/src/__tests__/cli-auth-routes.test.ts": 8422,
"server/src/__tests__/cloud-routes.test.ts": 3475,
"server/src/__tests__/companies-route-cross-company-authz.test.ts": 10608,
"server/src/__tests__/companies-route-path-guard.test.ts": 3520,
"server/src/__tests__/company-branding-route.test.ts": 6319,
"server/src/__tests__/company-import-transfer-routes.test.ts": 10852,
"server/src/__tests__/company-portability-routes.test.ts": 5037,
"server/src/__tests__/company-portability.test.ts": 6030,
"server/src/__tests__/company-search-extract-routes.test.ts": 11382,
"server/src/__tests__/company-search-rate-limit-routes.test.ts": 11592,
"server/src/__tests__/company-skill-policy-routes.test.ts": 9969,
"server/src/__tests__/company-skills-import-authz-routes.test.ts": 16725,
"server/src/__tests__/company-skills-routes.test.ts": 6666,
"server/src/__tests__/company-user-directory-route.test.ts": 5254,
"server/src/__tests__/costs-service.test.ts": 10178,
"server/src/__tests__/decision-queues-routes.test.ts": 9909,
"server/src/__tests__/document-annotation-routes.test.ts": 12372,
"server/src/__tests__/environment-custom-image-routes.test.ts": 8712,
"server/src/__tests__/environment-instance-routes.test.ts": 8738,
"server/src/__tests__/environment-routes.test.ts": 5462,
"server/src/__tests__/environment-selection-route-guards.test.ts": 9749,
"server/src/__tests__/execution-workspace-runtime-lease-route.test.ts": 12231,
"server/src/__tests__/execution-workspaces-routes.test.ts": 6598,
"server/src/__tests__/express5-auth-wildcard.test.ts": 1098,
"server/src/__tests__/external-object-routes.test.ts": 14559,
"server/src/__tests__/folders-routes.test.ts": 3122,
"server/src/__tests__/health-dev-server-token.test.ts": 3808,
"server/src/__tests__/health.test.ts": 3664,
"server/src/__tests__/heartbeat-dependency-scheduling.test.ts": 22771,
"server/src/__tests__/heartbeat-issue-liveness-escalation.test.ts": 26411,
"server/src/__tests__/heartbeat-process-recovery.test.ts": 165058,
"server/src/__tests__/inbox-agent-policy-routes.test.ts": 17418,
"server/src/__tests__/inbox-archive-routes.test.ts": 18276,
"server/src/__tests__/instance-database-backups-routes.test.ts": 3602,
"server/src/__tests__/instance-settings-routes.test.ts": 3263,
"server/src/__tests__/invite-accept-existing-member.test.ts": 5373,
"server/src/__tests__/invite-accept-gateway-defaults.test.ts": 16661,
"server/src/__tests__/invite-accept-replay.test.ts": 11438,
"server/src/__tests__/invite-create-route.test.ts": 5108,
"server/src/__tests__/invite-expiry.test.ts": 11055,
"server/src/__tests__/invite-join-manager.test.ts": 10519,
"server/src/__tests__/invite-list-route.test.ts": 10911,
"server/src/__tests__/invite-logo-route.test.ts": 10811,
"server/src/__tests__/invite-onboarding-text.test.ts": 9920,
"server/src/__tests__/invite-rate-limit-route.test.ts": 11305,
"server/src/__tests__/invite-summary-route.test.ts": 12300,
"server/src/__tests__/invite-test-resolution-route.test.ts": 10497,
"server/src/__tests__/invite-url-public-base-url.test.ts": 5781,
"server/src/__tests__/issue-activity-events-routes.test.ts": 13914,
"server/src/__tests__/issue-agent-mutation-ownership-routes.test.ts": 50945,
"server/src/__tests__/issue-assigned-backlog-contract-routes.test.ts": 9454,
"server/src/__tests__/issue-assignee-invokability-routes.test.ts": 9340,
"server/src/__tests__/issue-attachment-routes.test.ts": 18688,
"server/src/__tests__/issue-blocker-diagnostics-routes.test.ts": 17348,
"server/src/__tests__/issue-closed-workspace-routes.test.ts": 9378,
"server/src/__tests__/issue-comment-attribution-audit-routes.test.ts": 16687,
"server/src/__tests__/issue-comment-cancel-routes.test.ts": 9120,
"server/src/__tests__/issue-comment-reopen-routes.test.ts": 9744,
"server/src/__tests__/issue-create-deduplication-routes.test.ts": 18131,
"server/src/__tests__/issue-created-from-routes.test.ts": 18051,
"server/src/__tests__/issue-dependency-wakeups-routes.test.ts": 12754,
"server/src/__tests__/issue-document-restore-routes.test.ts": 11341,
"server/src/__tests__/issue-execution-policy-routes.test.ts": 17384,
"server/src/__tests__/issue-feedback-routes.test.ts": 10562,
"server/src/__tests__/issue-identifier-routes.test.ts": 17386,
"server/src/__tests__/issue-list-assignee-filter-routes.test.ts": 18762,
"server/src/__tests__/issue-list-updatedsince-filter-routes.test.ts": 17534,
"server/src/__tests__/issue-onboarding-first-task-routes.test.ts": 19600,
"server/src/__tests__/issue-queued-comments-routes.test.ts": 28267,
"server/src/__tests__/issue-scheduled-retry-routes.test.ts": 17617,
"server/src/__tests__/issue-stale-execution-lock-routes.test.ts": 17166,
"server/src/__tests__/issue-stalled-review-decision-routes.test.ts": 18751,
"server/src/__tests__/issue-subtree-diagnostics-routes.test.ts": 18263,
"server/src/__tests__/issue-telemetry-routes.test.ts": 9904,
"server/src/__tests__/issue-thread-interaction-routes.test.ts": 39373,
"server/src/__tests__/issue-tree-control-routes.test.ts": 3616,
"server/src/__tests__/issue-update-comment-wakeup-routes.test.ts": 15540,
"server/src/__tests__/issue-wake-diagnostics-routes.test.ts": 17422,
"server/src/__tests__/issue-watchdogs-routes.test.ts": 22439,
"server/src/__tests__/issue-workspace-command-authz.test.ts": 9358,
"server/src/__tests__/issues-checkout-wakeup.test.ts": 1064,
"server/src/__tests__/issues-goal-context-routes.test.ts": 9431,
"server/src/__tests__/issues-service.test.ts": 76576,
"server/src/__tests__/llms-routes.test.ts": 3399,
"server/src/__tests__/low-trust-red-team-routes.test.ts": 27945,
"server/src/__tests__/managed-agent-profile-routes-authz.test.ts": 3624,
"server/src/__tests__/multilingual-issues-routes.test.ts": 17623,
"server/src/__tests__/onboarding-seed-route.test.ts": 13936,
"server/src/__tests__/openapi-routes.test.ts": 4089,
"server/src/__tests__/openclaw-invite-prompt-route.test.ts": 5131,
"server/src/__tests__/opencode-local-adapter-environment.test.ts": 8676,
"server/src/__tests__/permissions-upgrade-boundary-routes.test.ts": 16917,
"server/src/__tests__/plugin-install-route-security.test.ts": 13924,
"server/src/__tests__/plugin-routes-authz.test.ts": 5693,
"server/src/__tests__/plugin-scoped-api-routes.test.ts": 6245,
"server/src/__tests__/project-goal-telemetry-routes.test.ts": 6735,
"server/src/__tests__/project-routes-env.test.ts": 5412,
"server/src/__tests__/project-workspace-managed-sandbox-routes.test.ts": 6840,
"server/src/__tests__/projects-list-archived-routes.test.ts": 17390,
"server/src/__tests__/redaction.test.ts": 1125,
"server/src/__tests__/resource-memberships-routes.test.ts": 17692,
"server/src/__tests__/routine-document-annotation-routes.test.ts": 3749,
"server/src/__tests__/routines-e2e.test.ts": 20181,
"server/src/__tests__/routines-routes.test.ts": 6778,
"server/src/__tests__/secret-proposals-routes.test.ts": 21824,
"server/src/__tests__/secrets-routes-claude-oauth-service.test.ts": 11110,
"server/src/__tests__/secrets-routes.test.ts": 10410,
"server/src/__tests__/sidebar-preferences-routes.test.ts": 4495,
"server/src/__tests__/summary-slot-routes.test.ts": 6451,
"server/src/__tests__/teams-catalog-routes.test.ts": 4948,
"server/src/__tests__/user-profile-routes.test.ts": 9198,
"server/src/__tests__/workspace-command-authz.test.ts": 1044,
"server/src/__tests__/workspace-runtime-routes-authz.test.ts": 6915,
"server/src/__tests__/workspace-runtime-service-authz.test.ts": 10428
}
}