Commit Graph

64 Commits

Author SHA1 Message Date
ruohki 966b47edbc feat(01-02): implement signal handling and logging stub
- SignalFlags struct wraps Arc<AtomicBool> for SIGHUP/SIGTERM
- register_signals() registers SIGHUP and SIGTERM only (not SIGINT)
- SIGINT deliberately excluded — handled via crossterm key events for double-press Ctrl+C
- should_terminate() polls flag with Ordering::Relaxed for event loop use
- init_logging() is a Phase 1 no-op stub with LIFE-03 documentation
2026-02-28 21:12:45 +01:00
ruohki 65313eac31 feat(01-01): add Phase 1 deps and implement config/CLI loading
- Add signal-hook 0.4.3, toml 1.0.3, serde 1.0, clap 4.5 to Cargo.toml
- Create src/config.rs with Config struct (deny_unknown_fields, serde defaults)
- Implement load_config() with vault_path resolution relative to config file dir
- Implement resolve_config_path() using binary-adjacent bbs.toml as default
- Implement print_config_error() with BBS-themed error messages
- Implement detect_login_shell() and parse_cli() with argv[0] dash stripping
- Create src/terminal.rs with init_terminal(), restore_terminal(), install_panic_hook()
- Wire early startup path in src/main.rs before terminal initialization
2026-02-28 21:12:29 +01:00
ruohki b258b6d262 feat(01-02): implement terminal init/restore and panic hook
- init_terminal() enables raw mode and clears main screen via Viewport::Fullscreen
- No alternate screen buffer used (deliberate BBS immersive approach)
- restore_terminal() disables raw mode and shows cursor using let _ for all calls
- install_panic_hook() restores terminal, prints BBS-themed message, delegates to original hook
- Use ratatui::crossterm re-export (crossterm is transitive dep only)
- All panic hook operations use let _ or eprintln! — no unwrap() or ? inside hook
2026-02-28 21:12:04 +01:00
ruohki c9a777ddbc docs(state): record phase 1 planning session 2026-02-28 21:09:14 +01:00
ruohki c97c149366 docs(01-safety-foundation): create phase plan 2026-02-28 21:05:46 +01:00
ruohki 88a93c16ed docs(01): research phase 1 safety foundation 2026-02-28 20:58:46 +01:00
ruohki 47815f2abf docs(state): record phase 1 context session 2026-02-28 20:49:58 +01:00
ruohki d537f04bf6 docs(01): capture phase context 2026-02-28 20:49:44 +01:00
ruohki 4f6c9bcdc9 docs: create roadmap (4 phases) 2026-02-28 20:35:13 +01:00
ruohki 05a301ae63 docs: define v1 requirements 2026-02-28 20:32:34 +01:00
ruohki b431e7bb1b docs: complete project research 2026-02-28 20:27:48 +01:00
ruohki 10028d3a8a chore: add project config 2026-02-28 20:20:16 +01:00
ruohki 1d5ad47411 docs: initialize project 2026-02-28 20:18:58 +01:00
ruohki 7f1a4ce1f1 docs: map existing codebase 2026-02-28 20:12:08 +01:00