Issue 1:
Flutter crash report; please file at https://github.com/flutter/flutter/issues.

command

flutter upgrade

exception

The null object does not have a getter 'length'.

NoSuchMethodError: method not found: 'length'

Receiver: null

Arguments: []

dart:core Object.noSuchMethod
package:flutter_tools/src/version.dart 110 _shortGitRevision
package:flutter_tools/src/version.dart 56 FlutterVersion.engineRevisionShort
package:flutter_tools/src/version.dart 64 FlutterVersion.toString
package:flutter_tools/src/commands/upgrade.dart 70 UpgradeCommand.runCommand.<async>
dart:async _SyncCompleter.complete
package:flutter_tools/src/base/process.dart 83 runCommandAndStreamOutput.<async>
===== asynchronous gap ===========================
dart:async _Completer.completeError
package:flutter_tools/src/commands/upgrade.dart 86 UpgradeCommand.runCommand.<async>
dart:async _SyncCompleter.complete
package:flutter_tools/src/base/process.dart 83 runCommandAndStreamOutput.<async>
===== asynchronous gap ===========================
dart:async _asyncThenWrapperHelper
package:flutter_tools/src/commands/upgrade.dart UpgradeCommand.runCommand
package:flutter_tools/src/runner/flutter_command.dart 150 FlutterCommand.verifyThenRunCommand.<async>
dart:async _SyncCompleter.complete
package:flutter_tools/src/cache.dart 184 Cache.updateAll.<async>
===== asynchronous gap ===========================
dart:async _asyncThenWrapperHelper
package:flutter_tools/src/runner/flutter_command.dart FlutterCommand.verifyThenRunCommand
package:flutter_tools/src/runner/flutter_command.dart 117 FlutterCommand.run
package:args/command_runner.dart 177 CommandRunner.runCommand.<fn>
dart:async Future.Future.sync
package:args/command_runner.dart 130 CommandRunner.runCommand
package:flutter_tools/src/runner/flutter_command_runner.dart 186 FlutterCommandRunner.runCommand.<async>
dart:async _SyncCompleter.complete
package:flutter_tools/src/cache.dart 71 Cache.lock.<async>
===== asynchronous gap ===========================
dart:async _asyncThenWrapperHelper
package:flutter_tools/src/runner/flutter_command_runner.dart FlutterCommandRunner.runCommand
package:args/command_runner.dart 104 CommandRunner.run.<fn>
dart:async Future.Future.sync
package:args/command_runner.dart 104 CommandRunner.run
package:flutter_tools/src/runner/flutter_command_runner.dart 132 FlutterCommandRunner.run
package:flutter_tools/executable.dart 97 main.<async>.<fn>.<async>
===== asynchronous gap ===========================
package:stack_trace Chain.capture
package:flutter_tools/executable.dart 91 main.<async>

flutter doctor

encountered exception: The null object does not have a getter 'length'.

NoSuchMethodError: method not found: 'length'
Receiver: null
Arguments: []

#0 Object._noSuchMethod (dart:core-patch/object_patch.dart:44)
#1 Object.noSuchMethod (dart:core-patch/object_patch.dart:47)
#2 _shortGitRevision (package:flutter_tools/src/version.dart:110)
#3 FlutterVersion.engineRevisionShort (package:flutter_tools/src/version.dart:56)
#4 _FlutterValidator.validate.<validate_async_body> (package:flutter_tools/src/doctor.dart:212)
#5 Future.Future.microtask.<anonymous closure> (dart:async/future.dart:144)
#6 StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:206)
#7 StackZoneSpecification.registerCallback.<anonymous closure> (package:stack_trace/src/stack_zone_specification.dart:125)
#8 _rootRun (dart:async/zone.dart:1146)
#9 _CustomZone.run (dart:async/zone.dart:1026)
#10 _CustomZone.runGuarded (dart:async/zone.dart:924)
#11 _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:951)
#12 StackZoneSpecification._run (package:stack_trace/src/stack_zone_specification.dart:206)
#13 StackZoneSpecification.registerCallback.<anonymous closure> (package:stack_trace/src/stack_zone_specification.dart:125)
#14 _rootRun (dart:async/zone.dart:1150)
#15 _CustomZone.run (dart:async/zone.dart:1026)
#16 _CustomZone.runGuarded (dart:async/zone.dart:924)
#17 _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:951)
#18 _microtaskLoop (dart:async/schedule_microtask.dart:41)
#19 _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
#20 _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:96)
#21 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:149)

Issue 2:
The sidebar / navigation menu on https://docs.flutter.io/ starts with two nice, overall categories 'FLUTTER' and 'DART CORE', but then after that lists a whole bunch of smaller categories ('ASYNC', 'BOOLEAN_SELECTOR', etc.). Are those not all part of the larger categories, and thus can be excluded?