Repository navigation
Conversation
Move saved-target browsing onto the shared surface lifecycle and bounded multiline list. Pin confirmation to the selected restart intent, preserve list state on Back, and isolate wheel input. Co-authored-by: Mecatl <noreply@mecatl.dev>
Implementation plan archive — /connect modernization
This is the full approved planning record, including its pre-implementation wording. Verification commands below describe planned checks; completed checks and review outcomes are reported separately in the PR description. Creation of this PR was subsequently authorized. No plan content was omitted for publication. /connect surface and bounded pickerSlug: 2176-connect-surface Goal and scopeModernize the saved remote-target picker (#2176), coordinating bounded adoption (#1742/#1589) and shared surface ownership (#2237). Keep a centered focused picker, not a fill management browser. Match existing worktrees/effort UI conventions rather than inventing another interaction pattern. User decisions: confirmation pins the chosen target/action; Escape returns to the unchanged list; a second Enter commits. Wheel scrolls without selecting. Click-to-select remains deferred to #769. Align existing shared UI behavior and styling. No new connection/authentication policy, credential handling, target persistence, filtering, refresh command, browser launch, or transport/API changes. Keep existing target ordering and startup/live recovery behavior. Existing AddTarget is an instructional restart (main.go:765), not an actual in-app enrollment flow; preserve it. Earlier conversational wording suggesting direct OIDC enrollment was imprecise. Current behavior and approach
Reuse Ownership and lifetime
Browsing and presentation
Observable acceptance
Implementation tasks
Verification and deliveryIntegrator owns full suites. Iterate with focused connect/UI/bounded and direct host boundary tests, then API compatibility: UI-local ownership, geometry and confirmation correction only. No wire protocol/remote semantics, feature identifier, API major, exported Go interface or stored-data changes planned. Keep host action/resume contracts unchanged; reassess if implementation crosses that boundary. Include this assessment in any eventual PR. No commit, push or PR without authorization. Initial panel review compares to the recorded implementation start OID (capture at branch creation; not invented here). If a PR is later authorized, retain a publishable full plan in one identifiable PR conversation comment using plan-implement's archival/readback procedure; keep comment metadata outside the plan copy. No automatic merge. Decisions and risksThe two user-facing choices are settled. UI patterns exist; no new framework is needed. Main risks are recovery-only Init, modal replacement during idle auth failure, geometry-less tests, and retaining sanitized rendering while replacing helpers. Raw metadata and identity must not be conflated. Fresh-context static review found one important wording contradiction: the original restriction could disable non-rejected recovery actions. Corrected it to the exact AuthRejected + failedTarget condition, preserving the existing action matrix. No other design gaps were found. Review did not run tests or verify runtime behavior; no implementation has started. |
Summary
/connectonto the shared surface lifecycle with a bounded multiline saved-target list, stable target identity, and standard picker styling/navigation.Closes #2176.
Relates to #1742, #1589, and #2237. This is one focused slice, not completion of either umbrella.
API compatibility
UI-local ownership, geometry, and confirmation corrections only. No wire protocol or remote-observable server semantics change; no API major, feature identifier, exported Go interface, or stored-data change. Existing target-bound recovery/resume and host authentication policy are unchanged.
Verification
task testtask test:racetask linttask buildgo run ./cmd/mecademo— verified tool call, permission ask/approval, and resultThe first full run exposed a geometry-less host test fixture, now fixed. An intermediate full run hit an unrelated daemon readiness timeout; its focused rerun and the final full/race suites passed without daemon changes.
Manual UI verification has not been performed. No tracked documentation changes: the interaction corrections are explained by the UI hints.
Implementation plan
Full implementation plan archive. Planned verification in that archive is distinct from the completed checks above.