Files
lakehouse/crates/gateway/src/v1/truth.rs
T
rootandClaude Opus 4.7 5df4d48109
lakehouse/auditor 1 blocking issue: todo!() macro call in tests/real-world/scrum_master_pipeline.ts
cleanup: drop two #[allow] attributes that were hiding real dead code
- ingestd/src/service.rs: top-of-file `#[allow(unused_imports)]`
    was masking genuinely unused `delete` and `patch` routing
    constructors in an axum import block. Removed the attribute,
    trimmed the imports to only `get` and `post` (what's actually
    used). Any future over-import now trips the unused_imports
    lint immediately instead of being silently allowed.

  - gateway/src/v1/truth.rs: `truth_router()` was a 4-line stub
    wrapping a single `/context` route — carried `#[allow(dead_code)]`
    because v1/mod.rs wires `get(truth::context)` directly onto its
    own router, bypassing this helper. Zero callers across the
    workspace. Deleted the function + allow + now-unused Router
    import. Left a breadcrumb comment pointing to the real wiring.

Workspace warnings: 0 (lib + tests). Each #[allow] removed raises
the bar on future code entering these modules — the linter now
catches the same classes of bugs at PR time.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 06:42:49 -05:00

47 lines
1.3 KiB
Rust

use serde::Serialize;
use truth::default_truth_store;
// Note: truth_router() was a stub wrapper around a single /context route
// that nothing called — v1/mod.rs wires get(truth::context) directly
// onto its own router. Removed 2026-04-24 along with its #[allow(dead_code)]
// attribute; the handler below is the real surface.
#[derive(Serialize)]
pub struct ContextResponse {
pub task_classes: Vec<String>,
pub rules: Vec<RuleInfo>,
}
#[derive(Serialize)]
pub struct RuleInfo {
pub id: String,
pub task_class: String,
pub description: String,
}
pub async fn context() -> axum::Json<ContextResponse> {
let store = default_truth_store();
let task_classes: Vec<String> = vec![
"staffing.fill".to_string(),
"staffing.rescue".to_string(),
"staffing.sms_draft".to_string(),
"staffing.any".to_string(),
];
let mut rules = Vec::new();
for tc in &task_classes {
for rule in store.get_rules(tc) {
rules.push(RuleInfo {
id: rule.id.clone(),
task_class: rule.task_class.clone(),
description: rule.description.clone(),
});
}
}
axum::Json(ContextResponse {
task_classes,
rules,
})
}