···28282929## M4 - Login Integration
30303131-- [ ] Modify `LoginScreen` to use `TypeaheadTextField` for the handle field
3232- - Create `TypeaheadRepository` without `Bluesky`, force `provider: 'community'`
3333- - `onSelected` fills handle controller + triggers `_onOAuthLogin`
3434- - `minChars: 2`, `debounceMs: 300`, `limit: 8`
3535-- [ ] Preserve existing validation (`validator`, `TextInputAction.next`)
3636-- [ ] Preserve debug app-password form (unaffected)
3737-- [ ] Widget test: login typeahead shows community results, selecting triggers login flow
3838-- [ ] Integration test: type handle → see suggestions → tap → OAuth initiates
3131+- [x] Modify `LoginScreen` to use `TypeaheadTextField` for the handle field
3232+- [x] Preserve existing validation (`validator`, `TextInputAction.next`)
3333+- [x] Preserve debug app-password form (unaffected)
3434+- [x] Widget test: login typeahead shows community results, selecting triggers login flow
3535+- [x] Integration test: type handle → see suggestions → tap → OAuth initiates
39364037## M5 - Search Integration
41384242-- [ ] Inject `TypeaheadRepository` into `SearchBloc` (replace direct `SearchRepository.searchActorsTypeahead` usage)
4343-- [ ] Update `SearchBloc._onTypeaheadRequested` to call `TypeaheadRepository.search`
4444-- [ ] Map `TypeaheadResult` back to `ProfileViewBasic` for `state.typeaheadActors` compatibility (or migrate state to `TypeaheadResult`)
4545-- [ ] Update jump-to-profile dialog to use `TypeaheadCubit` + `TypeaheadTextField`
4646-- [ ] Update list member add screen to use `TypeaheadRepository`
4747-- [ ] Update starter pack member search to use `TypeaheadRepository`
4848-- [ ] Unit tests: `SearchBloc` typeahead delegates to `TypeaheadRepository`
4949-- [ ] Widget tests: search typeahead renders results from configured provider
3939+- [x] Inject `TypeaheadRepository` into `SearchBloc` (replace direct `SearchRepository.searchActorsTypeahead` usage)
4040+- [x] Update `SearchBloc._onTypeaheadRequested` to call `TypeaheadRepository.search`
4141+- [x] Map `TypeaheadResult` back to `ProfileViewBasic` for `state.typeaheadActors` compatibility (or migrate state to `TypeaheadResult`)
4242+- [x] Update jump-to-profile dialog to use `TypeaheadCubit` + `TypeaheadTextField`
4343+- [x] Update list member add screen to use `TypeaheadRepository`
4444+- [x] Update starter pack member search to use `TypeaheadRepository`
4545+- [x] Unit tests: `SearchBloc` typeahead delegates to `TypeaheadRepository`
4646+- [x] Widget tests: search typeahead renders results from configured provider
4747+4848+## M5.1 - Runtime Provider Propagation
4949+5050+- [x] Ensure `TypeaheadRepository` resolves provider dynamically so existing consumers pick up `SettingsCubit.typeaheadProvider` changes without app/session rebuild
5151+- [x] Wire authenticated app-scope `TypeaheadRepository` to `SettingsCubit` via resolver callback
5252+- [x] Unit test: same repository instance switches between community and Bluesky backends when provider changes at runtime