* fix(server): align provider catalog diagnostics * fix(server): preserve catalog profile models * refactor: unify provider catalog discovery under AgentClient.fetchCatalog Remove listModels/listModes from AgentClient and fetchModels/fetchModes from ProviderDefinition. All provider runtime discovery now flows through a single fetchCatalog(options) => ProviderCatalog API. ProviderSnapshotManager.listModels/listModes remain as cached snapshot conveniences only. Provider implementations (acp, codex, opencode, pi, claude, mock) updated accordingly; agent-manager default model resolution now calls fetchCatalog. Reshape step toward issue pi-model-list-empty. * refactor: remove remaining provider listModels/listModes runtime API residue Migrate remaining AgentClient/provider-client implementations and tests to fetchCatalog. Remove obsolete ListModelsOptions/ListModesOptions interfaces. Update ProviderSnapshotManager.getProviderDiagnostic to materialize clients via ensureClient(provider, definition) so diagnostics self-heal the settings sheet instead of failing when providerClients[provider] is absent. Allowed to remain: ProviderSnapshotManager.listModels/listModes as cached snapshot readers; protocol/client legacy list_provider_models names; unrelated local helper in create-agent-mode. * test(server): repair test clients after fetchCatalog refactor - Restore TestAgentClient.fetchCatalog with proper model list and resumeSession. - Restore NativeArchiveRecordingClient and EnvProbeAgentClient removed during refactor. - Fix ResumeCaptureClient.fetchCatalog and resumeSession. - Fix stream-coalescing TestAgentClient.fetchCatalog shape and isAvailable. - Mock accessible OpenCode provider in full-access mode tests so fetchCatalog does not throw. * refactor(app): update stable discovered models ref directly during render
Welcome to your Expo app 👋
This is an Expo project created with create-expo-app.
Get started
-
Install dependencies
npm install -
Start the app
npx expo start
In the output, you'll find options to open the app in a
- development build
- Android emulator
- iOS simulator
- Expo Go, a limited sandbox for trying out app development with Expo
You can start developing by editing the files inside the app directory. This project uses file-based routing.
Get a fresh project
When you're ready, run:
npm run reset-project
This command will move the starter code to the app-example directory and create a blank app directory where you can start developing.
Learn more
To learn more about developing your project with Expo, look at the following resources:
- Expo documentation: Learn fundamentals, or go into advanced topics with our guides.
- Learn Expo tutorial: Follow a step-by-step tutorial where you'll create a project that runs on Android, iOS, and the web.
Join the community
Join our community of developers creating universal apps.
- Expo on GitHub: View our open source platform and contribute.
- Discord community: Chat with Expo users and ask questions.
Dictation debugging
Set EXPO_PUBLIC_ENABLE_AUDIO_DEBUG=1 before running npx expo start to render the in-app audio debug card. Pair it with the server-side STT_DEBUG_AUDIO_DIR flag so every dictation includes a copyable path to the saved raw audio file.