Shared interface design
Altium Environment Interfaces
Discovery models for local Altium Designer installs and ProgramData profile extension state.
AltiumInstall
Rationale
Launcher and diagnostic commands need stable install metadata without depending on machine-local registry shape.
Purpose
Represents one discovered Altium Designer installation with name, label, major version, root path, X2.exe path, runtime target framework, registry version, unique id, and discovery source.
Test Requirements
Environment tests must create fake AD25 and AD26 roots, verify deterministic latest-first sorting, and verify version selection by AD major.
Working Definition
Working when installs, launch, and the ad alias can select the intended executable from filesystem, environment, registry, or explicit path inputs.
AltiumProfile
Rationale
Installer and cleanup workflows need a reviewable profile model before modifying ProgramData extension folders.
Purpose
Represents one Altium ProgramData profile folder, selected extension module paths, registry state, registered version, DLL presence, and last write time.
Test Requirements
Environment tests must build a temporary profile tree, verify list state, verify dry-run cleanup, and verify real cleanup removes only the selected module directory and registry item.
Working Definition
Working when profiles list can explain extension state per profile and profiles clean can safely target one profile or all profiles without touching paths outside the selected profile Extensions root.