Estimate: 24m · Depends on: 6.9.1
Make the link picker actually find any issue — the finding-#98 fix. UI behaviour change on an EXISTING surface (no new component, no design subtask).
Backend: replace findLinkCandidates’ newest-50 window with the 6.9.1 quick-search composed with the existing direction-aware exclusions — listLinkCandidates passes the typed query + the (self + already-linked-for-this-relationship) exclude set + the bound into quickSearch, so the result is a SEARCHED, excluded, bounded candidate page (not a recent slice). listLinkCandidatesAction grows a query parameter.
Frontend (AddLinkControl + LinkAddForm): the issue-search Combobox goes query-driven — debounced server fetch as the user types (the same Combobox already shows loading / no-results / selected states), instead of fetching newest-50 once and filtering client-side. Re-fetch on relationship change (the exclusion set differs) is preserved. Keep the immediate-write Add path (createLinkAction → refresh) and the typed-error banner unchanged. The 2.4.10 create-modal control (CreateIssueLinksField) rides the same shared form, so it is fixed in lockstep.
--el-*, shape via element tokens; axe-clean; next-intl.pnpm test:coverage ≥ 90%.app/(authed)/issues/[key]/_components/AddLinkControl.tsx, components/issues/LinkAddForm.tsx, the listLinkCandidatesAction action, workItemsService.listLinkCandidates, workItemRepository.findLinkCandidatesdesign/work-items/links.mock.html + design-notes (2.4.9 — the EXISTING picker design; data-source change only, layout unchanged) — THE authority