* ci: narrow native-host lane selection and reuse build caches Unowned src/ and bridge/ files no longer fall back to the full baseline. They run the Linux suite plus the Linux x64 installed-package/Inspector baseline. New apple and package scopes own the Apple artifact lane, the package matrix and the Windows curated lane, including the test files those lanes invoke. Manual-only verifier entrypoints run static checks and the Linux suite. CHANGELOG, SECURITY, GitHub templates and the native Windows README are documentation-only. Pull requests omit the macOS x64 package host unless labelled ci:full. The Windows and Apple lanes restore the shared Turbo build cache, the Windows lane drops its duplicate typecheck, and the Linux suite uses six shards. Main pushes keep the full baseline. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ci: match package script entrypoints against scope globs Script-only package.json edits resolved their entrypoint with literal equality, so glob-owned verifiers such as scripts/verify/apple/** and scripts/verify/inspector/** fell back to the full baseline instead of selecting their owning lane. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
332 lines
13 KiB
JavaScript
332 lines
13 KiB
JavaScript
// Ownership of the native-host, real-provider and website verification lanes.
|
|
// Shared build inputs are classified once in plan.mjs rather than repeated in
|
|
// every workflow.
|
|
export const SCOPES = {
|
|
// Apple artifact CLI/MCP lane on macOS, including its focused regressions.
|
|
apple: [
|
|
"src/native/Apple*",
|
|
"src/native/NativeMacOS*",
|
|
"src/native/NativeUi*",
|
|
"src/native/Lldb*",
|
|
"bridge/native/**",
|
|
"bridge/process/**",
|
|
"scripts/verify/apple/**",
|
|
"tests/boundary/filesystem/installScript.test.ts",
|
|
"tests/boundary/filesystem/nibNativeHierarchy.test.ts",
|
|
"tests/boundary/filesystem/interfaceBuilderBundle.test.ts",
|
|
"tests/boundary/cli/nativePlistCli.test.ts",
|
|
"tests/boundary/cli/nativePlistPrototypeKeyCli.test.ts",
|
|
"tests/boundary/cli/nativePlistSelectionFailureCli.test.ts",
|
|
"tests/boundary/cli/nativeDemangleCli.test.ts",
|
|
"tests/boundary/mcp/nativeDemangleMcp.test.ts",
|
|
"tests/boundary/providers/native/nativeSignatureTargetBinding.test.ts",
|
|
"tests/boundary/cli/nativeSignatureCli.test.ts",
|
|
"tests/boundary/mcp/nativeSignatureTargetBindingMcp.test.ts",
|
|
"src/process/capture/FilesystemSnapshot.test.ts",
|
|
"tests/boundary/process/darwinProcessRunTokenReader.test.ts",
|
|
"tests/boundary/process/directAnalysisSignals.test.ts",
|
|
"tests/boundary/process/processCaptureLifecycle.test.ts",
|
|
"tests/boundary/process/processCli.test.ts",
|
|
"tests/boundary/mcp/sessionMcp.test.ts",
|
|
],
|
|
// Four-host installed-package matrix and the Windows curated lane.
|
|
package: [
|
|
"src/windows/**",
|
|
"native/windows/**",
|
|
"src/inspector/**",
|
|
"scripts/verify/inspector/**",
|
|
"scripts/verify-package.mjs",
|
|
"scripts/verify-package-*",
|
|
"scripts/verify-windows-*.mjs",
|
|
"scripts/build-windows-native.mjs",
|
|
"scripts/windows-capabilities.mjs",
|
|
"scripts/prepack.mjs",
|
|
"scripts/prepare.mjs",
|
|
"scripts/rea.mjs",
|
|
"install.sh",
|
|
"src/config/**",
|
|
"src/application/Setup*.ts",
|
|
"src/application/Uninstall*.ts",
|
|
"src/cli/interactiveSetup.ts",
|
|
"src/cli/setupCommands.ts",
|
|
"tests/boundary/filesystem/binaryTarget.test.ts",
|
|
"tests/boundary/filesystem/safeOutputTree.test.ts",
|
|
"tests/boundary/providers/native/artifactProvider.archiveSafety.test.ts",
|
|
"tests/boundary/providers/native/artifactProvider.extractionCompleteness.test.ts",
|
|
"tests/boundary/filesystem/setupUnavailableProvider.test.ts",
|
|
"tests/boundary/filesystem/windowsNpxRegistration.test.ts",
|
|
"tests/boundary/filesystem/webScriptManifestPaths.test.ts",
|
|
"tests/boundary/process/ProcessEvidence.host.test.ts",
|
|
"tests/acceptance/webModuleCli.test.ts",
|
|
"tests/acceptance/webSourceLocationCli.test.ts",
|
|
"tests/boundary/cli/referenceSourceImportStatus.test.ts",
|
|
"tests/boundary/filesystem/asarInventoryFreshness.test.ts",
|
|
"tests/boundary/filesystem/javascript-applications/javascriptArtifactReconstruction.test.ts",
|
|
"tests/conformance/providers/ghidra/windowsCapabilities.test.ts",
|
|
"src/ghidra/GhidraInstallation.test.ts",
|
|
"tests/boundary/providers/ghidra/ghidraTransport.test.ts",
|
|
"tests/boundary/providers/ghidra/ghidraTargetSnapshot.test.ts",
|
|
"tests/boundary/providers/ghidra/ghidraLauncher.test.ts",
|
|
"tests/boundary/providers/hopper/hopperClient.cleanupRetry.test.ts",
|
|
"src/windows/WindowsNativeLoader.test.ts",
|
|
"src/windows/WindowsOwnedProcess.test.ts",
|
|
"src/ghidra/GhidraLauncherEnvironment.test.ts",
|
|
"src/process/ProcessOwnership.test.ts",
|
|
"src/process/ProcessOwnership.part2.test.ts",
|
|
"src/process/ProcessOwnership.part3.test.ts",
|
|
"src/process/ProcessOwnership.validation.test.ts",
|
|
"src/application/Update.test.ts",
|
|
"tests/process-global/updateMaintenance.test.ts",
|
|
"tests/conformance/providers/ghidra/realGhidraWindowsWorkflow.test.ts",
|
|
"tests/boundary/filesystem/directoryArtifactReaderOpen.test.ts",
|
|
"tests/boundary/filesystem/javascriptPackagePrecedence.test.ts",
|
|
"tests/boundary/filesystem/javascriptArtifactContentIdentity.test.ts",
|
|
"tests/boundary/process/sourceMapUncHosts.test.ts",
|
|
],
|
|
browser: [
|
|
".github/workflows/real-browser.yml",
|
|
"scripts/verify-real-browser.mjs",
|
|
"scripts/verify-browser-network.mjs",
|
|
"scripts/verify-browser-scripts.mjs",
|
|
"scripts/verify-browser-modules.mjs",
|
|
"scripts/verify-browser-dom-destinations.mjs",
|
|
"scripts/lib/browser-*.mjs",
|
|
"scripts/fixtures/browser-network-site.mjs",
|
|
"scripts/fixtures/browser-script-site.mjs",
|
|
"scripts/fixtures/browser-module-site.mjs",
|
|
"scripts/fixtures/browser-verifier-site.mjs",
|
|
"scripts/fixtures/page-cdp-proxy.mjs",
|
|
"src/browser/**",
|
|
"src/domain/browser*.ts",
|
|
"src/domain/webScript*.ts",
|
|
"src/domain/webModule*.ts",
|
|
"src/application/WebModule*.ts",
|
|
"src/composition/webModules.ts",
|
|
"src/artifacts/readStableArtifact.ts",
|
|
"src/artifacts/ArtifactPaths.ts",
|
|
"src/application/WebScriptExportService.ts",
|
|
"src/contracts/webScriptToolContracts.ts",
|
|
"src/server/registerWebScriptTool.ts",
|
|
"src/server/registerWebModuleTool.ts",
|
|
"src/server/createServer.ts",
|
|
"src/cli/webModuleCommands.ts",
|
|
"src/cli.ts",
|
|
"src/cliCommandNames.ts",
|
|
"src/contracts/toolEffects.ts",
|
|
"src/cli/webScriptCommands.ts",
|
|
],
|
|
binary_layout: [
|
|
".github/workflows/real-binary-layout.yml",
|
|
"bridge/pwntools/**",
|
|
"src/native/pwntools/**",
|
|
"src/domain/native/binaryLayout*",
|
|
"src/application/binaryDiagnostics/**",
|
|
"src/contracts/native/binaryDiagnosticsToolContracts.ts",
|
|
"src/composition/binaryDiagnostics.ts",
|
|
"src/server/registerBinaryDiagnosticsTools.ts",
|
|
"src/server/createServer.ts",
|
|
"src/cli/binaryDiagnosticsCommands.ts",
|
|
"src/cli.ts",
|
|
"src/cliCommandNames.ts",
|
|
"src/contracts/toolContracts.ts",
|
|
"src/contracts/toolEffects.ts",
|
|
"src/process/OwnedCommand.ts",
|
|
"src/process/ProviderProcess.ts",
|
|
"src/process/ProviderDeadline.ts",
|
|
"src/process/ProcessOwnership*.ts",
|
|
"src/process/PrivateRuntimeRoot.ts",
|
|
"src/artifacts/readStableArtifact*.ts",
|
|
"src/artifacts/ArtifactReader.ts",
|
|
"src/domain/analysisError*.ts",
|
|
"scripts/verify-binary-layout.mjs",
|
|
"scripts/lib/elf-section-name-fixtures.mjs",
|
|
"scripts/lib/large-result-mcp.mjs",
|
|
"scripts/fixtures/binary-layout*",
|
|
],
|
|
evm: [
|
|
".github/workflows/real-evm-interface.yml",
|
|
"src/evm/**",
|
|
"src/domain/evm/**",
|
|
"src/application/evm/**",
|
|
"src/contracts/evm/**",
|
|
"src/composition/evm.ts",
|
|
"src/cli/evmCommands.ts",
|
|
"src/server/registerEvmTools.ts",
|
|
"src/server/createServer.ts",
|
|
"src/cli.ts",
|
|
"src/cliCommandNames.ts",
|
|
"src/contracts/toolContracts.ts",
|
|
"src/contracts/toolEffects.ts",
|
|
"src/process/OwnedCommand.ts",
|
|
"src/process/ProviderProcess.ts",
|
|
"src/process/ProcessOwnership*.ts",
|
|
"src/process/ProviderDeadline.ts",
|
|
"src/process/PrivateRuntimeRoot.ts",
|
|
"src/artifacts/readStableArtifact*.ts",
|
|
"src/artifacts/ArtifactReader.ts",
|
|
"scripts/verify-evm-interface.mjs",
|
|
"scripts/fixtures/evm-interface.sol",
|
|
"third_party/evmole/**",
|
|
],
|
|
javascript_recovery: [
|
|
".github/workflows/real-javascript-recovery.yml",
|
|
"src/javascript/recovery/**",
|
|
"src/domain/javascript/**",
|
|
"src/application/javascript/JavaScriptRecovery*.ts",
|
|
"src/composition/javascriptRecovery.ts",
|
|
"src/contracts/javascript/javascriptRecoveryToolContracts.ts",
|
|
"src/cli/javascriptRecoveryCommands.ts",
|
|
"src/cli/javascriptApplicationAnalysis.ts",
|
|
"src/server/registerJavaScriptRecoveryTool.ts",
|
|
"src/server/createServer.ts",
|
|
"src/server/sessionAvailabilityPolicy.ts",
|
|
"src/application/CapabilityInventory.ts",
|
|
"src/cli.ts",
|
|
"src/cliCommandNames.ts",
|
|
"src/contracts/toolContracts.ts",
|
|
"src/contracts/toolEffects.ts",
|
|
"scripts/rea.mjs",
|
|
"src/process/**",
|
|
"src/artifacts/SafeOutputTree.ts",
|
|
"scripts/verify/javascript/recovery.mjs",
|
|
"scripts/fixtures/javascript-recovery/**",
|
|
"third_party/wakaru",
|
|
],
|
|
recorded_crash: [
|
|
".github/workflows/real-recorded-crash.yml",
|
|
"bridge/pwntools/**",
|
|
"bridge/pwndbg/**",
|
|
"src/native/pwntools/**",
|
|
"src/native/pwndbg/**",
|
|
"src/domain/native/recordedCrash*",
|
|
"src/application/binaryDiagnostics/**",
|
|
"src/contracts/native/binaryDiagnosticsToolContracts.ts",
|
|
"src/contracts/toolEffects.ts",
|
|
"src/contracts/toolOutputSchemaGroups.ts",
|
|
"src/composition/binaryDiagnostics.ts",
|
|
"src/server/registerRecordedCrashTools.ts",
|
|
"src/server/createServer.ts",
|
|
"src/server/sessionAvailabilityPolicy.ts",
|
|
"src/cli/binaryDiagnosticsCommands.ts",
|
|
"src/cliCommandNames.ts",
|
|
"src/process/**",
|
|
"src/artifacts/readStableArtifact*.ts",
|
|
"src/domain/analysisError*.ts",
|
|
"scripts/verify-recorded-crash.mjs",
|
|
"scripts/verify/recorded-crash/**",
|
|
"scripts/lib/recorded-core-fixtures.py",
|
|
"scripts/fixtures/recorded-crash.c",
|
|
"third_party/pwndbg/**",
|
|
],
|
|
web_network: [
|
|
".github/workflows/real-web-network-captures.yml",
|
|
"bridge/mitmproxy/**",
|
|
"src/browser/history/**",
|
|
"src/domain/webNetworkCapture*.ts",
|
|
"src/domain/analysisError*.ts",
|
|
"src/contracts/errorSchemas.ts",
|
|
"src/domain/explicitSensitive*.ts",
|
|
"src/application/WebNetworkCapture*",
|
|
"src/composition/webNetworkCaptures.ts",
|
|
"src/cli/webNetworkCaptureCommands.ts",
|
|
"src/server/registerWebNetworkCaptureTool.ts",
|
|
"src/server/createServer.ts",
|
|
"src/server/toolRegistrationOptions.ts",
|
|
"src/cli.ts",
|
|
"src/cliCommandNames.ts",
|
|
"src/contracts/toolContracts.ts",
|
|
"src/contracts/toolEffects.ts",
|
|
"src/process/OwnedCommand.ts",
|
|
"src/process/ProviderProcess.ts",
|
|
"src/process/ProviderDeadline.ts",
|
|
"src/process/ProcessOwnership*.ts",
|
|
"src/process/PrivateRuntimeRoot.ts",
|
|
"src/process/capture/ProcessCaptureLifecycle.ts",
|
|
"src/artifacts/readStableArtifact*.ts",
|
|
"src/artifacts/ArtifactReader.ts",
|
|
"src/contracts/webNetworkCaptureToolContracts.ts",
|
|
"scripts/verify-web-network-captures.mjs",
|
|
"scripts/fixtures/generate-mitmproxy-capture.py",
|
|
],
|
|
web_runtime: [
|
|
".github/workflows/real-web-runtime.yml",
|
|
"scripts/verify-browser-runtime.mjs",
|
|
"scripts/lib/browser-runtime-*.mjs",
|
|
"src/process/ProviderProcess.ts",
|
|
"src/process/ProcessOwnership*.ts",
|
|
"scripts/fixtures/browser-runtime-site.mjs",
|
|
"src/browser/execution/**",
|
|
"src/browser/CdpConnection.ts",
|
|
"src/browser/CdpEndpoint.ts",
|
|
"src/browser/CdpTarget*.ts",
|
|
"src/browser/CdpCaptureValues.ts",
|
|
"src/browser/CdpAuthorized*.ts",
|
|
"src/domain/webRuntime.ts",
|
|
"src/domain/webExecution.ts",
|
|
"src/domain/webEventListeners.ts",
|
|
"src/domain/browserObservationError*.ts",
|
|
"src/application/WebRuntime*.ts",
|
|
"src/composition/webRuntime.ts",
|
|
"src/contracts/webRuntimeToolContracts.ts",
|
|
"src/contracts/toolEffects.ts",
|
|
"src/server/registerWebRuntimeTools.ts",
|
|
"src/server/createServer.ts",
|
|
"src/cli/webRuntimeCommands.ts",
|
|
"src/cli/commandCancellation.ts",
|
|
"src/cli.ts",
|
|
],
|
|
web_source_map: [
|
|
".github/workflows/real-web-source-map.yml",
|
|
"scripts/verify-browser-source-maps.mjs",
|
|
"scripts/lib/browser-source-map-e2e.mjs",
|
|
"scripts/fixtures/browser-source-map-site.mjs",
|
|
"src/javascript/sourceMaps/**",
|
|
"src/browser/assets/**",
|
|
"src/domain/webSource*.ts",
|
|
"src/domain/webScript*.ts",
|
|
"src/application/WebSourceLocation*.ts",
|
|
"src/application/ValidateSelectedWebScript.ts",
|
|
"src/composition/webSourceLocations.ts",
|
|
"src/server/registerWebSourceLocationTool.ts",
|
|
"src/server/createServer.ts",
|
|
"src/contracts/webScriptToolContracts.ts",
|
|
"src/process/**",
|
|
"src/cli/webSourceLocationCommands.ts",
|
|
"src/cli.ts",
|
|
"src/artifacts/readStableArtifact.ts",
|
|
],
|
|
nativeaot: [
|
|
"bridge/nativeaot/**",
|
|
"scripts/generate-nativeaot-fixtures.mjs",
|
|
"tests/fixtures/nativeaot/**",
|
|
".github/workflows/nativeaot-fixtures.yml",
|
|
],
|
|
website: [
|
|
"website/**",
|
|
"scripts/*website*.py",
|
|
"README*.md",
|
|
".github/workflows/website-check.yml",
|
|
".github/workflows/website-pages.yml",
|
|
],
|
|
};
|
|
|
|
// Verifier entrypoints that only manual, licensed, or self-hosted workflows
|
|
// run. No selected CI lane executes them, so their edits need only the static
|
|
// checks and the source-test suite. Shared helpers under scripts/lib remain
|
|
// broad inputs.
|
|
export const MANUAL_VERIFIERS = [
|
|
"scripts/verify-real-electron.mjs",
|
|
"scripts/verify-real-ghidra*.mjs",
|
|
"scripts/verify-real-hopper*.mjs",
|
|
"scripts/verify-real-ida.mjs",
|
|
"scripts/verify-*-client.mjs",
|
|
"scripts/verify-native-agent-client.mjs",
|
|
"scripts/verify-jeb.mjs",
|
|
"scripts/verify-apktool.mjs",
|
|
"scripts/verify-adb.mjs",
|
|
"scripts/verify-agent-experience.mjs",
|
|
"scripts/verify-packaged-ghidra-windows.mjs",
|
|
"scripts/verify-wasm-artifact.mjs",
|
|
"scripts/verify-packaged-wasm-artifact.mjs",
|
|
];
|