feat(tui): Phase 4 completion + Phase 5 session/lock/text-width
Phase 4 (bd-1df9) — all 5 acceptance criteria met: - Sync screen with delta ledger (bd-2x2h, bd-y095) - Doctor screen with health checks (bd-2iqk) - Stats screen with document counts (bd-2iqk) - CLI integration: lore tui subcommand (bd-26lp) - CLI integration: lore sync --tui flag (bd-3l56) Phase 5 (bd-3h00) — session persistence + instance lock + text width: - text_width.rs: Unicode-aware measurement, truncation, padding (16 tests) - instance_lock.rs: Advisory PID lock with stale recovery (6 tests) - session.rs: Atomic write + CRC32 checksum + quarantine (9 tests) Closes: bd-26lp, bd-3h00, bd-3l56, bd-1df9, bd-y095
This commit is contained in:
@@ -112,7 +112,7 @@ mod tests {
|
||||
let cmd = reg.complete_sequence(
|
||||
&KeyCode::Char('g'),
|
||||
&Modifiers::NONE,
|
||||
&KeyCode::Char('x'),
|
||||
&KeyCode::Char('z'),
|
||||
&Modifiers::NONE,
|
||||
&Screen::Dashboard,
|
||||
);
|
||||
|
||||
@@ -213,6 +213,16 @@ pub fn build_registry() -> CommandRegistry {
|
||||
available_in: ScreenFilter::Global,
|
||||
available_in_text_mode: false,
|
||||
},
|
||||
CommandDef {
|
||||
id: "toggle_scope",
|
||||
label: "Project Scope",
|
||||
keybinding: Some(KeyCombo::key(KeyCode::Char('P'))),
|
||||
cli_equivalent: None,
|
||||
help_text: "Toggle project scope filter",
|
||||
status_hint: "P:scope",
|
||||
available_in: ScreenFilter::Global,
|
||||
available_in_text_mode: false,
|
||||
},
|
||||
// --- Navigation: g-prefix sequences ---
|
||||
CommandDef {
|
||||
id: "go_home",
|
||||
@@ -284,6 +294,46 @@ pub fn build_registry() -> CommandRegistry {
|
||||
available_in: ScreenFilter::Global,
|
||||
available_in_text_mode: false,
|
||||
},
|
||||
CommandDef {
|
||||
id: "go_file_history",
|
||||
label: "Go to File History",
|
||||
keybinding: Some(KeyCombo::g_then('f')),
|
||||
cli_equivalent: Some("lore file-history"),
|
||||
help_text: "Jump to file history",
|
||||
status_hint: "gf:files",
|
||||
available_in: ScreenFilter::Global,
|
||||
available_in_text_mode: false,
|
||||
},
|
||||
CommandDef {
|
||||
id: "go_trace",
|
||||
label: "Go to Trace",
|
||||
keybinding: Some(KeyCombo::g_then('r')),
|
||||
cli_equivalent: Some("lore trace"),
|
||||
help_text: "Jump to trace",
|
||||
status_hint: "gr:trace",
|
||||
available_in: ScreenFilter::Global,
|
||||
available_in_text_mode: false,
|
||||
},
|
||||
CommandDef {
|
||||
id: "go_doctor",
|
||||
label: "Go to Doctor",
|
||||
keybinding: Some(KeyCombo::g_then('d')),
|
||||
cli_equivalent: Some("lore doctor"),
|
||||
help_text: "Jump to environment health checks",
|
||||
status_hint: "gd:doctor",
|
||||
available_in: ScreenFilter::Global,
|
||||
available_in_text_mode: false,
|
||||
},
|
||||
CommandDef {
|
||||
id: "go_stats",
|
||||
label: "Go to Stats",
|
||||
keybinding: Some(KeyCombo::g_then('x')),
|
||||
cli_equivalent: Some("lore stats"),
|
||||
help_text: "Jump to database statistics",
|
||||
status_hint: "gx:stats",
|
||||
available_in: ScreenFilter::Global,
|
||||
available_in_text_mode: false,
|
||||
},
|
||||
// --- Vim-style jump list ---
|
||||
CommandDef {
|
||||
id: "jump_back",
|
||||
|
||||
Reference in New Issue
Block a user