Files
bbs-md/.planning/STATE.md
T

2.5 KiB

Project State

Project Reference

See: .planning/PROJECT.md (updated 2026-02-28)

Core value: Users can connect via SSH and seamlessly browse a vault of linked markdown documents with retro BBS aesthetics Current focus: Phase 1 - Safety Foundation

Current Position

Phase: 1 of 4 (Safety Foundation) Plan: 2 of 3 in current phase Status: Executing — Plan 02 complete, Plan 03 next Last activity: 2026-02-28 — Plan 02 complete (terminal safety primitives)

Progress: [██░░░░░░░░] 17%

Performance Metrics

Velocity:

  • Total plans completed: 2
  • Average duration: 3 min
  • Total execution time: 0.08 hours

By Phase:

Phase Plans Total Avg/Plan
01-safety-foundation 2 5 min 2.5 min

Recent Trend:

  • Last 5 plans: 2 min, 3 min
  • Trend: Stable

Updated after each plan completion

Accumulated Context

Decisions

Decisions are logged in PROJECT.md Key Decisions table. Recent decisions affecting current work:

  • Pre-Phase 1: Verify edition = "2024" compiles before changing to 2021 — leave it if cargo build succeeds
  • Pre-Phase 1: Use pulldown-cmark event-based approach for markdown parsing (not comrak)
  • Pre-Phase 1: No tokio/async runtime — synchronous event loop only
  • Pre-Phase 2: Choose wiki-link parsing strategy before implementation (regex pre-pass vs post-parse interception)
  • 01-01: Resolve relative vault_path against config file parent dir (not cwd) — bbs.toml lives next to binary
  • 01-01: detect_login_shell() called before parse_cli() — both read argv[0], parse_cli strips the dash
  • 01-02: Use ratatui::crossterm re-export path — crossterm is transitive dep, not direct dep in Cargo.toml
  • 01-02: SIGINT not registered via signal-hook — crossterm key events handle double-press Ctrl+C in Plan 03
  • 01-02: restore_terminal() skips ratatui::restore() — that would call LeaveAlternateScreen (never entered)

Pending Todos

None yet.

Blockers/Concerns

  • REND: Verify ratatui 0.30 custom Widget trait signature before building BBS widgets (changed between 0.28 and 0.29)
  • NAV: Path traversal via wiki-links must be addressed in Phase 3 link resolver — canonicalize and prefix-check every resolved path
  • LIVE: notify 8.x API must be verified at integration time; watch only current file (not full vault) to avoid inotify exhaustion

Session Continuity

Last session: 2026-02-28 Stopped at: Completed 01-02-PLAN.md — terminal safety primitives committed Resume file: .planning/phases/01-safety-foundation/01-03-PLAN.md