Merge remote-tracking branch 'origin/cherry_pick_better_global_error_message' into merge_cherry_pick
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index f45c8e4..0ea1793 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -24,7 +24,7 @@
       matrix:
         sdk: [dev]
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       - uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672
         with:
           sdk: ${{ matrix.sdk }}
@@ -52,7 +52,7 @@
         sdk: [dev]
         shard: [0, 1, 2, 3, 4, 5, 6]
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
+      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
       - uses: dart-lang/setup-dart@0a8a0fc875eb934c15d08629302413c671d3f672
         with:
           sdk: ${{ matrix.sdk }}
diff --git a/a b/a
deleted file mode 100644
index 3fb6d35..0000000
--- a/a
+++ /dev/null
@@ -1,242 +0,0 @@
-# Generated by pub
-# See https://dart.dev/tools/pub/glossary#lockfile
-packages:
-  _fe_analyzer_shared:
-    dependency: transitive
-    description:
-      name: _fe_analyzer_shared
-      sha256: "45cfa8471b89fb6643fe9bf51bd7931a76b8f5ec2d65de4fb176dba8d4f22c77"
-      url: "https://pub.dev"
-    source: hosted
-    version: "73.0.0"
-  _macros:
-    dependency: transitive
-    description: dart
-    source: sdk
-    version: "0.3.2"
-  analyzer:
-    dependency: transitive
-    description:
-      name: analyzer
-      sha256: "4959fec185fe70cce007c57e9ab6983101dbe593d2bf8bbfb4453aaec0cf470a"
-      url: "https://pub.dev"
-    source: hosted
-    version: "6.8.0"
-  archive:
-    dependency: transitive
-    description:
-      name: archive
-      sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d
-      url: "https://pub.dev"
-    source: hosted
-    version: "3.6.1"
-  args:
-    dependency: transitive
-    description:
-      name: args
-      sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.5.0"
-  async:
-    dependency: transitive
-    description:
-      name: async
-      sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.11.0"
-  clock:
-    dependency: transitive
-    description:
-      name: clock
-      sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.1.1"
-  collection:
-    dependency: transitive
-    description:
-      name: collection
-      sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.19.0"
-  convert:
-    dependency: transitive
-    description:
-      name: convert
-      sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
-      url: "https://pub.dev"
-    source: hosted
-    version: "3.1.1"
-  crypto:
-    dependency: transitive
-    description:
-      name: crypto
-      sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27
-      url: "https://pub.dev"
-    source: hosted
-    version: "3.0.5"
-  dart_style:
-    dependency: transitive
-    description:
-      name: dart_style
-      sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.3.7"
-  file:
-    dependency: transitive
-    description:
-      name: file
-      sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
-      url: "https://pub.dev"
-    source: hosted
-    version: "7.0.1"
-  glob:
-    dependency: transitive
-    description:
-      name: glob
-      sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.1.2"
-  http:
-    dependency: transitive
-    description:
-      name: http
-      sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.2.2"
-  http_parser:
-    dependency: transitive
-    description:
-      name: http_parser
-      sha256: "40f592dd352890c3b60fec1b68e786cefb9603e05ff303dbc4dda49b304ecdf4"
-      url: "https://pub.dev"
-    source: hosted
-    version: "4.1.0"
-  intl:
-    dependency: transitive
-    description:
-      name: intl
-      sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
-      url: "https://pub.dev"
-    source: hosted
-    version: "0.19.0"
-  intl_utils:
-    dependency: "direct main"
-    description:
-      name: intl_utils
-      sha256: c2b1f5c72c25512cbeef5ab015c008fc50fe7e04813ba5541c25272300484bf4
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.8.7"
-  macros:
-    dependency: transitive
-    description:
-      name: macros
-      sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536"
-      url: "https://pub.dev"
-    source: hosted
-    version: "0.1.2-main.4"
-  meta:
-    dependency: transitive
-    description:
-      name: meta
-      sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.16.0"
-  package_config:
-    dependency: transitive
-    description:
-      name: package_config
-      sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.1.0"
-  path:
-    dependency: transitive
-    description:
-      name: path
-      sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.9.0"
-  petitparser:
-    dependency: transitive
-    description:
-      name: petitparser
-      sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27
-      url: "https://pub.dev"
-    source: hosted
-    version: "6.0.2"
-  pub_semver:
-    dependency: transitive
-    description:
-      name: pub_semver
-      sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.1.4"
-  source_span:
-    dependency: transitive
-    description:
-      name: source_span
-      sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.10.0"
-  string_scanner:
-    dependency: transitive
-    description:
-      name: string_scanner
-      sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.3.0"
-  term_glyph:
-    dependency: transitive
-    description:
-      name: term_glyph
-      sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.2.1"
-  typed_data:
-    dependency: transitive
-    description:
-      name: typed_data
-      sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.3.2"
-  watcher:
-    dependency: transitive
-    description:
-      name: watcher
-      sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.1.0"
-  web:
-    dependency: transitive
-    description:
-      name: web
-      sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.1.0"
-  yaml:
-    dependency: transitive
-    description:
-      name: yaml
-      sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5"
-      url: "https://pub.dev"
-    source: hosted
-    version: "3.1.2"
-sdks:
-  dart: ">=3.4.0 <4.0.0"
diff --git a/analysis_options.yaml b/analysis_options.yaml
index fb93ce7..5e2f708 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -12,36 +12,19 @@
 
 linter:
   rules:
-    - always_declare_return_types
-    - avoid_catching_errors
     - avoid_print
     - avoid_private_typedef_functions
     - avoid_redundant_argument_values
     - avoid_unused_constructor_parameters
     - avoid_void_async
     - cancel_subscriptions
-    - directives_ordering
-    - library_annotations
+    - missing_code_block_language_in_doc_comment
     - missing_whitespace_between_adjacent_strings
     - no_adjacent_strings_in_list
     - no_runtimeType_toString
-    - omit_local_variable_types
-    - only_throw_errors
-    - package_api_docs
-    - prefer_asserts_in_initializer_lists
     - prefer_const_declarations
     - prefer_final_locals
-    - prefer_relative_imports
-    - prefer_single_quotes
     - require_trailing_commas
-    - sort_pub_dependencies
-    - test_types_in_equals
-    - throw_in_finally
-    - type_annotate_public_apis
     - unawaited_futures
-    - unnecessary_lambdas
-    - unnecessary_library_directive
-    - unnecessary_parenthesis
-    - unnecessary_statements
     - unreachable_from_main
     - use_enums
diff --git a/b b/b
deleted file mode 100644
index 3fb6d35..0000000
--- a/b
+++ /dev/null
@@ -1,242 +0,0 @@
-# Generated by pub
-# See https://dart.dev/tools/pub/glossary#lockfile
-packages:
-  _fe_analyzer_shared:
-    dependency: transitive
-    description:
-      name: _fe_analyzer_shared
-      sha256: "45cfa8471b89fb6643fe9bf51bd7931a76b8f5ec2d65de4fb176dba8d4f22c77"
-      url: "https://pub.dev"
-    source: hosted
-    version: "73.0.0"
-  _macros:
-    dependency: transitive
-    description: dart
-    source: sdk
-    version: "0.3.2"
-  analyzer:
-    dependency: transitive
-    description:
-      name: analyzer
-      sha256: "4959fec185fe70cce007c57e9ab6983101dbe593d2bf8bbfb4453aaec0cf470a"
-      url: "https://pub.dev"
-    source: hosted
-    version: "6.8.0"
-  archive:
-    dependency: transitive
-    description:
-      name: archive
-      sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d
-      url: "https://pub.dev"
-    source: hosted
-    version: "3.6.1"
-  args:
-    dependency: transitive
-    description:
-      name: args
-      sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.5.0"
-  async:
-    dependency: transitive
-    description:
-      name: async
-      sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.11.0"
-  clock:
-    dependency: transitive
-    description:
-      name: clock
-      sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.1.1"
-  collection:
-    dependency: transitive
-    description:
-      name: collection
-      sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.19.0"
-  convert:
-    dependency: transitive
-    description:
-      name: convert
-      sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
-      url: "https://pub.dev"
-    source: hosted
-    version: "3.1.1"
-  crypto:
-    dependency: transitive
-    description:
-      name: crypto
-      sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27
-      url: "https://pub.dev"
-    source: hosted
-    version: "3.0.5"
-  dart_style:
-    dependency: transitive
-    description:
-      name: dart_style
-      sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.3.7"
-  file:
-    dependency: transitive
-    description:
-      name: file
-      sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
-      url: "https://pub.dev"
-    source: hosted
-    version: "7.0.1"
-  glob:
-    dependency: transitive
-    description:
-      name: glob
-      sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.1.2"
-  http:
-    dependency: transitive
-    description:
-      name: http
-      sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.2.2"
-  http_parser:
-    dependency: transitive
-    description:
-      name: http_parser
-      sha256: "40f592dd352890c3b60fec1b68e786cefb9603e05ff303dbc4dda49b304ecdf4"
-      url: "https://pub.dev"
-    source: hosted
-    version: "4.1.0"
-  intl:
-    dependency: transitive
-    description:
-      name: intl
-      sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
-      url: "https://pub.dev"
-    source: hosted
-    version: "0.19.0"
-  intl_utils:
-    dependency: "direct main"
-    description:
-      name: intl_utils
-      sha256: c2b1f5c72c25512cbeef5ab015c008fc50fe7e04813ba5541c25272300484bf4
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.8.7"
-  macros:
-    dependency: transitive
-    description:
-      name: macros
-      sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536"
-      url: "https://pub.dev"
-    source: hosted
-    version: "0.1.2-main.4"
-  meta:
-    dependency: transitive
-    description:
-      name: meta
-      sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.16.0"
-  package_config:
-    dependency: transitive
-    description:
-      name: package_config
-      sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.1.0"
-  path:
-    dependency: transitive
-    description:
-      name: path
-      sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.9.0"
-  petitparser:
-    dependency: transitive
-    description:
-      name: petitparser
-      sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27
-      url: "https://pub.dev"
-    source: hosted
-    version: "6.0.2"
-  pub_semver:
-    dependency: transitive
-    description:
-      name: pub_semver
-      sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.1.4"
-  source_span:
-    dependency: transitive
-    description:
-      name: source_span
-      sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.10.0"
-  string_scanner:
-    dependency: transitive
-    description:
-      name: string_scanner
-      sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.3.0"
-  term_glyph:
-    dependency: transitive
-    description:
-      name: term_glyph
-      sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.2.1"
-  typed_data:
-    dependency: transitive
-    description:
-      name: typed_data
-      sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.3.2"
-  watcher:
-    dependency: transitive
-    description:
-      name: watcher
-      sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.1.0"
-  web:
-    dependency: transitive
-    description:
-      name: web
-      sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.1.0"
-  yaml:
-    dependency: transitive
-    description:
-      name: yaml
-      sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5"
-      url: "https://pub.dev"
-    source: hosted
-    version: "3.1.2"
-sdks:
-  dart: ">=3.4.0 <4.0.0"
diff --git a/c b/c
deleted file mode 100644
index da33c6c..0000000
--- a/c
+++ /dev/null
@@ -1,242 +0,0 @@
-# Generated by pub
-# See https://dart.dev/tools/pub/glossary#lockfile
-packages:
-  _fe_analyzer_shared:
-    dependency: transitive
-    description:
-      name: _fe_analyzer_shared
-      sha256: c57b02f47e021c9d7ced6d2e28824b315e0fd585578274bc4c2a5db0626f154a
-      url: "https://pub.dev"
-    source: hosted
-    version: "75.0.0"
-  _macros:
-    dependency: transitive
-    description: dart
-    source: sdk
-    version: "0.3.3"
-  analyzer:
-    dependency: transitive
-    description:
-      name: analyzer
-      sha256: ef226c581b7cd875f734125b1b9928df3db08cc85ff87ce7d9be89a677aaee23
-      url: "https://pub.dev"
-    source: hosted
-    version: "6.10.0"
-  archive:
-    dependency: transitive
-    description:
-      name: archive
-      sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d
-      url: "https://pub.dev"
-    source: hosted
-    version: "3.6.1"
-  args:
-    dependency: transitive
-    description:
-      name: args
-      sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.5.0"
-  async:
-    dependency: transitive
-    description:
-      name: async
-      sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.11.0"
-  clock:
-    dependency: transitive
-    description:
-      name: clock
-      sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.1.1"
-  collection:
-    dependency: transitive
-    description:
-      name: collection
-      sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.19.0"
-  convert:
-    dependency: transitive
-    description:
-      name: convert
-      sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
-      url: "https://pub.dev"
-    source: hosted
-    version: "3.1.1"
-  crypto:
-    dependency: transitive
-    description:
-      name: crypto
-      sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27
-      url: "https://pub.dev"
-    source: hosted
-    version: "3.0.5"
-  dart_style:
-    dependency: transitive
-    description:
-      name: dart_style
-      sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.3.7"
-  file:
-    dependency: transitive
-    description:
-      name: file
-      sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
-      url: "https://pub.dev"
-    source: hosted
-    version: "7.0.1"
-  glob:
-    dependency: transitive
-    description:
-      name: glob
-      sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.1.2"
-  http:
-    dependency: transitive
-    description:
-      name: http
-      sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.2.2"
-  http_parser:
-    dependency: transitive
-    description:
-      name: http_parser
-      sha256: "40f592dd352890c3b60fec1b68e786cefb9603e05ff303dbc4dda49b304ecdf4"
-      url: "https://pub.dev"
-    source: hosted
-    version: "4.1.0"
-  intl:
-    dependency: transitive
-    description:
-      name: intl
-      sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
-      url: "https://pub.dev"
-    source: hosted
-    version: "0.19.0"
-  intl_utils:
-    dependency: "direct main"
-    description:
-      name: intl_utils
-      sha256: c2b1f5c72c25512cbeef5ab015c008fc50fe7e04813ba5541c25272300484bf4
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.8.7"
-  macros:
-    dependency: transitive
-    description:
-      name: macros
-      sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656"
-      url: "https://pub.dev"
-    source: hosted
-    version: "0.1.3-main.0"
-  meta:
-    dependency: transitive
-    description:
-      name: meta
-      sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.16.0"
-  package_config:
-    dependency: transitive
-    description:
-      name: package_config
-      sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.1.0"
-  path:
-    dependency: transitive
-    description:
-      name: path
-      sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.9.0"
-  petitparser:
-    dependency: transitive
-    description:
-      name: petitparser
-      sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27
-      url: "https://pub.dev"
-    source: hosted
-    version: "6.0.2"
-  pub_semver:
-    dependency: transitive
-    description:
-      name: pub_semver
-      sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.1.4"
-  source_span:
-    dependency: transitive
-    description:
-      name: source_span
-      sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.10.0"
-  string_scanner:
-    dependency: transitive
-    description:
-      name: string_scanner
-      sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.3.0"
-  term_glyph:
-    dependency: transitive
-    description:
-      name: term_glyph
-      sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.2.1"
-  typed_data:
-    dependency: transitive
-    description:
-      name: typed_data
-      sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.3.2"
-  watcher:
-    dependency: transitive
-    description:
-      name: watcher
-      sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.1.0"
-  web:
-    dependency: transitive
-    description:
-      name: web
-      sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.1.0"
-  yaml:
-    dependency: transitive
-    description:
-      name: yaml
-      sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5"
-      url: "https://pub.dev"
-    source: hosted
-    version: "3.1.2"
-sdks:
-  dart: ">=3.4.0 <4.0.0"
diff --git a/lib/src/authentication/credential.dart b/lib/src/authentication/credential.dart
index 5e51754..a69beef 100644
--- a/lib/src/authentication/credential.dart
+++ b/lib/src/authentication/credential.dart
@@ -27,7 +27,7 @@
 ///
 /// or
 ///
-/// /// ```json
+/// ```json
 /// {
 ///   "url": "https://example.com/",
 ///   "env": "TOKEN_ENV_VAR"
diff --git a/lib/src/command/add.dart b/lib/src/command/add.dart
index 5e098b2..5fe7f04 100644
--- a/lib/src/command/add.dart
+++ b/lib/src/command/add.dart
@@ -448,7 +448,8 @@
   /// description is issued.
   ///
   /// Examples:
-  /// ```
+  ///
+  /// ```none
   /// retry
   /// retry:2.0.0
   /// retry:^2.0.0
@@ -579,7 +580,8 @@
   ///
   ///
   /// Examples:
-  /// ```
+  ///
+  /// ```none
   /// retry
   /// retry:2.0.0
   /// dev:retry:^2.0.0
@@ -593,14 +595,14 @@
   /// 'retry:{"hosted":"mypub.dev"}'
   /// ```
   ///
-  /// The --path --sdk and --git-<option> arguments cannot be combined with a
-  /// non-string descriptor.
+  /// The `--path`, `--sdk`, and `--git-<option>` arguments can't be
+  /// combined with a non-string descriptor.
   ///
   /// If a version constraint is provided when the `--path` or any of the
-  /// `--git-<option>` options are used, a [usageException] will be thrown.
+  /// `--git-<option>` options are used, a [UsageException] will be thrown.
   ///
   /// Packages must either be a git, hosted, sdk, or path package. Mixing of
-  /// options is not allowed and will cause a [usageException] to be thrown.
+  /// options is not allowed and will cause a [UsageException] to be thrown.
   ///
   /// If any of the other git options are defined when `--git-url` is not
   /// defined, an error will be thrown.
diff --git a/lib/src/global_packages.dart b/lib/src/global_packages.dart
index 16e2f17..f491d69 100644
--- a/lib/src/global_packages.dart
+++ b/lib/src/global_packages.dart
@@ -28,7 +28,6 @@
 import 'source/hosted.dart';
 import 'source/path.dart';
 import 'source/root.dart';
-import 'source/sdk.dart';
 import 'system_cache.dart';
 import 'utils.dart';
 
@@ -456,16 +455,7 @@
       recompile: (exectuable) async {
         final root = entrypoint.workspaceRoot;
         final name = exectuable.package;
-
-        // When recompiling we re-resolve it and download its dependencies. This
-        // is mainly to protect from the case where the sdk was updated, and
-        // that causes some incompatibilities. (could be the new sdk is outside
-        // some package's environment constraint range, or that the sdk came
-        // with incompatible versions of sdk packages).
-        //
-        // We use --enforce-lockfile semantics, because we want upgrading
-        // globally activated packages to be conscious, and not a part of
-        // running them.
+        // Resolve it and download its dependencies.
         SolveResult result;
         try {
           result = await log.spinner(
@@ -484,44 +474,14 @@
         result.packages.removeWhere((id) => id.name == 'pub global activate');
 
         final newLockFile = await result.downloadCachedPackages(cache);
-        final report = SolveReport(
-          SolveType.get,
-          entrypoint.workspaceRoot.dir,
-          entrypoint.workspaceRoot.pubspec,
-          entrypoint.workspaceRoot.allOverridesInWorkspace,
-          entrypoint.lockFile,
-          newLockFile,
-          result.availableVersions,
-          cache,
-          dryRun: true,
-          enforceLockfile: true,
-          quiet: false,
-        );
-        await report.show(summary: true);
-
         final sameVersions = entrypoint.lockFile.samePackageIds(newLockFile);
-
         if (!sameVersions) {
-          if (newLockFile.packages.values.any((p) {
-            return p.source is SdkSource &&
-                p.version != entrypoint.lockFile.packages[p.name]?.version;
-          })) {
-            // More specific error message for the case of a version match with
-            // an sdk package.
-            dataError('''
-The current activation of `$name` is not compatible with your current SDK.
+          dataError('''
+The package `$name` as currently activated cannot resolve to the same packages.
 
 Try reactivating the package.
 `$topLevelProgram pub global activate $name`
 ''');
-          } else {
-            dataError('''
-The current activation of `$name` cannot resolve to the same set of dependencies.
-
-Try reactivating the package.
-`$topLevelProgram pub global activate $name`
-''');
-          }
         }
         await recompile(exectuable);
         _refreshBinStubs(entrypoint, executable);
diff --git a/pubspec.lock b/pubspec.lock
index 85bff24..03806cc 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -98,10 +98,10 @@
     dependency: "direct dev"
     description:
       name: dart_flutter_team_lints
-      sha256: "084338b81e33917c7c180da7aaccb59a5e5d16ece372465c6a2b930841b9009a"
+      sha256: c6c9c89f4038a64063b67166b2d291d19697a73e111afa42ddcf1840c410c08e
       url: "https://pub.dev"
     source: hosted
-    version: "3.2.0"
+    version: "3.2.1"
   file:
     dependency: transitive
     description:
@@ -178,10 +178,10 @@
     dependency: transitive
     description:
       name: lints
-      sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235"
+      sha256: "4a16b3f03741e1252fda5de3ce712666d010ba2122f8e912c94f9f7b90e1a4c3"
       url: "https://pub.dev"
     source: hosted
-    version: "4.0.0"
+    version: "5.1.0"
   logging:
     dependency: transitive
     description:
@@ -479,4 +479,4 @@
     source: hosted
     version: "2.2.1"
 sdks:
-  dart: ">=3.5.0 <4.0.0"
+  dart: ">=3.6.0-0 <4.0.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 5ff42ae..bd5fb0d 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -30,7 +30,7 @@
 
 dev_dependencies:
   checks: ^0.3.0
-  dart_flutter_team_lints: ^3.1.0
+  dart_flutter_team_lints: ^3.2.1
   shelf_test_handler: ^2.0.2
   test: ^1.24.9
   test_descriptor: ^2.0.1
diff --git a/test/global/run/recompiles_if_snapshot_is_out_of_date_test.dart b/test/global/run/recompiles_if_snapshot_is_out_of_date_test.dart
index 01a03d6..dc308c7 100644
--- a/test/global/run/recompiles_if_snapshot_is_out_of_date_test.dart
+++ b/test/global/run/recompiles_if_snapshot_is_out_of_date_test.dart
@@ -48,7 +48,6 @@
     // all output we see the precompilation messages as well.
     expect(pub.stdout, emits('Resolving dependencies...'));
     expect(pub.stdout, emits('Downloading packages...'));
-    expect(pub.stdout, emits(startsWith('No dependencies would change in ')));
     expect(pub.stdout, emits('Building package executable...'));
     expect(pub.stdout, emitsThrough('ok'));
     await pub.shouldExit();
@@ -71,102 +70,6 @@
       'foo',
       '1.0.0',
       deps: {
-        'bar': 'any',
-      },
-      contents: [
-        d.dir('bin', [
-          d.file('foo.dart', 'import "package:bar/bar.dart"; main() => bar();'),
-        ]),
-      ],
-    );
-
-    server.serve(
-      'bar',
-      '1.0.0',
-      contents: [
-        d.dir('lib', [
-          d.file('bar.dart', 'bar() => print("original");'),
-        ]),
-      ],
-    );
-
-    await runPub(
-      args: ['global', 'activate', 'foo'],
-    );
-
-    await runPub(
-      args: ['global', 'run', 'foo'],
-      output: 'original',
-    );
-
-    server.serve(
-      'bar',
-      '1.0.0',
-      contents: [
-        d.dir('lib', [
-          d.file('foo.dart', 'foo() => print("updated");'),
-        ]),
-      ],
-    );
-
-    await runPub(
-      args: ['global', 'run', 'foo'],
-      environment: {
-        'DART_ROOT': p.join(d.sandbox, 'dart'),
-        // Updated sdk version makes the old snapshot obsolete
-        '_PUB_TEST_SDK_VERSION': '3.2.1+4',
-      },
-      output: contains('~ bar 1.0.0 (was 1.0.0)'),
-      error: allOf(
-        contains(
-          'The current activation of `foo` cannot resolve to the same set of '
-          'dependencies.',
-        ),
-        contains(
-          "The existing content-hash from pubspec.lock doesn't match "
-          'contents for:',
-        ),
-        contains('Try reactivating the package'),
-      ),
-      exitCode: DATA,
-    );
-
-    await d.dir('dart', [
-      d.dir('packages', [
-        d.dir('bar', [
-          // Doesn't fulfill constraint, but doesn't satisfy pubspec.lock.
-          d.libPubspec('bar', '2.0.0', deps: {}),
-        ]),
-      ]),
-    ]).create();
-    await runPub(
-      args: ['global', 'run', 'foo'],
-      environment: {
-        'DART_ROOT': p.join(d.sandbox, 'dart'),
-        '_PUB_TEST_SDK_VERSION': '3.2.1+4',
-      },
-      error: allOf(
-        contains(
-          'The existing content-hash from pubspec.lock doesn\'t match '
-          'contents for:',
-        ),
-        contains(
-          'The current activation of `foo` cannot resolve to the same '
-          'set of dependencies.',
-        ),
-        contains('Try reactivating the package'),
-      ),
-      exitCode: DATA,
-    );
-  });
-
-  test('validate resolution before recompilation - updated sdk package',
-      () async {
-    final server = await servePackages();
-    server.serve(
-      'foo',
-      '1.0.0',
-      deps: {
         'bar': {'sdk': 'dart', 'version': '^1.0.0'},
       },
       contents: [
@@ -217,12 +120,9 @@
         'DART_ROOT': p.join(d.sandbox, 'dart'),
         '_PUB_TEST_SDK_VERSION': '3.2.1+4',
       },
-      output: contains('> bar 1.2.0 from sdk dart (was 1.0.0 from sdk dart)'),
       error: allOf(
-        contains(
-          'The current activation of `foo` is not compatible with your '
-          'current SDK.',
-        ),
+        contains('The package `foo` as currently activated cannot resolve to '
+            'the same packages'),
         contains('Try reactivating the package'),
       ),
       exitCode: DATA,
diff --git a/test/help_test.dart b/test/help_test.dart
index 3e0a0f3..3f27ff4 100644
--- a/test/help_test.dart
+++ b/test/help_test.dart
@@ -10,7 +10,8 @@
 /// Extract all commands and subcommands.
 ///
 /// Result will be an iterable of lists, illustrated as follows:
-/// ```
+///
+/// ```none
 /// [
 ///   [pub]
 ///   [pub, get]