diff --git a/architecture/autodesk-launcher/README.md b/architecture/autodesk-launcher/README.md index d2020a1..4eab522 100644 --- a/architecture/autodesk-launcher/README.md +++ b/architecture/autodesk-launcher/README.md @@ -4,4 +4,4 @@ This section is the single architecture record for the corporate Autodesk launch The AS-IS flow is a locally synchronized legacy deployment with generated AutoLISP loading. Launcher Next is a .NET 8, one-visible-EXE design that stages signed-by-hash local packages and loads one managed entry assembly. It is a design/foundation only: production configuration, AutoCAD profiles, trusted paths, network roots and deploys were not changed. -See [AS-IS](as-is/system-context.md), [target](target/architecture.md), [ADRs](adr/ADR-001-parallel-rewrite.md), and [evidence map](evidence-map.csv). +See [AS-IS](as-is/system-context.md), [target](target/architecture.md), [legacy compatibility and pilot](target/legacy-compatibility.md), [ADRs](adr/ADR-001-parallel-rewrite.md), and [evidence map](evidence-map.csv). diff --git a/architecture/autodesk-launcher/as-is/performance-profile.md b/architecture/autodesk-launcher/as-is/performance-profile.md index d86893f..e919035 100644 --- a/architecture/autodesk-launcher/as-is/performance-profile.md +++ b/architecture/autodesk-launcher/as-is/performance-profile.md @@ -1,3 +1,27 @@ # AS-IS performance profile -The startup path performs network-dependent synchronization when installer/update is used, writes generated LISP files, starts a batch and may load 20 assemblies sequentially. No timings were collected; claims about latency, parallelism, cache hit rate, or behavior under unavailable network are `UNKNOWN`. Launcher Next must measure these rather than infer them. +The startup path performs network-dependent synchronization when installer/update is used, writes generated LISP files, starts a batch and may load 20 assemblies sequentially. No timings were collected; claims about latency, parallelism, cache hit rate, or behavior under unavailable network are `UNKNOWN`. + +| Source-level observation | Evidence | Performance implication | Confidence | +|---|---|---|---| +| Installer recursively copies selected catalogs and can delete files/directories | `All_Serv_Install/Form1.cs` copy path | filesystem and potentially network traversal; UI blocking behavior requires measurement | CONFIRMED | +| Updater computes MD5/control sums and replaces local files | `All_Serv_InstallUpdater/Form1.cs` | repeat hash/read/copy work; no measured count or time | CONFIRMED | +| Bootstrap emits one generated loader command per selected installed catalog | `P_Serv_Starter/Program.cs` | sequential startup work grows with selected modules | CONFIRMED | +| OrthoLoader sequentially `. _netload`s 20 configured modules | legacy loading audit | 20 managed loads before all functionality is ready | CONFIRMED | +| Repeated load on document/workspace events | no complete event evidence | cannot assert | UNKNOWN | + +No measured count is claimed for network requests, full copies, UI waits, `Process.WaitForExit`, `Thread.Sleep`, or repeated document-level loading. Those are measurement subjects, not observed facts. + +## Measurement plan (proposed) + +| Scenario | Start | End | Proposed metrics | +|---|---|---|---| +| Cold start | launcher action | Ribbon ready | elapsed time, files hashed/copied, bytes, NETLOAD count | +| Warm start | launcher action | Ribbon ready | cache hit, network requests, elapsed time | +| Offline start | launcher action with network unavailable | Plant prepared/started | valid cache use, retry count, user status | +| No-update start | catalog read | launch prepared | manifest comparison and file operations | +| Update start | catalog read | activation complete | staging time, hash time, atomic switch time | +| Rollback | rollback request | previous pointer active | elapsed time and success/failure | +| Plugin readiness | Plant process created | Initialize and Ribbon ready | process-start, entry-load, command/Ribbon timestamps | + +Targets are **PROPOSED** until baseline data is collected: one entry NETLOAD, zero network assembly loads, zero in-place replacement of active package files, and no repeated full copy on a valid no-update start. diff --git a/architecture/autodesk-launcher/target/legacy-compatibility.md b/architecture/autodesk-launcher/target/legacy-compatibility.md new file mode 100644 index 0000000..8f43578 --- /dev/null +++ b/architecture/autodesk-launcher/target/legacy-compatibility.md @@ -0,0 +1,36 @@ +# Legacy compatibility and pilot contract + +## Required user-facing behavior + +| Legacy behavior | Preserve in Next | Pilot status | +|---|---|---| +| Product/project selection workflow | preserve after separate UX analysis | not implemented | +| Plant 3D version discovery | preserve through adapter/override | foundation adapter | +| Local corporate plugin availability | preserve through valid local cache | designed/tested locally | +| P_Rec commands and Ribbon | preserve through one managed entry assembly | plugin-owned, not launched here | +| Immediate legacy return | preserve `LauncherMode=Legacy` | designed | +| Other legacy plugins | retain existing chain until individually migrated | required | + +## Can be removed only for migrated P_Rec_Annot + +- OrthoLoader configuration fan-out and twenty sequential `NETLOAD` calls. +- Generated LISP/BAT as the package-loading mechanism, once explicit Next startup is runtime-proven. +- Per-file legacy copy replacing an active module directory. + +They remain necessary for other legacy corporate plugins until those plugins have their own migration and acceptance evidence. + +## Duplicated or avoidable work + +The source shows installer recursive copy/delete, updater hash/copy work, generated LISP generation and twenty sequential module loads. The precise overlap and cost require measurement. Next reduces avoidable work by comparing manifests, reusing a valid local version, staging only a new version and loading one entry assembly. It must not claim that legacy runs these actions on every AutoCAD startup without runtime evidence. + +## P_Rec_Annot pilot + +The pilot is a dry-run contract only: + +```text +discover Plant 3D 2026 -> validate fixture manifest -> local test-source staging +-> activate version pointer -> build one startup NETLOAD script +-> construct ProcessStartInfo -> do not start process +``` + +It uses a fixture manifest with a synthetic SHA-256 and a test-created placeholder file. No real bundle, Plant assembly, package cache or production catalog is included.