[flutter_tools] Implement Diagnostics extension slice and doctor integration (#191162)
## Description This PR implements Step 3 of Flutter Tools Extensibility: the Diagnostics extension slice and doctor integration. ### Architectural Overview 1. **`package:flutter_tools_core`**: - Defines core, platform-agnostic diagnostic models: `ValidationType`, `ValidationMessage`, and `ValidationResult`. 2. **`package:flutter_tools_extension`**: - Defines the `DiagnosticsExtension` interface and service contract (`getTitle()`, `runDiagnostics()`). 3. **`package:flutter_tools_extension_linux_prototype`**: - Implements `LinuxExtensionDiagnostics` validator in the Linux prototype extension. 4. **`packages/flutter_tools`**: - Implements `DiagnosticsExtensionClient` to query isolate extensions over RPC. - Introduces `ExtensionDoctorValidator` which adapts extension diagnostic results into Flutter tool `DoctorValidator` instances. - Wires `ExtensionDoctorValidator` into `Doctor.validators` via `ExtensionManager`. - Deprecates duplicate diagnostic types in `doctor_validator.dart` in favor of `package:flutter_tools_core` exports. ## Related Issues Part of https://github.com/flutter/flutter/issues/190692 ## Tests - Added `packages/flutter_tools/packages/flutter_tools_core/test/diagnostics_test.dart` - Added `packages/flutter_tools/packages/flutter_tools_extension_linux_prototype/test/linux_diagnostics_test.dart` - Added `packages/flutter_tools/test/general.shard/extension_protocol/diagnostics_service_test.dart` - Added `packages/flutter_tools/test/commands.shard/hermetic/tool_extensions_integration_test.dart` - Added `packages/flutter_tools/test/integration.shard/tool_extensions_test.dart` - Updated existing doctor and validator tests in `commands.shard` and `general.shard`.
B
Ben Konyi committed
458c576ff8aefcfdc427d88addbaadb249a2c500
Parent: 47ec0eb
Committed by GitHub <noreply@github.com>
on 8/20/2026, 6:02:59 PM