Later phase, following task 203's read-only preflight, corrected broker readiness (206), appropriate aircraft catalogue/mapping qualification and usable readiness contracts for the selected components. Use msfs_da62 and xp12_phenom300 profile metadata to start or reuse selected components in dependency order, observe real readiness and stop only processes owned by the session. Preserve current pre-MSFS FreeTrack requirements and embedded Sim Agent; prevent duplicate brokers and Sim Agent instances. Do not enable new automatic RadioBridge, WingRally or Instructor starts while their required readiness evidence is missing. Coordinate their contracts with component owners; keep all radio/audio/device logic in RadioBridge. Acceptance: supported profiles progress through explicit waiting/ready/failure states; required failures block false-ready; optional failures identify degraded functions; unqualified XP12/Phenom remains blocked. Combine with mobile control task 204 and flight preparation task 205 without treating a read-only preflight as completed orchestration. Live acceptance remains task 212. WingRally target selection and eligibility Knowledge items 113, 118 and 119 define the source/deployment limits and handoff boundary. Keep one chosen simulator profile authoritative across components, especially with two running sims. Dispatch only when the selected target and route source are supported by installed versions. SimBrief remains optional in the target design; current XP original-.fms gating must be removed for qualified native routes once that exporter exists. Do not collapse transfer acknowledgement, avionics activation and cockpit-ready into one success flag.
02 - Cockpit Manager / Session Launcher
Evolve the existing launcher into the central session controller with mobile/tablet access, simulator profiles, embedded Sim Agent and FreeTrack coordination.
Depends on session profiles and the flight-loading contract. Provide manual airport plus runway/ramp selection and the supported WingRally waiting/loading path. Inspect available departure data and simulator APIs; do not invent support for airport/parking lists. Load the aircraft/location/route, wait for readiness, then apply and verify an aircraft-specific cold-and-dark procedure. Acceptance: implement and exercise DA62/MSFS and Phenom/XP12 separately; reconcile temporary cockpit power, pop-outs and physical switch states so they do not silently undo preparation; report incomplete preparation honestly. The user requested cold and dark. An optional ready-for-departure runway mode remains a proposal. New incoming routes must not reset active flights without an intentional new-session action. WingRally completion contract Use knowledge item 119. Track transfer acknowledgement, actual avionics route activation and complete cockpit preparation separately. A bridge acknowledgement cannot establish a valid active route, correct parking/runway position or cold-and-dark state. Expose unknown/manual-verification requirements where the selected avionics cannot be observed. Accept WingRally-native routes and optional SimBrief imports according to implemented capabilities; never impose SimBrief on all target XP12 sessions. The current imported-.fms restriction is temporary for the present XP bridge path. Scope simulator target explicitly and preserve active-flight protection.
Build a responsive local-network interface backed by the manager on the simulator PC, using the existing code architecture where appropriate. Support profile selection, selected optional tools, start/stop, preparation progress, component status and useful logs. Allow the user to switch to WingRally on the same phone while preparation continues. Acceptance: usable on the Samsung tablet and phone; closing/reopening the browser preserves session state; repeated clicks do not start duplicate sessions; process-running and cockpit-ready states are distinct. Assume the PC is already on. Framework choice follows code investigation.
First implementation step after checkpointing the relevant working trees. Use the existing .NET 8 Session Launcher; no broad rewrite. Read static audit knowledge item 117. Implement configuration-driven profiles msfs_da62 and xp12_phenom300. Per component include required/optional, configured host, start command, readiness method and dependencies. In this phase start commands are metadata only: the new preflight layer must not launch, stop or relocate processes. Expose separate evidence for supported/unsupported/unqualified, running, reachable, simulator connected, functionally ready and unknown. A running process or reachable endpoint does not prove readiness. Read existing Launcher/Sim Agent health and broker session status with their documented limitations; missing bridge contracts remain unknown. For XP12, report/reject a broker not on the simulator PC. Block the integrated XP12/Phenom profile with a clear explanation until the Phenom catalogue/mappings are proven. Do not silently move a broker or launch a duplicate. Acceptance: both profile definitions load; preflight gives actionable reasons; broker catalogue-ready cannot become cockpit-ready; identical connected/total counters cannot prove all expected nodes are present. Missing health contracts and unqualified adapters remain visible. Preserve the current working startup workflow. Add no new automatic RadioBridge, WingRally or Instructor starts. Clarify the active FreeTrack/vJoy path from code/configuration, including whether vJoy is legacy, optional or actively required; record evidence rather than assuming a dependency. Automatic lifecycle orchestration follows in a separate task after readiness contracts and profile qualification. WingRally capability refinement (knowledge items 113, 118, 119) Expose route-source eligibility for the installed bridge/plugin and selected simulator. Current XP handoff requires an imported SimBrief briefing's original .fms; native WingRally export is planned so SimBrief must not become a permanent requirement. WingRally source 0.4 capability is not proof of the last inspected deployed 0.3 runtime. Enforce one explicit simulator target without silently following conflicting autodetection, including when two sims are running. This phase still only observes and rejects, not dispatches or starts processes.
Build Log
1 entryImplemented read-only session profiles and preflight
Implemented task 203 in Broker/Launcher commit 3b70d2a and updated the shared contract in cockpit orchestration commit 5c16568. Launcher 0.0.1.18 now loads msfs_da62 and xp12_phenom300 profiles, renders separate readiness evidence, rejects incompatible XP broker placement/simulator attachment, keeps XP12/Phenom blocked while unqualified, and preserves the existing MSFS startup path. Optional component start commands remain metadata only. Confirmed FreeTrack is active and vJoy is diagnostic fallback. Debug build passed with 0 warnings/errors and preflight contract tests passed. Nothing was published or activated on the simulator PC.
Knowledge
2 itemsImplemented in Broker/Launcher commit 3b70d2a; shared contract update is cockpit orchestration commit 5c16568. Launcher 0.0.1.18 loads configuration-driven msfs_da62 and xp12_phenom300 profiles. Each profile records its explicit simulator target and aircraft plus required/optional components, configured host, start-command metadata, readiness method, dependencies and route-source qualification. Behavior: - Profile selection and preflight are read-only. They do not launch, stop, relocate or dispatch to optional processes. - The existing MSFS/DA62 Start session workflow remains the only executable workflow. - Evidence is reported separately for support qualification, running, reachability, simulator connection and functional readiness. Unknown never becomes ready. - Broker runtime ready remains catalogue readiness only. Equal nodes.connected/nodes.total does not prove expected inventory or synchronization; preflight waits for explicit expected/synchronized evidence. - XP12 requires the active broker endpoint on the configured simulator-PC host and rejects attachment to a conflicting simulator. It never moves or duplicates the broker. - XP12/Phenom remains blocked until its catalogue and mappings are proven. - RadioBridge, Ollama, AI-ATC, WingRally and Instructor start commands remain metadata; missing manager-consumable readiness/version contracts remain visible as unknown. - WingRally native XP routes remain unsupported. Imported SimBrief .fms remains unqualified until Bridge 0.4, the XP plugin and X-Plane 12.1+ are observed. - Active MSFS camera flow is semantic view.yaw/view.pitch through the embedded Agent's FreeTrack/TrackIR shared-memory endpoint. Separate msfs.vjoy keys are diagnostic legacy fallback only; vJoy is not a normal runtime dependency. Validation: - Windows-targeted Launcher Debug build: 0 warnings, 0 errors. - Dependency-free preflight contract tests pass: both profiles load; catalogue-ready and 8/8 current node counters do not yield cockpit-ready; XP remote-broker and wrong-simulator cases block; bridge readiness remains unknown; XP route qualifications remain conservative. No publish, simulator-PC activation or live simulator acceptance was performed.
Reported current implementation The MSFS-oriented launcher finds an existing broker on the simulator PC or an alternate broker host, starting one locally if neither is running. It embeds Sim Agent on port 8097, powers on tablets, launches MSFS 2024, waits for SimConnect, loads a saved flight, handles Ready-to-Fly/cockpit entry and temporary cockpit power, coordinates POPM and four pop-outs, synchronizes nodes and provides FreeTrack output for the viewing joystick. It must start before MSFS for the current FreeTrack/TrackIR viewing integration. Do not separately start standalone Sim Agent: its port conflicts with the embedded instance. Target user flow 1. On tablet/phone, select DA62/MSFS or Phenom/X-Plane. 2. Start the session and the tools selected by that profile. 3. Wait for a WingRally flight or select an airport and available runway/ramp. 4. Load the aircraft, departure location and supported route data; wait for actual flight/aircraft readiness. 5. Apply the aircraft-specific cold-and-dark state after loading. 6. Finish and verify cockpit screens, camera and physical-node synchronization; show Ready only when required checks pass. Implementation proposal Run the manager on the simulator PC and expose a local-network responsive web interface. Session execution survives closing the browser. No framework choice has been made. Distinguish process running, simulator connected, flight loaded and cockpit ready. Show waiting and failure reasons. An explicit simulator profile controls a cold start; auto-detection can help attach to an existing simulator. Open details Default user request is cold and dark, including completion after route load. A separate ready-for-departure runway option was suggested but is not a confirmed requirement. Determine loading and cockpit-power order per simulator/aircraft, including interaction with physical switch states. Do not claim universal cold-and-dark support before verification. Operational proposals Track which processes were started by the manager. Do not stop an externally started simulator/broker without an explicit user action. Avoid duplicate instances, bound recovery attempts, and require an intentional new-session action before a new route resets an active flight. Static audit clarification (knowledge item 117) Launcher .NET 8 version 0.0.1.17 is a suitable base; no broad rewrite is needed. It currently has only the MSFS workflow. Embedded Sim Agent exposes /v1/health on port 8097; standalone version 0.0.1.14 must not run alongside it. Tablet Agent is Android 0.2.11 build 14 with discovery/commands on 8095. First implement read-only configuration-driven preflight for msfs_da62 and xp12_phenom300: required/optional components, host, start command, readiness method and dependencies. Report running, reachable, simulator connection, functional readiness, unsupported and unknown separately. Start commands are metadata only in this phase. XP12 local-broker enforcement initially means reporting/rejecting an incompatible location, not stopping or moving processes. Block the integrated XP12/Phenom profile while catalogue/mappings are unverified. Do not add automatic RadioBridge, WingRally or Instructor startup before useful readiness contracts are available. The earlier FreeTrack-only/no-vJoy-required statement and the audit's vJoy/head-tracking description must be reconciled by inspecting active configuration/code; do not infer that vJoy must be installed or started. The audit did not run or rebuild the simulator stack.