Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
## Unreleased

- Added version detection warnings for hot reload on Flutter stable ≤ 3.37.0
- Updated `/debug-app`, `/create-app`, and `/modify` commands to warn users about hot reload limitations
- Provides guidance to switch to Flutter main channel or manually restart apps when hot reload fails
- Related to [#15](https://github.com/gemini-cli-extensions/flutter/issues/15)

## 0.3.0

- Removed the `flutter_launcher` MCP server because it has been integrated into
Expand Down
1 change: 1 addition & 0 deletions commands/create-app.toml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ The implementation plan should specify after each phase that you should:
- [ ] Use `git diff` to verify the changes that have been made, and create a suitable commit message for any changes, following any guidelines you have about commit messages. Be sure to properly escape dollar signs and backticks, and present the change message to the user for approval.
- [ ] Wait for approval. Don't commit the changes or move on to the next phase of implementation until the user approves the commit.
- [ ] After commiting the change, if the app is running, use the hot_reload tool to reload it.
- **Note**: Hot reload does not work reliably on Flutter stable ≤ 3.37.0. If hot_reload fails, inform the user and suggest either switching to Flutter main channel or manually restarting the app.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Note**: Hot reload does not work reliably on Flutter stable ≤ 3.37.0. If hot_reload fails, inform the user and suggest either switching to Flutter main channel or manually restarting the app.
- Hot reload only works reliably on Flutter at versions at or above 3.37.0. If hot_reload fails, and they are using a version below that, inform the user and suggest either switching to the Flutter main channel or manually reloading the app.


In the last phase of the plan, include steps to:

Expand Down
11 changes: 10 additions & 1 deletion commands/debug-app.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,13 @@ Next, collect additional information required for debugging. Ask the user one qu
Before diving into the code, let's verify the project's dependencies and environment.

- [ ] Run `flutter doctor` to get the Flutter and Dart SDK versions and check for any issues reported.
- [ ] Check the Flutter version output and determine if hot reload is supported:
- **IMPORTANT**: Hot reload through the Dart MCP server does not work reliably on Flutter stable ≤ 3.37.0 (see [issue #15](https://github.com/gemini-cli-extensions/flutter/issues/15))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **IMPORTANT**: Hot reload through the Dart MCP server does not work reliably on Flutter stable ≤ 3.37.0 (see [issue #15](https://github.com/gemini-cli-extensions/flutter/issues/15))
- Hot reload only works reliably on Flutter at versions at or above 3.37.0. If hot_reload fails, and they are using a version below that, inform the user and suggest either switching to the Flutter main channel or manually reloading the app.

No need to reference the bug.

- If the user is on Flutter stable ≤ 3.37.0, warn them that hot reload may fail during this debugging session
Copy link
Contributor

@gspencergoog gspencergoog Oct 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd just delete this item in favor of the suggestion I had for line 38.

- Suggest they either:
Copy link
Contributor

@gspencergoog gspencergoog Oct 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can remove this entire item if you use the suggestion from line 38 above.

1. Switch to Flutter main/master channel for full hot reload support, OR
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The term main/master channel could be confusing. Flutter's main development branch is master. To provide clear and accurate guidance, it's better to refer specifically to the master channel.

    1. Switch to Flutter master channel for full hot reload support, OR

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should use "main".

2. Manually restart the app after making code changes instead of using hot_reload
- If they choose to proceed with stable, acknowledge their choice and remind them about the limitation when using hot_reload later
- [ ] Use the `pub` tool with the `outdated` command to look for outdated packages or dependency conflicts in `pubspec.yaml` and `pubspec.lock`.
- Run the command `pub` tool with `upgrade` to upgrade to latest versions.
- If that isn't sufficient, sometimes upgrading the package version to a new major version can help. The `pub` tool can't do this, so run the command `dart pub upgrade --major-versions` to do this.
Expand Down Expand Up @@ -62,7 +69,9 @@ The debugging strategy should be chosen to yield the best results and may involv

- **Logging and Tracing:**
- Add strategic logging statements to the code to trace execution flow. Prefer `debugPrint()` over `print()` for cleaner, non-interfering output.
- Use `hot_reload` to apply logging changes quickly while preserving the app's state. If the state needs to be reset, explain that a Hot Restart is needed, and you will need to stop and restart the app.
- Use `hot_reload` to apply logging changes quickly while preserving the app's state.
- **Note**: If the user is on Flutter stable ≤ 3.37.0 and hot_reload fails, suggest they manually restart the app or switch to Flutter main channel
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Note**: If the user is on Flutter stable ≤ 3.37.0 and hot_reload fails, suggest they manually restart the app or switch to Flutter main channel
- Hot reload only works reliably on Flutter at versions at or above 3.37.0. If hot_reload fails, and they are using a version below that, inform the user and suggest either switching to the Flutter main channel or manually reloading the app.

- If the state needs to be reset, explain that a Hot Restart is needed, and you will need to stop and restart the app.

- **Flutter DevTools & UI Inspection:**
- **For UI and layout bugs:** Use the `get_widget_tree` tool to inspect the widget hierarchy and properties.
Expand Down
1 change: 1 addition & 0 deletions commands/modify.toml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ The implementation plan should specify after each phase that you should:
- [ ] Use `git diff` to verify the changes that have been made, and create a suitable commit message for any changes, following any guidelines you have about commit messages. Be sure to properly escape dollar signs and backticks, and present the change message to the user for approval.
- [ ] Wait for approval. Don't commit the changes or move on to the next phase of implementation until the user approves the commit.
- [ ] After commiting the change, if an app is running, use the hot_reload tool to reload it.
- **Note**: Hot reload does not work reliably on Flutter stable ≤ 3.37.0. If hot_reload fails, inform the user and suggest either switching to Flutter main channel or manually restarting the app.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Note**: Hot reload does not work reliably on Flutter stable ≤ 3.37.0. If hot_reload fails, inform the user and suggest either switching to Flutter main channel or manually restarting the app.
- Hot reload only works reliably on Flutter at versions at or above 3.37.0. If hot_reload fails, and they are using a version below that, inform the user and suggest either switching to the Flutter main channel or manually reloading the app.


In the last phase of the plan, include steps to:

Expand Down