Commands, package names, and image names on this page come from the open-source project that Mibyan Desktop is built on, and can differ from the Mibyan Desktop installer. For the supported Mibyan install and update path, see Install and update.
49945b14029e09fef608db9ede899377cdb54e11
with merge base 433f7196760e5d76f77ea6d5464ee7f1b602a4ee.
Runtime repairs after the documentation audit
The audit found a Python-layout mismatch in Electron, a fixed Python family in Nix, contradictory cryptography requirements, and failures in clean Windows setup. The follow-up changes the owning implementations:- The bundle builder checks the completed payload and publishes its launch paths. Electron consumes that contract without payload probes, adoption, or creation.
- Nix selects Python’s major/minor from
pm/lock.json. The uv2nix environment, package overrides, extra packages, and developer shell use that family. Real Nix evaluation and build acceptance remain CI gates. - The direct cryptography requirement and security override match the patched
version in
uv.lock. The override still bypasses the vendor SDK’s stale cap. - The bootstrap waits for uv to finish, then runs PM through Python directly. PM can replace its uv entry without the bootstrap holding its executable.
- PM receipt publication uses stdlib-only atomic JSON writes under a shared lock.
Failure reporting no longer imports PyYAML through
utils. - The unused development-shell command is removed. Setup plus activation and
deactivateis the single PM developer path.
Implemented repairs
Implementation does not mean that every platform acceptance test is complete.
The updater, backup, setup, voice-text helpers, and several plugins now use
one implementation per reconciled concern. Runtime paths have a shared owner
in
pm/environments.py.
Closure implementation
Verified execution
- The latest complete native-Windows Python run reported 44,557 passed, one failed, and 1,404 skipped tests across 3,746 files. Python source hashes stayed unchanged throughout the run. It also reported one pass-on-retry HTTP test. The install-ID race and HTTP test were then fixed. Their two files passed 35 tests without retries. This is not a complete final-tree suite pass.
-
Root
npm run checkcompleted with exit code zero, including MSIX packaging. Desktop UI: 7,231 passed. Electron: 2,311 passed and 23 skipped. TUI: 1,719 passed and eight skipped. Dashboard: 291 passed. Root JS: 77 passed. Type checks and lint had no errors. Existing lint warnings remain. This packaging check used the primary build directory’s existing payload, not the separately verified fresh audit payload. - The actual core project resolved and built through the workspace helper. Imports resolved from the generated workspace and the source lock was unchanged.
-
A fresh native ARM64 PM bundle completed its pinned-tool checks and all-extras
environment build. Its manifest records source tree
60c9fb444c93e8a79ae22a01677c3291385343a6. - The rebuilt thin desktop started its real backend twice in an isolated home, answered HTTP 200, and exited cleanly. Home entries survived relaunch.
- A real isolated API-server messaging gateway retained its PID and birth time after ordinary desktop quit. The desktop backend stopped; the gateway did not.
-
A thin MSIX built with the real packaging toolchain. Windows Sandbox installed
version
0.17.0.0, updated to0.17.0.1, and verified absence after uninstall. Test-certificate creation and trust were confined to the disposable guest. -
A separate fresh bundled MSIX was produced from payload tree
60c9fb44.... The unpacked artifact’s own CLI ran, imports resolved inside its payload, andmibyan serveanswered HTTP 200. The Sandbox deployment attempt failed on an incorrect unpacked path. It does not prove bundled installation. - Plugin checks now run from the first housekeeping tick, with the configured interval gate controlling network checks. A real isolated gateway wrote two successful plugin-check receipts one tick apart. Auto-apply was disabled.
Merge-ready closeout
The branch includes upstream5bd439d3ed4ae5f099857813383389dcd0ab4369.
The following limits from the earlier audit are resolved:
- Context-only homes share one dependency root across journal recovery, selected runtime state, and plugin unions. The regression batch passed 71 tests with eight host skips.
tests/tools/test_subagent_steer.pyproduced the relativeMagicMockdatabases. Its mock parents now explicitly have no database. The delegate verification batch passed without new debris. Earlier debris is archived outside the repository.- Docker bootstrap includes the stdlib runtime-path and locking owners that PM imports before third-party dependencies exist. Both architecture builds passed after this fix.
- Installer path probes no longer read a missing lockfile. PowerShell 5.1 and 7 installer tests passed in CI.
- Service runtime selection uses the shared selected-environment resolver. PM facts supply managed Node paths. Native fixtures use disposable homes.
- The Windows updater uses its registered App Installer source unless an
explicit feed override is configured. It downloads the descriptor before
teardown and opens the local file. It does not require the disabled
ms-appinstaller:protocol.
Non-E2E closeout
The full CI workflow ona27cd5902a446eb4f1e457e09904d75edc616c2e
completed successfully:
- Linux: 46,041 passed, zero failed, 492 skipped. No retry-only flakes.
- macOS: 94 passed, zero failed, 121 skipped. No retry-only flakes.
- Windows: 178 passed, zero failed, 174 skipped. One pipe-drain fixture passed only on retry because its cold child exceeded the idle window.
04182813cfa74111c6e4e10bedcc0f9de6510f55 limits Windows
nested-process concurrency without relaxing the fixture’s assertions.
It also fixes compute-host stdin framing: a real Windows child received
its initial turn but did not receive subsequent control frames through the
text stream. The byte-stream reader passed the actual interrupt and
second-turn tests. Those tests now run in each native OS lane.
The other test repairs distinguish worker scheduling from the behavior
under test. Compression waits for engine entry, cron assertions observe
blocked work, orphan teardown asserts that the resume lock is free, and
hosted-room tests observe durable settlement after a concurrent snapshot.
Targeted parent verification passed 638 gateway/delegation tests, 41
cron/hygiene tests, four compression isolation tests, 53 hosted/compute
tests, and 19 real-child/compute protocol tests. These batches overlap;
they are not a whole-suite total.
The browser BOM regression failed before the read fix and passed after it.
Its file passed 79 tests with two host skips. The full Windows-footgun and
plugin-compat checks passed.
Bundle acceptance (separate workstream)
The actual bundled Windows ARM64 MSIX built from07ee9299790e5635fd917da1769f969f14fc8030 installed in a disposable
Windows Sandbox as version 0.17.0.0. Its registered app presented the UI,
About identified the embedded runtime, and its own packaged backend
answered HTTP 200. The unsigned build artifact’s SHA-256 is
31d3dfb53977e0e8fd662d0ef2475a7be92a31a49d6e514ceed812099867f304.
Test signing and trust were confined to the guest.
The guest was terminated before update/relaunch verification completed.
There is no automatic-update acceptance claim. This artifact also predates
subsequent upstream integration and the compute-host fix. Bundle E2E work
belongs to the existing install/update test family, not a second local
Sandbox pipeline.
Remaining gates
- Final-head native CI must confirm the latest fixes without retry-only failures.
- Maintainers must decide the
needs-decisiondisposition and applyci-reviewedafter review. Manual CI skips PR-only review gates. - Automatic package update/relaunch remains with the separate E2E workstream.
resource_exhausted: gitmon refuses to schedule us: fail-fast:network.
The external audit directory contains original findings, exact test selections,
per-run logs, source snapshots, and review adjudication. Host application,
certificate trust, and production services remained unchanged during that audit.
That audit did not publish a release; this is not a statement about later runs.
