Phase 2 QC found three explicit blockers + a broader sweep needed:
Explicit (QC-named):
- crates/mcp/src/lib.rs:15 — SERVER_NAME public MCP wire identity
- crates/transcription/build.rs:59 — panic message prefix
- crates/llm/tests/content_tags_smoke.rs:7 — docstring -p flag
Swept (string literals + dev env vars + doc comments + test fixtures):
- crates/mcp/src/main.rs — eprintln log prefixes
- src-tauri/src/commands/diagnostics.rs — diagnostic filename + MAGNOTIA_VERSION
- src-tauri/src/commands/audio.rs — recording filename pattern lumotia-<secs>-...wav
- src-tauri/src/commands/fs.rs — test placeholder path
- crates/transcription/src/model_manager.rs — .lumotia-verified marker
- crates/storage/src/database.rs — lumotia-storage-ro-<pid> temp dirs + doc comments
- crates/cloud-providers/src/keystore.rs — LUMOTIA_API_KEY_<PROVIDER> env var
- crates/audio/src/{wav,decode}.rs — lumotia_test_* / lumotia_decode_* test fixtures
- crates/core/src/tuning.rs — LUMOTIA_INFERENCE_THREADS env var
- All MAGNOTIA_LLM_TEST_MODEL / MAGNOTIA_WHISPER_TEST_* env vars
- Doc comments referencing crate names
Excluded (intentional Phase 4/5 scope):
- magnotia_preferences, magnotia_history, magnotia_morning_triage_last_shown
DB setting keys (Phase 5 paths.rs migration)
- magnotia_startup tracing target (Phase 4)
- crates/core/src/paths.rs (Phase 5 wholesale rewrite + migration shim)
cargo build --workspace passes. cargo test --workspace: 330 pass, 0 fail.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
51 lines
1.8 KiB
Rust
51 lines
1.8 KiB
Rust
//! Demonstrator: show what the inference_thread_count tracing event
|
|
//! emits in production, across all eight (workload, on_battery,
|
|
//! gpu_offloaded) tuples.
|
|
//!
|
|
//! Run with:
|
|
//! cargo run -p lumotia-core --example tuning_log_demo
|
|
//!
|
|
//! Output is to stderr (tracing's default). Each unique tuple emits
|
|
//! exactly one INFO line; subsequent calls with the same tuple are
|
|
//! silenced by the per-process log-once cache.
|
|
|
|
use lumotia_core::tuning::{inference_thread_count, Workload};
|
|
|
|
fn main() {
|
|
tracing_subscriber::fmt()
|
|
.with_env_filter("lumotia_core=info")
|
|
.with_target(true)
|
|
.with_writer(std::io::stderr)
|
|
.init();
|
|
|
|
let cores = num_cpus::get_physical();
|
|
let logical = num_cpus::get();
|
|
eprintln!("Host: {cores} physical / {logical} logical cores\n");
|
|
|
|
for (label, override_value) in [
|
|
("AC override", Some("ac")),
|
|
("Battery override", Some("battery")),
|
|
("No override (real sysfs probe)", None),
|
|
] {
|
|
match override_value {
|
|
Some(v) => std::env::set_var("LUMOTIA_POWER_STATE_OVERRIDE", v),
|
|
None => std::env::remove_var("LUMOTIA_POWER_STATE_OVERRIDE"),
|
|
}
|
|
// Cache invalidation so the live probe re-runs each section.
|
|
// Override paths bypass the cache anyway; this is for the
|
|
// no-override block that actually hits sysfs.
|
|
eprintln!("--- {label} ---");
|
|
for &(workload, gpu) in &[
|
|
(Workload::Llm, false),
|
|
(Workload::Llm, true),
|
|
(Workload::Whisper, false),
|
|
(Workload::Whisper, true),
|
|
] {
|
|
let n = inference_thread_count(workload, gpu);
|
|
let w = format!("{workload:?}");
|
|
eprintln!(" {w:>8} gpu_offloaded={gpu:>5} -> {n} threads");
|
|
}
|
|
eprintln!();
|
|
}
|
|
}
|