docs: Connect agent — frontend implementation plan#2066
Open
Tanya-atatakai wants to merge 51 commits into
Open
docs: Connect agent — frontend implementation plan#2066Tanya-atatakai wants to merge 51 commits into
Tanya-atatakai wants to merge 51 commits into
Conversation
Exploration + phased plan for adding the Connect agent (one instance per chain grouped under one sidebar entry, chain-select setup, no staking, transfer/bridge funding, on-demand session on run). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… grouping, chain selector)
Phase 1 of the Connect agent: everything up to (but not including) service
creation. The "Select agent" button is rendered but disabled.
Registration
- Add `Connect` to AgentMap and fill it into every exhaustive map
(AGENT_CONFIG, X402_ENABLED_FLAGS, FEATURES_CONFIG, onboardingStepsMap,
AGENT_UI_RELEASES, serviceApi union, PearlStore, BACKEND_BOUND_KEYS).
- New abstract ConnectService (no_staking; staking methods are safe stubs).
- New CONNECT_SERVICE_TEMPLATE (Polygon/Base/Gnosis, staking_program_id
"no_staking"). Hash / release / agent id are clearly-commented PLACEHOLDERs
pending the external Connect package.
- Placeholder onboarding copy/images and agent icon.
Multi-chain grouping
- Shared matcher `matchesAgentConfig` (+ `isServiceOfAgent` alias): matches
`home_chain in supportedChains` for multi-chain agents; strict equality for
single-chain agents (behaviour unchanged).
- `getServiceEvmChainId` resolves the chain per-instance for name generation;
single-chain agents are unaffected.
Chain selector (on the Select Agent page)
- The operating-chain selector + per-chain funding requirements live inside the
funding-requirements step of AgentOnboarding (not a separate screen). Chains
already in use are disabled ("Already added"). The "Select agent" button is
present but disabled (creation lands in PR2).
- Connect is pinned to the top of the agent list.
- Onboarding right panel: fixed-height card, content on top, slide-nav +
Select-agent button pinned to the bottom.
Out of scope (PR2/PR3): service creation, no_staking create-path fixes,
funding-method changes, running/main page, /session.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The plan originally described a separate `SelectChain` screen. The implemented (and reviewed) flow puts the chain selector + funding requirements inside the funding-requirements step of the existing Select Agent page (AgentOnboarding → FundingRequirementStep), with the "Select agent" button on that same page. Update §3, §4, §7, §8, §9 and §11 to reflect this — no separate screen/route. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
atepem
reviewed
Jul 14, 2026
Contributor
There was a problem hiding this comment.
Review: Connect agent — frontend implementation plan
What it is: Docs-only PR adding docs/explorations/connect-agent-plan.md — a phased frontend plan for the new "Connect" agent (one instance per chain across Polygon/Base/Gnosis, no staking, transfer/bridge funding only). No product code.
Accuracy — verified against the branch ✅
Every load-bearing claim was checked against the checkout:
- The two
no_stakinghazards are real and the line references are exact:useStartService.ts:63-67throws when theSTAKING_PROGRAMSlookup misses, anduseCompleteAgentSetup.ts:96returns'invalid_contract'forno_staking. - The multi-chain analysis is correct:
isServiceOfAgent(frontend/utils/service.ts:187-192) matchesservicePublicId+ stricthome_chain === middlewareHomeChainId, so the chain-equality check is indeed the sole grouping blocker. getServiceConfigIdsOfexists inServicesProvider.tsx:83;StakedAgentService,AgentMap,X402_ENABLED_FLAGS,BACKEND_BOUND_KEYS, and all named files/hooks exist. TheAgentConfigfield names (requiresSetup,hasExternalFunds,doesChatUiRequireApiKey,additionalRequirements) all matchtypes/Agent.ts. The "noSelectwrapper in@/components/ui" claim is correct, anduseInitialFundingRequirements(agentType)currently takes no chain param as the plan implies.
Zero stale references found — unusually trustworthy handoff doc.
Issues worth addressing
- Phase-ordering gap (main finding): the
useStartServicefix is deferred to PR 3, but PR 2 enables creation, setup completion, and funding, and the setup flow ends atMain. Between PR 2 and PR 3, a user can have a funded Connect agent whose start button throwsStaking program not found. Either pull theuseStartServiceguard into PR 2, or state explicitly that Connect stays behindisAgentEnabled: false(or staging-only) until PR 3 lands. - Hidden dependency on the multi-instance migration: the
ElectronApi.tsrow saysisInitialFundedbecomes a per-serviceRecord<string, boolean>— that's the in-flight migration described indocs/features/multi-instance-agents.md. The plan should say whether Connect PR 1 depends on that migration landing first, does it itself, or works with the boolean meanwhile. As written it silently assumes the migrated shape. isAgentEnabledmissing from the file-change table: it appears only in the §10 checklist. Given finding 1, theconfig/agents.tsrow should state the intended enable/disable value per phase.- Product-risk note, not a blocker: §8/§12 lock in funding amounts "raw — do NOT add safe-creation/deployment gas." If that's a confirmed product decision, fine, but a user funding exactly
POL 15may not cover safe deployment gas — worth one sentence naming who confirmed it.
Style / conventions
- New
docs/explorations/directory: repo convention (CLAUDE.md) isdocs/features/for feature docs — an explorations dir for pre-implementation plans is a reasonable distinction, but consider adding a line to CLAUDE.md's Key File Locations, and plan to graduate this intodocs/features/connect.mdonce built. - Repetition: "the chain selector lives on the Select Agent page, NOT a separate screen" is restated five times (§3, §4×2, §7, §8). One authoritative statement in §8 plus a pointer would read better.
Verdict
Approve with minor changes. The plan is technically accurate end-to-end and the phasing is sound. Fix finding 1 (start-path breakage window between PR 2 and PR 3) before merging — it's the one thing an implementer following the doc literally would ship broken; the rest is polish.
🤖 Generated with Claude Code
atepem
approved these changes
Jul 14, 2026
…t and slide-switch scroll - Update Connect onboarding copy, images, template, and Service types. - Pin Connect intro images to 366px (styles.imageHeight per step). - Fix a transient horizontal scrollbar during slide transitions by clipping overflow-x on the onboarding content region. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Builds on Phase 1 (creation was disabled). Enables the Connect create flow and fixes issues found in manual testing. Creation - "Select agent" now creates a single-chain Connect service on the chosen chain via useCreateConnectService: clones CONNECT_SERVICE_TEMPLATE with home_chain=selected + pruned configurations, staking_program_id "no_staking". - Services.createService sends use_staking:false only for no_staking (gated; other agents unaffected). ConfigurationTemplate.use_staking added. - useCompleteAgentSetup no longer bounces no_staking agents to SelectStaking. - Bypasses SelectStaking; routes straight to funding (transfer + bridge). - ServicesProvider resolves a multi-chain agent's home chain per selected instance. Matcher sweep (fixes "Agent not found" for non-Gnosis Connect instances) - Relaxed 9 inline strict matchers to matchesAgentConfig: PearlWalletProvider, useService.getAgentTypeOf, AgentWalletProvider, AutoRun getAgentFromService, ReleaseNotesPage, SetupWelcome, both migrations, useStakingRewardsOf (also skips no_staking agents — no staking rewards). UI - Chain selector shows the sidebar "You own 1" pill for occupied chains; "Select agent" hidden once every supported chain has an instance. - Funding screen centered; Back button returns no_staking agents to AgentOnboarding (not SelectStaking). Tests: Phase-1 tests updated to new behavior + Phase-2 coverage (useCreateConnectService, Services use_staking, useStakingRewardsOf skip, matcher multi-chain resolution, button-hide, back-button). Full suite green. Known follow-ups: template env vars (SAFE_CONTRACT_ADDRESSES, FUND_REQUIREMENTS), agentIds=161, dead Select.Option label; CI check_service_templates carve-out tracked on the Phase-1 PR. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… id, dead prop - matchesAgentConfig: compare middleware-chain values so an unknown home_chain returns false instead of throwing (asEvmChainId). Matcher is now total. - CONNECT_SERVICE_TEMPLATE: add SAFE_CONTRACT_ADDRESSES + FUND_REQUIREMENTS env vars (COMPUTED); agent_id = 161 (Olas blueprint 161). - AGENT_CONFIG[Connect].agentIds = [161]. - Drop dead Select.Option label prop in ConnectChainSelect. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(connect): Connect agent — Phase 1 (registration, grouping, chain selector; creation disabled)
…ion) Reflect shipped reality (inline chain selector, matcher sweep) and insert a new PR 3 (Beta tag on Select Agent + sidebar; exclude Connect from AutoRun), independent of the running-agent phase (now PR 4). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…onnect from auto-run - Add AgentConfig.isBeta and AgentConfig.isExcludedFromAutoRun, both set on Connect. - New shared BetaTag ui component, rendered in the SelectAgent list and in AgentGroupHeader (covers the sidebar tree and the auto-run popover). - New getAutoRunExcludedByConfig util merged into the auto-run blocked set: Connect instances are never auto-seeded, includeInstance no-ops, and the popover "+" button is disabled with reason "Not available in auto-run". - Tests: Beta tag rendering (SelectAgent, AgentTreeMenu), util unit tests, provider-level seeding/include-block coverage. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Remove no-op `use_staking` field/body gating (middleware derives it from `staking_program_id`) from ConfigurationTemplate + createService, and drop the two tests asserting the removed body behavior. - useCreateConnectService: wrap resolveFundingRoute in its own try/catch (fall back to FundYourAgent instead of throwing so a failed funding-route lookup can't trigger a duplicate create on retry), and add an occupancy guard so an already-occupied chain selects the existing instance instead of creating a second one. Covered by new tests. - connect.ts: set release version v0.1.0-rc1 (service_version + agent_release.version), rename repo to `connect`, DRY the per-chain configs via a shared COMMON_CONFIG, and point nft/image at the newly pinned Connect NFT (bafybeidldvcrd7exlqwutoa5fj7nh6mjrkh7w6tuuwofwdifavvezj6g2e). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…nnect-agent-phase2 # Conflicts: # docs/explorations/connect-agent-plan.md
feat(connect): Phase 2 — enable service creation (no_staking) + fixes
Connect instances no longer appear in the popover's "Excluded from auto-run" section as blocked rows — getExcludedInstances takes a hiddenInstances param and drops them entirely. Selected-instance live eligibility can no longer overwrite the config block. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…n sections) Phase 4 of the Connect agent: once a Connect service is deployed, launch and manage its local Claude Code session, and adapt the main page for a no-staking agent. - Session launch: `ConnectService.startSession()` POSTs to the local agent server (`AGENT_SERVER_URL`/session), never throws — reachable responses vs. transport errors are both mapped to a typed `ConnectSessionResult`. - `useConnectSession`: auto-launches once per run when the local server is ready (healthcheck populated), with retry/dismiss and reset-on-stop. - `ConnectSessionAlert`: surfaces the two failure states (Claude not installed → download; launch failed → retry) under AgentInfo. - Config-driven main page: `hasStaking`/`hasPerformance` on AgentConfig gate the Staking/Performance sections and stop `useServiceDeployment` gating deployability on staking-details for no_staking agents; `useStartService` skips the staking-program lookup for `no_staking`. - Housekeeping (from review): centralise the local agent server URL as `AGENT_SERVER_URL` (Profile iframe + session), add `CLAUDE_DOWNLOAD_URL`, inline the connect template funding constants, pin `agent_id` 116. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(connect): [VLOP-98] Beta tag + exclude Connect from auto-run
…A gas The agent-select funding card under-reported vs the transfer amount: the middleware doubles the agent-EOA native requirement on first deployment (one-off ERC8004 registration gas, applied to every agent), but the FE card counted it once. Mirror that doubling so the card matches the transfer. - `getNativeInitialGasRequirement`: agent-EOA native × 2 (with a note that the middleware doubling is planned to become additive), and drop the now-redundant ~0 `AGENT_DEPLOYMENT_GAS_REQUIREMENT_WEI` placeholder. - Connect template: retune agent-EOA gas to a 50-tx + 2× volatility model — Gnosis 2→0.05, Base 0.0002→0.0005, Polygon 30→8; and set cost_of_bond 2→1. - Update `useInitialFundingRequirements` tests to the doubled totals. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…aunch
- Classify on HTTP status + `launched`, not `harness` (which the server always
sends, so it can't discriminate): unreachable or non-2xx → retryable
`launch-failed`; a well-formed `200 {launched:false}` → `not-installed`. Read
the server message from `error` (200) or `detail` (4xx/5xx) and surface it in
the alert (no longer dead weight).
- Launch via a React Query keyed by `service_config_id` (staleTime/gcTime
Infinity) so it POSTs once per run and is not relaunched when the alert
unmounts/remounts across navigation; the cache is cleared on stop so the next
run launches again. No new provider.
- Gate the alert on `isRunning` so a result resolving right after the agent
stops can't surface a stale alert.
- Update types + tests to the new result shape.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…nnect-agent-phase-running # Conflicts: # frontend/config/agents.ts
…s, onboarding copy - Show a blue info alert under the Connect agent: idle nudges the user to start the agent to initiate a Claude Code session; running points at the agent profile for new sessions. Sized to match sibling agent alerts. - Surface config-excluded (Connect) instances in the auto-run popover's 'Excluded from auto-run' section as permanently blocked rows with a hover/click tooltip explaining Connect is not autonomous. - Refresh the Connect onboarding intro copy. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ity strip When the Connect agent is running but its Claude Code session failed to launch, the AgentActivity strip shows 'Your agent is running. Start a new session from the agent profile.' (info styling) instead of the default activity content. The in-card running info alert stays hidden whenever a launch error exists so the notice is never duplicated after dismissing the error. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…3j85) Fixes the yarn-audit CI gate: adm-zip <0.6.0 is flagged for a crafted-ZIP 4GB memory allocation DoS. Pearl only uses the creation-side API (addLocalFile/writeZip in electron/features/logs.js), which is unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Base is no longer supported by the Connect agent, and the agent's
`/funds-status` had no thresholds to compare balances against — the env var
was declared COMPUTED with an empty value, but nothing in the middleware
computes it (only SAFE_CONTRACT_ADDRESSES and STAKING_CHAIN are).
- Remove the Base `configurations` block, BASE_LEDGER_RPC and the Base
entries in `supportedChains` / `additionalRequirements` / the Connect chain
selector.
- Declare FUND_REQUIREMENTS as FIXED with the product thresholds — POL 15/3,
USDC 5/1, xDAI 5/1 — i.e. 1/5 of the initial requirement, with the agent-EOA
gas budget kept at the same ratio. Shape is `{chain: {agent|safe: {asset:
threshold}}}` (roles, not addresses), per `pearl_connect/config.py`.
- Narrow the map to the instance's own chain in `useCreateConnectService`: the
agent package ships a default RPC for every chain, so an unnarrowed map makes
the agent report a deficit for an EOA on a chain it does not operate on.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The renderer runs on http://localhost:3000, so `POST 127.0.0.1:8716/session`
is cross-origin. The agent's server registers no CORS middleware on purpose —
its auth model relies on cross-origin requests failing (see
`pearl_connect/server/auth.py`) — so the call never returned a readable
response, and the JSON content-type header on a body-less POST forced a
preflight that 405s. `startSession` therefore always collapsed to
`{reachable:false}` and the UI showed the install/retry state.
Issue the request from Electron main instead: no origin, no preflight, and
the agent's no-CORS posture stays intact.
- `connect-start-session` IPC handler returning the normalized
`{reachable, ok, launched, error}` result; AGENT_SERVER_URL moved to
electron/constants.
- Expose `electronAPI.connect.startSession`; wire it through
ElectronApiProvider and use it in `useConnectSession` (absent bridge →
unreachable → retryable launch-failed).
- Drop `ConnectService.startSession` and its suite; the HTTP mapping now
lives in main.js.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ning feat(connect): PR4 — running agent (Claude Code session)
The audit gate fails on every branch: advisory 1123686 covers adm-zip <0.6.0, where a crafted ZIP triggers a 4GB memory allocation. 0.6.0 is the first fixed release. Our only consumer is `electron/features/logs.js`, which writes support-log archives (`addLocalFile` / `writeZip`) — unchanged in 0.6.0, engines `node >=14`. The remaining `adm-zip@^0.4.16` in the lockfile is Hardhat's, dev-only, and outside the production audit scope. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chore(deps): bump adm-zip to 0.6.0 (GHSA-xcpc-8h2w-3j85)
feat: [VLOP-101] Connect session alerts, auto-run exclusion rows, onboarding copy
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fixes HIGH advisory (quadratic CPU via YAML merge-key chains) flagged by the audit gate in both the root and frontend trees. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Points the Connect service template at the v0.1.0-rc3 release (MCP /mcp/ handshake fix + token-paid mechs in restricted mode). Updates service_version and agent_release.repository.version. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… displays - IntroductionStep: replace min-height (which stretched images whose natural height fell short, e.g. Connect's 920x732 assets in the About Agent modal) with a fixed height + object-fit: cover. - next.config: serve images unoptimized — all assets are local Electron files, and the Next 15 dev optimizer 400s on widths outside its allow-list (e.g. w=192 for an 88px icon at 2x), blanking agent icons and the Pearl logo. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…as-operate-app into precious/connect-qa-fixes
…strip Per design, 'Your agent is running. Start a new session from the agent profile.' renders in the AgentActivity strip whenever the Connect agent is running — not as an in-card alert. ConnectSessionAlert keeps only the idle nudge and the launch-error alerts. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
fix: [VLOP-104] intro image stretching + blank icons on 2x displays
Signed-off-by: OjusWiZard <ojuswimail@gmail.com>
Connect runs on Polygon and Gnosis, but its erc20Tokens config was a flat
[USDC] list. Since the Gnosis token config also defines USDC, the agent
wallet showed a USDC chip on Gnosis (at 0 balance) even though Connect uses
native xDAI there.
Make erc20Tokens accept a per-chain map for multi-chain agents and resolve
it by home chain in useAvailableAgentAssets. Single-chain agents keep flat
arrays (backward compatible). Connect -> { Polygon: [USDC] }.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The funding step's auto-advance gated the "setup complete" transition on isTransferComplete, which only recognised SAFE_CREATED_TRANSFER_COMPLETED and SAFE_EXISTS_ALREADY_FUNDED. When the master safe already exists on the chain (e.g. the user already runs another agent there) and the funding sweep just completes, the backend returns SAFE_EXISTS_TRANSFER_COMPLETED, which was missing from both the SafeCreationStatus type and the check. Result: the finishing-setup spinner closed, no completion or failure modal fired, and the user was stranded on the funding page (chain-independent), having to go back and click "Complete agent setup" manually. Add SAFE_EXISTS_TRANSFER_COMPLETED to the type and treat it as complete. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The agent introduction slides forced eager loading via `priority`, so the large Connect PNGs were preloaded up front, slowing the "Select agent" step. Switch to loading="lazy" and compress the Connect intro assets. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Connect session alerts were the only alerts using `fullWidth`, whose modifier drops the border radius and side borders, so the banner looked detached inside the padded card. Rebuild them like the existing agent alerts: the idle info nudge mirrors AgentRunningAlert (centered info alert), and the launch-error states mirror AgentLowBalanceAlert (title, body and a small button inside the message). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The intro slides used a fixed height + objectFit:cover, so when the box was narrower than the image's aspect ratio (e.g. the 460px About Agent modal) the sides were cropped — clipping the edge labels like "Your AI agent". Scale to the container width at the image's natural aspect ratio (height:auto) so the whole artwork always shows; imageHeight now caps the height on wide containers and only letterboxes if that cap engages. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The start-agent session nudge and the "another agent is running" alert are rendered by independent components, so both showed at once. Suppress the Connect start-info nudge while another agent is running, so only the running-agent alert shows; when nothing runs, only the start-info nudge shows. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The low-balance alert always said funds are needed to "meet staking requirements", which is wrong for non-staking agents (e.g. Connect). Append that clause only when the agent config has hasStaking. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: OjusWiZard <ojuswimail@gmail.com>
Resolves GHSA-m99w-x7hq-7vfj, GHSA-89xv-2m56-2m9x, GHSA-p9j2-gv94-2wf4 flagged by yarn audit in both trees. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add pUSD to Connect's per-chain erc20Tokens so the Agent Wallet lists it on Polygon instances. Gnosis stays ERC20-free (native xDAI only). pUSD already has a Polygon token config, and BalanceProvider reads balances for every token in TOKEN_CONFIG, so amounts populate with no backend change. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
atepem
force-pushed
the
feat/connect-agent
branch
from
July 24, 2026 09:58
f447ba5 to
293ab9f
Compare
… gate) postcss <=8.5.11 (GHSA-6g55-p6wh-862q, advisory 1124252 — arbitrary file read via attacker-controlled sourceMappingURL in CSS comments) was failing the "yarn audit (both trees)" CI gate via next>postcss. Both trees already pinned postcss to 8.5.10 via resolutions; bumped to 8.5.22 (fix landed in 8.5.12). audit:prod now green on both trees. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
feat: [VLOP-104] QA bundle — alert priority, low-balance copy, pUSD in agent wallet
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Exploration + phased implementation plan for adding the Connect agent to Pearl, produced via
/explore-frontend-codebase. Plan only — no product code.Doc:
docs/explorations/connect-agent-plan.md.What Connect is
connect; one instance per chain (Polygon, Base, Gnosis), all grouped under a single Connect sidebar entry.staking_program_id:"no_staking"+use_staking:false; staking-select screen skipped.Key decisions captured
home_chain ∈ supportedChainsso all Connect instances group under one type (the chain-equality check is the sole blocker; a different on-chain name wouldn't avoid it).on-ramp:false+bridge-onboarding:true→ transfer+bridge only.no_stakinghazards flagged (useCompleteAgentSetup,useStartServicelookup) with fixes located.Phases (each = one PR)
SelectChainscreen.no_staking+use_staking:false) + skip staking + funding methods + intro.POST /session, surface errors with a Retry.Open questions
None. External deps (agent minted + middleware readiness) gate PR2's end-to-end create; PR3 opens with a short main-page exploration.
🤖 Generated with Claude Code