Repository navigation
feat: search models inside the picker - #113
serhii-londar wants to merge 16 commits into
Conversation
- iOS: add search field that filters models by name (case-insensitive) - Desktop: add search input that filters models by name (case-insensitive) Both implementations show 'Default' first, then match models as user types. Follows existing UI patterns and codebase conventions.
Release 2.14.1
Link the Codync Discord community on the website
Codync 2.15.0: notch island, edit orb, bot reordering on iPhone
Codync 2.15.1: desktop menu fixes
fix(desktop): show update download progress and a restart button
The search field sat on the settings form beside the Model row, nowhere near the list it filtered. It now lives inside the popup on both clients: the desktop menu gains a search field at its top, and the phone opens a sheet with a search field over the matching choices, since a system Menu cannot host a text field. The desktop filter was also reversed — it asked whether the query contained a model's name, so an empty query matched nothing and the menu showed only Default. It matches model names against the query now, as the phone already did. The terminal UI is unaffected: it edits the model as text, so there is no list popup to search.
Codync 2.16.0: oh-my-pi, Extensions, update fixes
Codync 2.16.1: agents on Windows, Node.js setup, crash reports
Codync 2.16.2: move the desktop window from the empty and new-chat panes
Discord: join the server and get GitHub roles from one link
docs: add a code of conduct
# Conflicts: # apps/ios/Kit/Sources/CodyncUI/Bots/AgentModelPicker.swift
|
Thanks @serhii-londar, this is a nice improvement, and finding the reversed filter while testing against opencode's 533 models is a great catch. Codync takes pull requests against One thing on the desktop side before it goes in: the search text lives in |
…rom the full list The desktop search text lived in AgentModelPicker and survived closing the menu, so the next open was still filtered, and while the query hid the selected model its pill fell back to the raw id. Clear the query when the menu opens, as the iPhone sheet already did, and read the pill label from the full catalog on both clients.
… scrolls In a long model list the search field scrolled out of reach: the desktop menu panel and the iPhone sheet both scrolled the field away with the choices. Pin the field above the list on both clients so only the choices scroll.
Summary
The model search field sat on the bot settings form, next to the Model row — nowhere near the
list it filtered, and it pushed the rest of the form down. It now lives inside the model picker
itself, on both clients.
ChoicePickeropens the systemMenu, which cannot host a text field, so the modelrow now uses a new
SearchableChoicePicker. Tapping it presents a.codyncSheetwith aSearchFieldover the matching choices, mirroringFolderPicker.MenuPanelrenders a search field at the top of the anchored menu when the callerpasses one, so the dropdown filters in place.
DropdownMenuandChoicePickerthread that propthrough.
Two related fixes came out of testing this against a real agent:
empty query matched nothing and the menu showed only Default. It matches model names against the
query now, as the iPhone already did. This is why opencode's 533 models looked missing in the
macOS app while the phone showed all of them.
so it stops changing as you type.
The terminal UI is unaffected: it edits the model as text, so there is no list popup to search.
Validation
cd apps/desktop && npm run typecheck— clean;npm test— 131 pass.cd apps/ios/Kit && xcodebuild build -scheme CodyncKit-Package -destination 'generic/platform=iOS'— succeeded;
xcodebuild test -scheme CodyncKit-Package -destination 'platform=iOS Simulator,name=iPhone 18 Pro'— 87 tests pass.
opencode acp(v2.0.21) directly throughinitialize+session/newand confirmed the hostreceives all 533 advertised models across
openrouter(380),opencode(85),github-copilot(37)and
opencode-go(31).model_catalogforwards them unfiltered, so the loss was client-side only.npm run dev(Dev host on 19223, separate from the production host on 19222) and confirmed themacOS picker lists the full opencode catalog and filters correctly while typing.
and filters the list live, with the current selection kept visible.
Version bump is not included:
MARKETING_VERSIONstays at 2.14.0 pending a clean.xcodeproj,since the bump needs
xcodegen generateand that project currently holds unrelated in-flight edits.What's New
zh-Hant
en-US
top, so you no longer hunt for it back on the settings screen.