Add a new GPU vendor driver backend
Suggested by the saved analysis. Some step paths were not captured or refer to generated or vendor files; only observed source files are linked.
- Update build.rs to compile vendor headers when feature flag enabled
Understand ilya-zlobintsev/lact's source layout and find a starting point for your task using the saved repository evidence.
Measured from the parsed import graph, retained from the earlier analysis. Coupling, not a reading order.
Files at 705cc8e66706 · descriptions are AI-written.
The descriptions and the file list come from different revisions. Check responsibilities against source.
Suggested by the saved analysis. Some step paths were not captured or refer to generated or vendor files; only observed source files are linked.
Suggested by the saved analysis. Verify the proposed change against these source files.
Suggested by the saved analysis. Verify the proposed change against these source files.
Start with possible export surfaces, then check their consumers and tests. These suggestions use file names, not verified execution paths.
Start with possible startup or request handlers, then follow the calls for your scenario. These suggestions use file names, not verified execution paths.
Use a nearby test as a pattern. Read the root manifest or contribution guide for the correct test command. These suggestions use file names, not verified execution paths.
Inspect the relevant configuration and the commands it runs before changing the workflow. These suggestions use file names, not verified execution paths.
File paths come from a snapshot of up to 500 captured paths; an omitted file may still exist.
Source directories grouped from the import graph. Each links to a per-module page with its files and how it couples to the rest.
Also: lact-gui/src/app/pages/oc_page/clocks_frame, lact-daemon/src/tests, lact-cli/src, lact-gui/src/app/components/oc_adjustment, lact-gui/src/app/pages/oc_page/performance_frame, lact-gui/src/app/pages/software_page/vulkan
A file is "critical" when lots of other files in the repo import it. The list is sorted by how many files import each one; the top of the list is the most load-bearing. A flame icon means the file is also one of the most-edited recently — when a critical file changes a lot, bugs there ripple wider, so it's where regressions are most likely.
How the A grade breaks down
Nothing else in the repo imports these files, and they don't look like entry points — so they may be dead code. Verify before removing: dynamic imports, re-exports, and framework auto-loading (Next.js routes, plugin/DI registries) aren't tracked by the import graph.
Rust
Memory-safe systems programming for GPU driver interaction without C pointer bugs; Tokio for async daemon communication.
amdgpu-sysfs + nvml-wrapper
Abstraction over direct DRM/NVAPI calls; reduces maintenance burden of vendored kernel headers.
Unix domain sockets + TCP
Dual transport enables local IPC efficiency and remote monitoring over network when needed.
Flatpak + RPM specs
Sandboxed distribution for security; native packaging for system integration and performance.
Build-time
Runtime
Vendored DRM/NVIDIA headers in lact-daemon/include/
Avoids runtime dependency on libdrm-dev and NVIDIA SDK; simplifies CI.
Headers must be manually updated when kernel or driver APIs change; licenses must be tracked.
Separate daemon and CLI processes communicating over sockets
Enables privileged daemon to run as service while unprivileged CLI remains low-risk.
Adds network round-trip latency; requires serialization overhead for each command.
Single workspace with six members (daemon, cli, gui, client, schema, main)
Code sharing for types and macros; atomic version bumps across components.
Monorepo coupling makes selective feature releases harder; CI must build unused members.
This repo is in good health with CI, tests, and active maintenance.
How maintainable the code looks — from complexity, code issues, test presence, file size, and hotspot load. It grades the shape of the code, not defect risk, and doesn't replace review.
Provider: GitHub Actions
4,228 test files detected
Stack: Rust test
Where: lact-daemon/src/tests/snapshots · lact-daemon/src/tests
4,228 test files / 176 source files. This is a file-count ratio, not real line coverage — set up Codecov for authoritative numbers.
No Dependabot / Renovate / Snyk / Trivy / CodeQL config found. Enable Dependabot or Renovate.
Real-time data from Codecov, GitHub Actions, GitHub Issues, deps.dev — not estimates.
from Codecov · authoritative, not estimated
last 50 runs · median 11m
of 21 recent open issues are 30d+ old with no replies
median first-reply across 14 recent issues · fast
Files edited often AND hard to reason about. Churn = recent commit frequency, Complexity = branches and nesting, Risk = both combined. These are the highest-leverage targets for refactoring or testing.
Files that change often and are complex tend to accumulate more bugs
Pattern-matches from the file structure and dependencies — useful as hypotheses, but not grounded in actual source. For real findings see Code Scanning above.
NVIDIA SDK headers checked into git lack documentation of source version or update policy; risk of API drift.
lact-daemon/include/nvidia/
CLI build pulls in GUI dependencies even if not needed; headless deployments build GUI code.
Cargo.toml workspace resolver
Speculation from file structure, not profiling data. Validate against real metrics before acting on these.
Each CLI invocation creates new daemon connection; no connection pooling or persistent client.
lact-client socket transport
Sequential reads from amdgpu-sysfs and NVML block event loop if driver is slow; no read timeout.
lact-daemon GPU polling loop
Full state serialized on each query; no field-level filtering or delta compression.
JSON serialization of GPU telemetry
Static analysis on sampled source files (up to 15 files).