refactor: resolve launcher paths and isolate batch automation

This commit is contained in:
codex
2026-08-04 11:48:30 +03:00
parent ea6f3cdcdf
commit e13f44ac3c
11 changed files with 404 additions and 44 deletions
+25
View File
@@ -0,0 +1,25 @@
# Launcher path resolution
`PathResolver` is the only resolver for launcher path variables. Configuration
is layered in this order: `launcher.session.json`, `launcher.machine.json`,
then `launcher.defaults.json`; built-in defaults are non-path safety defaults.
Corporate and local locations are variables, not source-code paths. The
supported variable names are: `CorporateDfsRoot`, `CorporateLauncherRoot`,
`CorporateCatalogRoot`, `CorporatePackagesRoot`, `CorporateProfilesRoot`,
`CorporatePalettesRoot`, `CorporateFontsRoot`, `CorporateTemplatesRoot`,
`CorporateScriptsRoot`, `ProjectName`, `DisciplineName`, `ProjectRoot`,
`DisciplineRoot`, `PlantProjectFile`, `ProjectRosterPath`,
`ProjectApplicationsRoot`, `ProjectPaletteOverlayRoot`, `LocalLauncherRoot`,
`LocalPackageCache`, `LocalActiveRoot`, `LocalSessionRoot`,
`LocalEvidenceRoot`, `LocalLogsRoot`, `LocalRollbackRoot`, `AcadExecutable`,
`PRecEntryAssembly`, `FixtureOrthoDwg`, `AutomationScriptPath`,
`AutomationConfigPath`, `AutomationEvidencePath`, and `AutomationPermitPath`.
Undefined corporate locations remain `null` / `NOT VERIFIED`; the resolver does
not invent a DFS hierarchy. The legacy `A:` drive is accepted only as input and
is canonicalized through configured `CorporateDfsRoot`; it is never emitted.
`Production` launch arguments are `/product PLNT3D /language ru-RU` only.
`NextPilotPreview`, `NextPilotApply`, and `LifecycleProbe` require a resolved
script beneath the local session root and add exactly one `/b` argument.
+1 -1
View File
@@ -2,6 +2,6 @@
The controlled pilot flow is: CLI `pilot run` → local `pilot.local.json` → manifest generation and SHA-256 validation → `PrepareAsync` → one-time in-memory permit → `ExecuteAsync` → staging → version activation → startup SCR → guarded `Process.Start` → wait for the specific AutoCAD PID → `RollbackAsync`.
The pilot uses only `C:\AutoCAD User Support\LauncherNextPilot`. It does not modify the legacy launcher, AutoCAD profiles, registry, trusted paths, or the legacy Applications directory.
The pilot uses only `${LocalLauncherRoot}` resolved from local configuration. It does not modify the legacy launcher, AutoCAD profiles, registry, trusted paths, or the legacy Applications directory.
The runtime command is `acad.exe /product PLNT3D /language ru-RU /b <startup-script>`; no profile argument is supplied. The SCR invokes exactly one `NETLOAD`, for the local versioned entry assembly only.
+5 -1
View File
@@ -1,6 +1,10 @@
# Pilot local configuration
Local file: `C:\AutoCAD User Support\LauncherNextPilot\config\pilot.local.json`. It is never auto-created or tracked. Unknown/corrupt configuration blocks pilot mode.
Configuration files are `${LocalLauncherRoot}\config\launcher.defaults.json`,
`launcher.machine.json`, and `launcher.session.json`. They are never
auto-created or tracked. Unknown/corrupt configuration blocks pilot mode;
session values take precedence over machine values, which take precedence over
corporate defaults.
```json
{"schemaVersion":1,"launcherMode":"NextPilot","pilotEnabled":true,"allowProcessStart":false,"requireExplicitExecute":true,"pluginExecutionMode":"Smoke","pilotRoot":"C:\\AutoCAD User Support\\LauncherNextPilot","selectedProductId":null,"selectedProfileName":null,"executionPermitLifetimeSeconds":300}