- Rust 69.2%
- Shell 17.8%
- Python 9.5%
- Slint 3.2%
- C 0.3%
ui/close-during-transaction — the audit's explicit race-hunt mandate
('witnessing the oracle's actual crash behavior is race-hunting,
explicitly Phase 12's mandate') — now REPRODUCED and courted PASS on
fixture close-transaction (gui-integration stack + a transaction-aware
slow-pacman wrapper that keeps the transaction terminal in-flight 30s +
the packaged terminal-helper/rootshell staged at the packaged paths).
The court drives each side's PACKAGED binary through a REAL transaction
(toggle + Execute), closes the MAIN window mid-flight via WM_DELETE_WINDOW
(the same ClientMessage a WM sends — synthesized with ctypes X11, exact
title match), and validates the D-008 divergence expectations:
- ORACLE: SIGABRT rc=134 — closeEvent (km-window.cpp:327-338) releases
the alpm handle and lets the app exit while the worker QThread is
still blocked in the transaction (Qt: 'QThread: Destroyed while thread
is still running');
- CANDIDATE: clean exit rc=0 — the transaction task is a runtime-owned
detached thread; Effect::Close exits the event loop;
- the machine residuals match byte-for-byte: the close corrupts nothing
on either side.
Also: the fixture baker now stages arbitrary payload files from the
fixture spec dir (payload-* in the chroot) so fixtures can install the
packaged helper scripts. Atlas (status + coverage-gaps gap-010 covered),
SECURITY.md (dispositions + the reproduced gap-010), COURTS.md,
KNOWN_DIVERGENCES.md (D-008 extended with the transaction-close witness)
updated; the audit-checklist dispositions table documents the full
Phase 12 hostile-review surface. Remaining Phase 12 work: D-001 (the
production narrow typed privilege helper + polkit shim — Phase 13
implementation) and the dependency audit.
|
||
|---|---|---|
| .cargo | ||
| .github/workflows | ||
| atlas | ||
| courts | ||
| crates | ||
| docs | ||
| evidence/releases | ||
| fixtures | ||
| oracle | ||
| packaging | ||
| src | ||
| tools | ||
| vm | ||
| xtask | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
cachyos-kernel-manager-rs
Native Rust + Slint custodial reimplementation of CachyOS Kernel Manager, built under the Forensic Residual Framework (FRF) methodology: behavior is proven by differential execution against the frozen upstream oracle in disposable VMs, and every discrepancy is treated as evidence.
The quality target: a skeptical CachyOS maintainer should be able to inspect this repository and see exactly why trusting the Rust implementation would be reasonable.
The shipped cachyos-kernel-manager binary is the Phase 8 Slint GUI (feature
gui;gui-alpmadds the real libalpm discovery + the scx D-Bus client), rendered with winit + the winit-software renderer (SLINT_BACKEND=winit-softwarein the VM courts) so no GL/Vulkan is required. The foundation diagnostics remain behind--diagnose. Nothing beyond the sealed phases is claimed complete.
Status
| phase | scope | status |
|---|---|---|
| 0 | Freeze authority | sealed |
| 1 | Build atlas | sealed |
| 2 | Oracle instrumentation | sealed |
| 3 | Pure domain core | sealed |
| 4 | ALPM layer | sealed |
| 5 | Execution/privilege | sealed |
| 6 | Build subsystem | sealed |
| 7 | SCX | sealed |
| 8 | Slint UI | sealed |
| 9 | Full differential court matrix | sealed |
| 10 | Packaging and migration | sealed |
| 11 | Boot/system courts | sealed |
| 12 | Hostile review | in progress |
| 13 | Release evidence | pending |
Quick start
cargo build # builds the workspace (the GUI needs `--features gui`)
cargo build --features gui-alpm # the full Phase 8 GUI (real libalpm + scx dbus)
cargo test --workspace # 167 unit/property tests over the reconstructed semantics
cargo test -p cachyos-kernel-manager-ui --features rendering --release # + 35 GUI/i18n tests
cargo xtask oracle verify # verifies the frozen source archive hash
cargo xtask oracle info # prints the frozen authority record
cargo xtask court list # lists court case directories
cargo xtask court run --all # runs the pure courts whose fixtures are present
cargo xtask court run <case> --vm # differential VM court (real oracle GUI)
cargo xtask upstream diff <ref> # diff locked oracle vs a candidate ref
What the oracle is (v1.19.0, frozen)
- Qt6/C++23 app;
libalpmauthoritative for package state;pacmanfor transactions; polkitorg.cachyos.KernelManager.pkexec.policy.run-root-terminalvia an arbitrary-root-shell helper (rootshell.sh=exec /bin/bash "$@"); terminal-helper chain for interactive pacman/makepkg; TOML build config schema defined by an in-tree Rust crate (config-option-lib, cxxbridge); sched-ext UI fromscxctl-ui; AUR kernels behindENABLE_AUR_KERNELS.
Full archaeology: docs/UPSTREAM_ARCHAEOLOGY.md.
Machine-readable surface inventory: atlas/inventory.json.
Repository layout
oracle/ frozen upstream clone + deterministic source archive + UPSTREAM.lock
atlas/ inventory.json, court ledger, residual ledger, coverage gaps
courts/ reproducible FRF parity-court case directories
crates/ layered workspace (core → plan/exec/build/config → ui; see docs/ARCHITECTURE.md)
docs/ the custodial documentation set
vm/ VM image definitions (Phase 2)
fixtures/ static fixture corpora (Phase 2+)
packaging/ Arch package (Phase 10)
xtask/ Rust-native orchestration
License
GPL-2.0-or-later (matching the upstream headers; note upstream ships GPLv3 text in its LICENSE while every source header says "version 2 or later" — recorded in the archaeology docs).