Skip to content

cuonghx-dev/forest

Repository files navigation

Forest

A minimalist macOS menubar Pomodoro app built on Tauri v2 + React. The menubar tree icon is the primary visual feedback channel — no flashing numbers, no dock icon, no main window.

Status

Early development. See docs/implementation-plan.md and docs/design-decisions.md for the canonical contract. Issues tracked in .beads/ (run bd ready).

Requirements

  • macOS 12+
  • Node 18+
  • Rust 1.77+

Development

npm install
npm run tauri dev

Testing

Three test layers:

npm test                                                      # Vitest (frontend unit)
cargo test --manifest-path src-tauri/Cargo.toml               # Rust unit + integration
FOREST_RUN_E2E=1 npm run e2e                                  # tauri-driver E2E (local only)

E2E suite is skipped by default — requires tauri-driver + a desktop session. See tests/e2e/README.md.

Coverage

cargo install cargo-llvm-cov                                  # one-time
cargo llvm-cov --manifest-path src-tauri/Cargo.toml --html
npx vitest run --coverage

Targets (verified in M8): ≥ 70 % line coverage in src-tauri/src and src/.

Logs

Written to ~/Library/Logs/Forest/forest.log. Filter via env:

FOREST_LOG=debug npm run tauri dev

Test environment overrides

The following env vars influence runtime behavior, primarily for E2E and integration tests. See docs/design-decisions.md §18 for the registry.

Env var Effect
FOREST_LOG tracing EnvFilter directive (default info)
FOREST_TEST_PRESET "Ws/Bs" injects a fake preset (W work seconds / B break seconds)
FOREST_TEST_MODE "Auto" or "Manual" overrides phase transition
FOREST_TEST_SKIP_OSASCRIPT "1" → AppleScript no-ops
FOREST_TEST_AUDIO_DIR absolute path overrides resource audio dir
FOREST_TEST_RNG_SEED u64 deterministic shuffle
FOREST_TEST_DATA_DIR absolute path overrides app_data_dir for forest.json
FOREST_TEST_DISABLE_NOTIFICATIONS "1" no-op notifications
FOREST_TEST_DISABLE_GLOBAL_SHORTCUTS "1" skip register

License

See LICENSE.

About

🌿 A zero-distraction focus companion that lives quietly in your macOS menubar. Grow focus streaks, block distractions, and soundtrack your flow — inspired by Forest, built for the desktop.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors