Hello Ben, Marta, Marek, and the Qubes Team,
My name is Sahil Kumar (GitHub: Sahilll10), and I am a Computer Science student. I am writing to express my interest in the System Health Monitor project for GSoC 2026 and to seek early feedback on my approach before drafting my formal proposal.
Over the past few weeks, I have been actively contributing to Qubes OS and familiarizing myself with its architecture:
qubes-core-admin-client#450 — merged by @marmarek
Fixed failing tests introduced by commit 84edd42 by identifying missing per-VM registration in MockQube._add_to_vm_list. Used git bisect to isolate the issue and resolved all failures with a minimal fix.
qubes-desktop-linux-manager#300 — under review
Implemented automatic file manager launch in DispVM on block device attach using qubes.StartApp + qubes-open-file-manager. Added a comprehensive test suite using MockQubesComplete.
qubes-desktop-linux-manager#303 — under review
Fixed a UI issue where a hyperlink inside a GtkRadioButton was not clickable. Verified via OpenQA and local GTK mock testing.
Through this work, I have gained hands-on experience with PyGTK widgets, qrexec services, the Qubes Admin API, and MockQubesComplete-based testing.
Initial Understanding & Direction
From my exploration, system health signals in Qubes OS appear to be fragmented and not centrally surfaced. Issues such as VM crashes, resource pressure (memory/storage), and insecure USB configurations are either logged internally or exposed indirectly across different components.
My current approach is to:
Aggregate health signals from existing sources (e.g., update widget, qubesadmin API)
Design a centralized background service to monitor system state
Build a PyGTK tray widget that provides a concise overview and proactive notifications
Ensure unit test coverage using MockQubesComplete
Add integration tests and documentation
To ensure I am aligning with the intended design direction:
Should the monitor primarily poll qubesadmin API properties from dom0, or is it preferred to leverage the event system (qubesadmin.events) for a more event-driven design?
For detecting insecure USB configurations, is checking the presence of sys-usb and verifying whether any USB controller is assigned directly to dom0 via qubesadmin sufficient, or is there a more authoritative or recommended approach?
I want to make sure I align early with the expected design direction before formalizing my proposal.
Thank you for your time and guidance.
Best regards,
Sahil Kumar
GitHub: https://github.com/Sahilll10
Email: sahilkum...@gmail.com