From 65974ef954ec65d97f4df7df2db7d63bd6f5b68a Mon Sep 17 00:00:00 2001 From: Tommy Chow Date: Thu, 2 Jul 2026 18:42:48 -0400 Subject: [PATCH] docs(agents): add fork-pin gotcha, test layout, pre-push check Co-Authored-By: Claude Opus 4.8 (1M context) --- AGENTS.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 8b549d99..5eb0a911 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -34,6 +34,8 @@ dart run build_runner build # Regenerate dart run build_runner build --delete-conflicting-outputs # Same, but clears stale outputs ``` +Before pushing: `flutter analyze && flutter test`. + ## Source Structure - `lib/apis/` — API services (all extend `BaseApiClient`) @@ -54,10 +56,11 @@ dart run build_runner build --delete-conflicting-outputs # Same, but - After changing MobX stores or `@JsonSerializable` models, regenerate with `dart run build_runner build`. Never edit `.g.dart` files directly. Commit `.g.dart` files to source control. - The secure storage cleanup in `main.dart` looks unnecessary but handles an Android/iOS edge case where secure storage persists after uninstall. Don't remove it. +- Several deps in `pubspec.yaml` are git-pinned forks carrying compatibility patches (`extended_text_field`, `better_native_video_player`, `simple_pip_mode`). When upgrading dependencies, don't swap them back to pub.dev releases. ## Testing - `flutter test` runs all tests; `flutter test test/path/to/file.dart` for a single file - HTTP mocking: `http_mock_adapter` (`DioAdapter`) — use full URLs in `onGet`/`onPost` - General mocking: `mocktail` (no codegen required) -- Fixtures live in `test/fixtures/` (e.g., `irc_messages.dart`, `api_responses.dart`) +- Test layout mirrors `lib/` (`test/apis/`, `test/models/`, `test/screens/`); shared fixtures live in `test/fixtures/` (e.g., `irc_messages.dart`, `api_responses.dart`)