Repository navigation
Conversation
Opening any connection's detail logged "Encountered two children with the same key": ConnectionDefaultAction (keyed per connection in apache#5866 so its state resets when the selection changes) and ConnectionDetail both used the connection id as their key under the same level. Prefix the default action's key so both still remount per connection without colliding, and cover it in the providers-panel render test.
Astro-Han
left a comment
There was a problem hiding this comment.
Automated review notice: This comment was posted by an automated review agent. It is not an independent human review and does not replace one.
Reviewed both changed files at b74adde0e76ed80a01f165e82fe7f631b3d30559. I found no confirmed P0–P2 issue.
ConnectionDefaultAction now uses a prefixed connection-specific key, distinct from its ConnectionDetail sibling (apps/desktop/src/renderer/settings/providers-panel.tsx:361). Both keys still change with the selected connection, preserving the intended per-connection remount. The added mounted-render regression checks the actual connection-detail surface for duplicate-key errors (connection-settings-locale-render.test.ts:562).
Fresh dependencies/patches, the normal root build, renderer build and renderer typecheck passed. All 41 connection-settings render tests passed. Supplying only main's actual previous providers-panel.tsx to the same test's renderer bundler makes the new regression fail with React's duplicate relay-connection key warning. Changed-file lint, strict renderer architecture, ASF headers, diff checks, epoch guard (228; no protocol change) and static merge passed. Current-head test/label CI is successful and the PR is mergeable.
P3: the PR's AI-use choices are both still unchecked. Please select the applicable statement and, if generative tooling made a substantive contribution, identify it and preserve the required commit attribution.
I did not run a packaged Electron/CDP session or the complete Desktop/repository suites. The mounted tests use the real renderer components with controlled bridge responses.
Summary
Opening any connection's detail page (Settings → Models → a connection) logs React's "Encountered two children with the same key,
<connectionId>". #5866 keyedConnectionDefaultActionby the connection id so its dialog state resets when the selection changes, but its siblingConnectionDetailunder the same level is keyed by the same id. This prefixes the default action's key, so both still remount per connection and the keys no longer collide.Verification
connection-settings-locale-render.test.ts: fails on main (7 duplicate-key errors forrelay-connection), passes with the fix; the file's 41 tests pass.tsc -p tsconfig.renderer.json/tsconfig.main.jsonclean;check-renderer-architecture.mjspasses, also with--base upstream/main --strict-base;biome linton both files clean.MAKA_E2E_FIXTURE=settings-connections,dev:hmr), driven over CDP: opening both fixture connections' details logged 2 duplicate-key errors with main's key and 0 console errors/warnings with the fix.AI use
Select exactly one:
Tool(s) and scope:
Checklist
Does this PR entail a change in behavior?