This is the top-level engineering handoff for the repository as of 2026-04-21.
Read this first before resuming product, release, or cleanup work. Use it as the entry point into the more detailed documents linked below.
- The product is a native desktop application built on a
Qt/QMLshell and a separateRustengine. - The legacy Electron/Next.js runtime was retired in
v2.1.0. There is no browser-served or Electron-served path left in the repository. - Native packaging, installer, update-repository, and release automation lanes exist, produce signed/unsigned operator-ready artifacts, and are driven from tagged releases.
- Native operator parity is engineering-complete. Acceptance is layered: deterministic offscreen
2560x1440captures, real-GPU onscreen spot captures, and the install-time first-launch smoke test shipped in the QtIFW installer. - Both native verification lanes (macOS and Windows) are blocking on
main. - A one-way legacy-import path (
native/rust-engine/src/legacy_import.rs) remains so that operators migrating from a pre-v2.0.0Electron installation can bring their olddb.jsonforward on first native launch. This is the only legacy code that is intentionally retained.
Read these in order:
README.mddocs/HANDOFF.mddocs/RELEASE.mddocs/HARDWARE_PROFILE.mddocs/ARCHITECTURE.md
Use these for deeper context only after the above are clear:
docs/PRODUCTIZATION_PLAN.mdnative/README.mdnative/qt-shell/README.mddocs/archive/DESKTOP_ARCHITECTURE_PLAN.md(historical; frozen atv2.1.0)docs/archive/NATIVE_PARITY_HANDOFF.md(historical; frozen atv2.1.0)
Do not reopen these casually:
- product name:
SSE ExEd Studio Control - primary deployment profile: one fixed studio workstation
- packaging: Qt Installer Framework offline installers
- update channel: maintenance-tool update repositories
- supported primary hardware assumptions in
docs/HARDWARE_PROFILE.md - engine-owned persistence, safety rules, and device logic
- the native runtime is the only product runtime; do not reintroduce an Electron or Next.js path
The highest-value unresolved work is:
- Keep CI and native verification lanes diagnosable.
Both macOS and Windows native lanes are blocking on
main. If either goes red, diagnose via the per-runnative/build/Testing/Temporary/andqt-shell/qmltest-results.{tap,xml}artifacts that the lanes upload on every run. - Keep the backlog actionable. Do not let real execution work live only in prose documents; open execution issues or milestone items before starting the next major slice.
The current GitHub execution queue is:
- release-artwork polish and public-distribution signing posture remain tracked in
docs/PRODUCTIZATION_PLAN.md§3 rather than as separate execution items
Before trusting any substantial change, run the smallest command set that matches the risk.
Common baseline:
npm install
npm run format:check
npm run release:checkNative baseline:
npm run native:check
npm run native:test
npm run native:build
npm run native:shell:test
npm run native:smoke
npm run native:acceptanceFull release verification (before tagging):
npm run release:verify- Prefer one authoritative doc for current truth and link to detail docs instead of duplicating status prose everywhere.
- Do not check in workstation-specific absolute paths.
- Keep generated artifacts, transient captures, and local-only clutter out of version control.
- If CI is red, either fix it or document precisely why the lane is intentionally non-blocking.
The repository previously carried a full Electron/Next.js runtime alongside the native shell as a parity oracle. That runtime, its tests, and its CI/CD lanes were removed in v2.1.0. See docs/archive/NATIVE_PARITY_HANDOFF.md for the frozen parity appendix that drove the recovery program, and the v2.0.1 → v2.1.0 changelog entries for the removal scope.