bb1b608fbb13c900908cc8c513ff5b6328b3ec88
Implement the data layer with mockable CLI wrappers for testability: CLI Traits (data/*.rs): - LoreCli: Trait for lore --robot commands (get_me, health_check) - BeadsCli: Trait for br commands (create, close, list) - Both use #[automock] for unit testing without real CLI Real Implementations: - RealLoreCli: Shells to 'lore --robot me', parses JSON response - RealBeadsCli: Shells to 'br create/close/list --json' Type Definitions: - LoreMeResponse: Full response from 'lore --robot me' - open_issues, open_mrs_authored, reviewing_mrs, activity - since_last_check with EventGroup for inbox functionality - All fields use #[serde(default)] for forward compatibility - Bead: Task from br list (id, title, status, priority, issue_type) Local State Management (data/state.rs): - GitLabBeadMap: Deduplication mapping (GitLab event -> bead ID) - MappedBead: Tracks miss_count for two-strike orphan detection - DecisionLog: Append-only JSONL for learning from user choices - Atomic writes via .tmp files + rename pattern Tauri Commands (commands/mod.rs): - greet: Placeholder for IPC testing - get_lore_status: Exposes lore health to frontend This establishes the CLI-over-library pattern from PLAN.md: clean boundaries, no schema coupling, full testability via mocks.
Description
No description provided
Languages
TypeScript
66%
Rust
33.5%
JavaScript
0.3%
Shell
0.1%