Revert onboarding to two windows; bump CLI to v0.11.0-alpha.2 - #11
Merged
Merged
Conversation
The EGL_BAD_PARAMETER crash that motivated the earlier move to a single-window onboarding screen was never actually caused by window count — it was CI building the Linux AppImage on bare ubuntu-24.04 instead of a container matching this repo's own Fedora dev toolbox, already fixed separately in release.yml. With the real cause confirmed, restore the original two-window design (isolated "onboarding" window + "main" dashboard) for its real capability-isolation boundary, and bring it closer to the sibling repo's own setup flow. On top of the restored two-window baseline: add a URL-origin check alongside the existing window-label check, and surface CLI contract 3's new substage/status/"permission"-state runtime ensure fields (truthful "Waiting for approval" copy instead of a synthesized percentage) plus 4 new error codes. Bump the bundled CLI sidecar to v0.11.0-alpha.2 (jsonContract 2 -> 3), vendor-manifest.json regenerated and verified against the release's own published checksums. Port tests/host-adapter.test.mjs (runs host-adapter.js in Node's vm module against a fake Tauri bridge) and tests/setup-ux-principles.md from the sibling. Porting the adapter test caught a real bug: a rejected automatic bootstrap() call had no error reporting at all, fixed in host-adapter.js. tests/policy.test.mjs reworked back to two-window isolation assertions plus the new coverage.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
original two-window design (isolated
"onboarding"window +"main"dashboard). The EGL_BAD_PARAMETER crash that originally motivated going
single-window was never actually about window count — root-caused to CI
building the Linux AppImage on bare
ubuntu-24.04instead of a containermatching this repo's own Fedora dev toolbox (already fixed separately in
release.yml). With that confirmed, two windows are safe again andrestore the real capability-isolation boundary a single window can't
provide — see
AGENT.md's "EGL_BAD_PARAMETER AppImage crash" section andthe plan doc's "Re-reversal" entry for the full history.
repo's multi-instance model: a URL-origin check alongside the existing
window-label check, CLI contract 3's new
substage/status/"permission"-stateruntime ensurefields (truthful "Waiting forapproval" copy instead of a synthesized percentage, per the newly ported
tests/setup-ux-principles.md), and 4 new CLI error codes.v0.10.0tov0.11.0-alpha.2(
jsonContract2 → 3).vendor-manifest.jsonregenerated against thereal release — downloaded, checksums verified against the CLI repo's own
published
SHA256SUMS, every binary re-extracted and re-hashed directly.tests/host-adapter.test.mjs(runs the real onboardinghost-adapter.jsin Node'svmmodule against a fake Tauri bridge) —which caught a real bug while porting it: a rejected automatic
bootstrap()call had no error reporting at all, leaving the windowstuck on neutral "Starting Omnideck…" copy forever. Fixed in
host-adapter.js.tests/policy.test.mjsreworked back to two-window isolation assertionsplus the new origin-check/contract-3 coverage.
Deliberately not ported from the sibling: its
parity.rs-styleper-instance reconciliation logic (no analog in this repo's multi-instance
model) and its VM-based e2e/golden-checkpoint test infrastructure
(disproportionate to this repo's current scale, consistent with
TESTING.md's existing stance on the promotion ladder).Test plan
cargo build/test/clippy -- -D warnings/fmt --checkclean (26 tests)npm run test:policyclean (30 tests, incl. newhost-adapter.test.mjs)npm run typecheckcleannpm run fetch:sidecars/verify:sidecarsagainst the realv0.11.0-alpha.2releasenpm run dev:applaunch, including forcing the onboardingwindow open via
OMNIDECK_DEBUG_ONBOARDING_STAGElaunched cleanly with the dashboard polling real container state