checkDevSession function
Future<DevSessionCheck>
checkDevSession({
- required String projectPath,
- String? targetFile,
- List<
String> dartDefinePairs = const [], - String? dartDefineFromFile,
- String requestedBuildMode = 'debug',
- RunManifestRepository manifestRepository = const FileRunManifestRepository(),
- FlutterSdkProbe sdkProbe = const HostFlutterSdkProbe(),
- Future<
String?> discoverApk(- String projectPath
oka dev preflight (ADR-0011 H1): validate the newest built APK's
session manifest against the requested session and resolve the flutter
binary from the recorded SDK path (never ambient PATH).
Refusals (never warn-and-continue):
- no APK / no manifest → rebuild instructions;
- flag mismatch (target / defines / build mode / app id) → oka-branded error naming every differing field + the fix;
- engine revision drift (SDK upgraded under the recorded path since the build) → rebuild instructions;
- recorded SDK path no longer holds a flutter binary.
Implementation
Future<DevSessionCheck> checkDevSession({
required String projectPath,
String? targetFile,
List<String> dartDefinePairs = const [],
String? dartDefineFromFile,
String requestedBuildMode = 'debug',
RunManifestRepository manifestRepository =
const FileRunManifestRepository(),
FlutterSdkProbe sdkProbe = const HostFlutterSdkProbe(),
Future<String?> Function(String projectPath)? discoverApk,
}) => DevSessionPreflight(
manifestRepository: manifestRepository,
sdkProbe: sdkProbe,
discoverApk: discoverApk ?? findNewestBuiltApk,
).run(
projectPath: projectPath,
targetFile: targetFile,
dartDefinePairs: dartDefinePairs,
dartDefineFromFile: dartDefineFromFile,
requestedBuildMode: requestedBuildMode,
);