Skip to content

feat: simplify USB topology around the detected computer - #4

Merged
Kb2uka merged 7 commits into
mainfrom
feat/computer-topology
Sep 13, 2026
Merged

Kb2uka merged 7 commits into
mainfrom
feat/computer-topology

Conversation

@Kb2uka

@Kb2uka Kb2uka commented Sep 13, 2026 •

Copy link
Copy Markdown
Owner

Summary

Shows one detected computer at the top of the live USB tree, using that installation’s system name and hardware model. The default view hides root buses and folds unbranched hub chains; Show USB paths restores the full topology. Updates Dock Doctor to 1.0.3.

Root cause

Exposing USB root hubs as separate top-level nodes omitted the physical computer and made its internal routing look like separate machines. The owner requested computer → docks/devices by default, expandable USB details, and automatic machine naming for every installation.

Proof

Fail-first tests cover automatic metadata discovery and the missing computer grouping. New tests verify DMI and device-tree models, configured machine names, bounded reads, inaccessible metadata, symlink rejection, unchanged USB inventories, folded paths, restored detail, and unchanged source relationships.

These are controlled test fixtures, not readings from the pictured hardware.

Previous USB roots Computer and simplified connections
USB root presentation Computer root

Expanded USB path fixture

Gates

Final revision 58b3f8a passed all 67 backend tests, 22 Qt results, native lifecycle, observer crash recovery, and both cold-loaded bar badge windows on OptiPlex. Python compilation, manifest validation, and diff checks passed. Hosted Linux x64, arm64, and Qt checks passed.

The native process-count investigation captured an event-monitor child carrying its parent's Python command line before exec. The harness now distinguishes direct shell observers from descendant monitors and samples tracked lifetimes together. Fail-first regressions cover inherited command lines, sequential handoffs, real duplicate observers, and cleanup exit races. Five repeated native restart trials supplement the full gate.

Review rounds

Round Seat A Substitute A Seat B Accepted Rejected Needs human
1 missing 4/5 (1) 4/5 (2) 2 1 0
2 missing 5/5 (0) 5/5 (0) 0 0 0
3 missing 3/5 (1) 5/5 (1) 0 2 0
4 missing 3/5 (2) 4/5 (1) 3 0 0
5 missing 5/5 (0) 5/5 (0) 0 0 0

The primary seat remained unavailable after its retry; the permitted substitute is shown explicitly. Unsupported-platform findings were rejected against the Linux-only project contract and CI matrix. Disclosure and harness cleanup findings were fixed. Round 5 reviewed a8d30b5. The final test-only child-process classification correction at 58b3f8a was self-reviewed and regression-tested after the five-round cap; it did not receive a sixth external round. Production code was unchanged after round 2.

Needs a human

The owner selected the simpler default and requested automatic names for all installations. Release, local update, and marketplace submission updates are authorized. Listing approval remains with marketplace maintainers.

factory: rounds=5 evidence=A,B,D host=optiplex

@Kb2uka
Kb2uka marked this pull request as ready for review September 13, 2026 17:29
@Kb2uka
Kb2uka merged commit f7a67d8 into main Sep 13, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant