paperclip/tests/e2e
Dotta 8d6232e7b0
feat: reuse provider sign-in across AI connection workflows (#13248)
## Thinking Path

> - Paperclip is the open source app people use to manage AI agents for
work.
> - Users connect provider accounts during onboarding and agent setup.
> - They should reuse and manage those accounts through the existing
Connectors interface.
> - A second login wizard would diverge from the established provider
workflows.
> - This pull request composes the existing sign-in components into
Connections and agent configuration.
> - Users can select accounts without changing their agent's harness or
model.

## Linked Issues or Issue Description

**Problem or motivation**
AI credentials are configured separately from Connections. Agents cannot
consistently reuse a responsible user's account or a permitted shared
account.

**Proposed solution**
Manage AI accounts with the existing Connections grants and permissions.
Keep model and harness selection independent from credential selection.
Preserve legacy authentication until validated adoption.

**Alternatives considered**
A separate credential registry would duplicate ownership and access
policy. Automatic fallback would risk using the wrong account.

**Roadmap alignment**
This extends the shipped Apps, multi-user, secrets, and agent-runtime
capabilities. The maintainer requested the feature and reviewed the UI.
Related groundwork: #11899 (connection permissions), #10910 (connection
wizard), #11692 (Claude subscription profiles), and #11854 (Codex
account rotation).

## What Changed

- Add compact AI-account management to the existing Connectors pages.
- Reuse AgentProviderConnection, AdapterLoginPanel, AdapterLoginChrome,
and authentication controllers.
- Add the shared connection picker to agent setup/settings and task
requests.
- Preserve onboarding's sequence and reuse existing accounts.
- Add local-login recovery, retry, cancellation, and React StrictMode
handling.
- Add interactive Storybook scenarios, design-guide examples, and app
acceptance checks.

This is part 2 of the AI Connections change. The runtime foundation in
#13247 is merged. This PR now targets master.

## Verification

- Updated against master `47ded8bf9`, including the landed runtime
foundation and upstream task-search changes.
- Full workspace typecheck, production build, Storybook build, and token
gates passed on the integrated branch. Final local-login changes passed
59 focused tests; new-agent and inbox regression suites passed 63 tests.
- Browser checks verified automatic local Claude account detection,
resumable Codex login commands, retry, focus restoration, and
desktop/phone layouts. Commands create their isolated directory before
invoking the CLI.
- All CI test, browser, build, packaging, and runner jobs passed on
final head `dd17d3211931dd70aaa6ea619d83a7f9966dd18e`. The fresh
Greptile review is 5/5, the security scan passed, and there are no
unresolved review threads. The final CI aggregate gates passed.
- Local general-server coverage passed 11,804 tests; three
port-collision failures passed in an isolated 25-test rerun. All 6,111
UI tests passed. CLI coverage passed 484 tests; its remaining doctor
test requires port 3199, which is occupied by an unrelated report server
on this Mac. The complete CLI suite passed in CI.
- Live browser testing verified Codex API-key reconnect inside a task
card on desktop and phone. Real provider runs resumed and completed with
unchanged connection/grant identity and agent routing.
- Tested opening, cancelling, reopening, and completing connection
creation. A regression confirms Connect another account cannot submit
the new-agent form or copy provider keys into agent settings.
- Added shared inline repair, automatic local sign-in checks, and
responsive connection dialogs. Standalone Daytona installation ignores
workspace configuration and suppresses dependency scripts. Its
standalone build also passed with CI's exact pnpm 9.15.4.
- Destructive live tests are excluded by default. Explicit opt-in, local
deployment checks, and matching disposable fixture identities are
required before any mutation.

## Risks

- Local Codex/Grok creation requires the connection-specific terminal
login command.
- Browser sign-in uses the existing supported-environment controllers.
- This update verifies live local Claude detection and Codex API-key
task repair. New subscription authorization/refresh and
independent-human/native-runner isolation were not reverified in this
update.
- No agent automatically adopts managed Connections.

## Model Used

OpenAI GPT-6 through Codex, with reasoning, repository tools, code
execution, and browser testing. The exact runtime model identifier 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-09-12 16:51:26 -05:00
..
execution-recovery
…
fixtures feat: add experimental persistent agent chat (#13284) 2026-09-12 08:56:04 -05:00
helpers feat: reuse provider sign-in across AI connection workflows (#13248) 2026-09-12 16:51:26 -05:00
in-feed-native
…
acp-stop-continuation.spec.ts fix: reliably interrupt and resume legacy message queues (#13275) 2026-09-11 18:26:59 -05:00
agent-chat.spec.ts feat: add experimental persistent agent chat (#13284) 2026-09-12 08:56:04 -05:00
agentmail.spec.ts feat(connections): add AgentMail inboxes and email tasks (#13256) 2026-09-11 16:56:38 -05:00
app-not-connected.spec.ts
…
application-delete-screenshot.spec.ts
…
applications-crud.spec.ts
…
apps-dark-mode-shots.spec.ts
…
apps-prosumer-mcp-flow.spec.ts
…
archived-company-url.spec.ts
…
board-attachment-receipts.spec.ts feat: add experimental native chat connectors (#13038) 2026-09-10 10:06:45 -05:00
chat-adapters-ui.spec.ts feat(channels): add experimental iMessage Photon (#13299) 2026-09-12 15:23:50 -05:00
composer-stop.spec.ts feat: add experimental native chat connectors (#13038) 2026-09-10 10:06:45 -05:00
conference-room-typing-intro.spec.ts feat: reuse provider sign-in across AI connection workflows (#13248) 2026-09-12 16:51:26 -05:00
connection-intents.spec.ts
…
connection-reviews-server.ts
…
connection-reviews.config.ts
…
connection-reviews.spec.ts
…
fetch-allowed-port.ts
…
legacy-failure-continuation.spec.ts fix: recover legacy Daytona startup failures from task and inbox (#13272) 2026-09-11 18:08:14 -05:00
mcp-user-stories.catalog.ts
…
mcp-user-stories.spec.ts
…
multi-user-authenticated.spec.ts feat: add experimental persistent agent chat (#13284) 2026-09-12 08:56:04 -05:00
multi-user.spec.ts
…
nux-phase4-screenshots.spec.ts
…
onboarding.spec.ts feat: reuse provider sign-in across AI connection workflows (#13248) 2026-09-12 16:51:26 -05:00
paused-composer.spec.ts fix(tasks): require resume before sending to paused tasks (#13232) 2026-09-11 10:28:00 -05:00
pipelines-tutorial-flow.spec.ts
…
planning-mode-visual-verification.spec.ts feat: reuse provider sign-in across AI connection workflows (#13248) 2026-09-12 16:51:26 -05:00
playwright-composer-stop.config.ts
…
playwright-multiuser-authenticated.config.ts
…
playwright-multiuser.config.ts
…
playwright.config.ts feat: add experimental persistent agent chat (#13284) 2026-09-12 08:56:04 -05:00
project-repositories.spec.ts
…
runner-e2e-dashboard.spec.ts
…
sidebar-takeover.spec.ts
…
signoff-policy.spec.ts
…
smoke-lab-browser-runner.mts
…
smoke-lab-p1-p4.spec.ts
…
smoke-lab-p5-p7.spec.ts
…
smoke-lab-routine-classifier.test.mts
…
smoke-lab-routine.mts
…
smoke-lab.catalog.ts
…
smoke-lab.shared.ts
…