fix(frontend): a second card joining a non-expert connector row is never auto-filled, and the chain summary disagrees with the row
The non-expert half of #14615: a second card joining a connector row that has already auto-selected is never written to, and the chain's "Still to connect" summary then disagrees with the row it describes.
The auto-hydration path. ConnectorRow's effect for a chat without an expert returns early on if (row.selected || !savedCredential) return; (ConnectorRow.tsx:130). row.selected reports the FIRST merged card's value, so once one card has auto-selected, a second card asking for the same provider joins the row and is never written — its own field stays empty and the run it belongs to is blocked. It is the same shape as #14615, on the path that has no expert grant.
#14618 does not fix it, but it does stop it being silent: isSatisfied now requires hasUnansweredTarget to be false, so the row renders a Connect button instead of claiming "Connected", and clicking it writes every merged card. Before that, the row said Connected and offered no control at all.
The fix mirrors the expert one: re-write the merged targets when hasUnansweredTarget is true, rather than returning early on row.selected alone.
The summary. ChainActionCard builds "Still to connect" from rows.filter((row) => !row.selected) (ChainActionCard.tsx:63), which is the row's first-card value again. A row that is unanswered but has a selection is therefore missing from that list while the row itself shows a Connect button — the card says nothing is outstanding and the row says otherwise. With the expert fix in place the window is brief, because the effect writes immediately; on the non-expert path above it persists until the user clicks. Include rows where hasUnansweredTarget is true in remaining so the two agree.
Both found by the autoreviewer on #14618 (approved, 0 blockers, both advisory).
Source: Significant-Gravitas/AutoGPT