Releases: Data-Wise/flow-cli
Releases · Data-Wise/flow-cli
v7.6.0 — em --prompt + Scholar Config Sync
Highlights
- em --prompt flag — Natural-language instructions for AI-drafted replies, sends, and forwards (
em reply 123 --prompt 'decline politely') - em --backend flag — Per-command AI backend override (
--backend claude|gemini) - em forward command — Forward emails with optional AI body and
--promptsupport - Scholar Config Sync —
--configflag auto-appended to all Scholar commands when.flow/teach-config.ymlexists - Config subcommands —
teach config check,teach config diff,teach config show,teach config scaffold - New teach wrappers —
teach solution,teach sync,teach validate-r
Changes
Added
- em --prompt, --backend, forward, smart TTY detection
- Scholar Config Sync: 4-layer config auto-injection
- teach config check/diff/show/scaffold subcommands
- teach solution, sync, validate-r wrappers
- Help guards on all 34 em subcommand functions
- Scholar config section in teach doctor (quick mode)
Documentation
- 4 new dispatcher refcards (g, wt, dots, sec)
- Stale version sweep: v5.x/v6.x references updated to v7.6.0
- Broken anchor fixes across 5 files
- Tutorial renaming: 27 -> 45 (lint-quickstart), 37 -> 46 (em-v2-features)
- Help files updated: TROUBLESHOOTING, WORKFLOWS
Stats
- 53/53 test suites passing (205 files, 12000+ assertions)
- 1 expected timeout (IMAP IDLE)
- 15 dispatchers + Atlas bridge
- 0 lint errors, 0 broken anchors
Full Changelog: v7.5.0...v7.6.0
v7.5.0 — em v2.0: Safety Gate, Calendar & Watch
Highlights
em v2.0 — Major email dispatcher upgrade with safety-first design:
- Two-phase safety gate for
em sendandem reply— preview before sending - ICS calendar integration —
em calendarwith event extraction - IMAP watch —
em watchfor real-time inbox monitoring - Folder CRUD —
em create-folder,em delete-folder - Enhanced attachments —
em attach list, get-by-filename support
Security Hardening
- Safe config parser (no
sourceof untrusted files) - Message ID validation & folder name sanitization
--argjsonfor jq (no string interpolation injection)- Terminal-notifier subject sanitization
- AI extra args validation
Bug Fixes
- Macro parser now supports both
{=tex}and{=latex}Quarto blocks - Concept graph builder handles simple YAML format (not just array-of-objects)
- 8 integration test suites fixed (variable shadowing, stale paths, format mismatches)
Testing
- 47 test suites passing (0 failures, 2 expected timeouts)
- 12,000+ test functions across 196 test files
- New: dogfood quality tests, safety gate tests, ICS/watch tests
Full Changelog
v7.4.2 — Atlas Integration + Homebrew Cleanup
Highlights
- Atlas bridge (
at) — Enhanced bridge to Atlas CLI with styled help page, 10 warm-path commands, and 4 ZSH-native fallbacks - Atlas API contract — Formal interface specification (
docs/ATLAS-CONTRACT.md) - 77 new tests — Contract (18), e2e (30), dogfood (29) for Atlas bridge
- Homebrew formula — Selective install reduces 74MB to ~4MB
Changes
Added
atbridge command with_at_help()styled help page- Atlas API contract and integration guide
- CI version guard workflow
- 77 new test functions across 3 test files
Fixed
- Help browser includes all 15 dispatchers + at (was 8)
- Help compliance checker includes
emdispatcher - Dispatcher counts updated "12" → "15" across docs
- Homebrew selective install (74MB → ~4MB)
- 10295 markdownlint errors → 0
Stats
- Tests: 196 files, 12000+ functions, 46/46 suites
- Dispatchers: 15 + at bridge
Full Changelog: v7.4.1...v7.4.2
v7.4.1 — Homebrew Cleanup
Highlights
- Homebrew install size: 74MB → ~4MB (selective formula install)
- Repo cleanup: 62 stale files removed (-21k lines)
- CI version guard: prevents FLOW_VERSION/tag mismatches on release
Changes
Fixed
- Homebrew formula: selective install replaces blanket
Dir["*"] - Repo cleanup: deleted 62 stale root-level planning docs, debug scripts, test scripts
- Version guard uses portable POSIX
grep -oE(not GNUgrep -oP) - Markdownlint errors resolved across docs
Added
.github/workflows/version-guard.yml— blocks releases on version mismatch
Stats
- Tests: 45/45 passing (1 expected timeout)
- Dispatchers: 15
- Test files: 195 (12000+ functions)
Full Changelog: v7.4.0...v7.4.1
v7.4.0 — 31 Email Commands
Highlights
- 31
emcommands — complete email management from the terminal - Organize:
em star,em thread,em snooze,em digest - Manage:
em delete,em move,em restore,em flag,em todo,em event - Multi-select:
--pickmode with fzf across all management commands - 10 tutorials — step-by-step guides for every em subcommand
Security Fixes
- Fixed jq type mismatch in
_em_star(string vs number ID comparison) - Fixed printf format injection in
_em_move - Sanitized AppleScript inputs in
_em_create_reminderand_em_create_calendar_event - Removed 686 lines of dead code (duplicate function definitions)
Changes
See full changelog for details.
Full diff: v7.3.0...v7.4.0
v7.3.0 — Email AI Improvements
Highlights
- Runtime AI switching —
em ai geminito switch backends instantly,em ai toggleto cycle - Email-to-task capture —
em catch 42summarizes an email and pipes tocatch - Gemini speed boost —
extra_argssupport (-e none) cuts Gemini startup from ~8s to ~2s - Picker integration —
Ctrl-Tinem pickcaptures emails as tasks inline
What's New
Added
em aisubcommand — runtime backend switching (claude|gemini|none|auto|toggle)em catchcommand — AI-summarize email → pipe tocatchcommandextra_argssupport — per-backend CLI flags (FLOW_EMAIL_GEMINI_EXTRA_ARGS)Ctrl-Tkeybind inem pickfor inline task capture- 22 unit tests (em-ai-switch), 9 unit tests (em-catch), 38 E2E tests
Stats
- Test suite: 45/45 passing (137 test files, 8000+ functions)
- Dispatchers: 15 (em now has 20 subcommands)
Full Changelog: v7.2.1...v7.3.0
v7.2.1 — Testing Overhaul & Cleanup
Highlights
- Shared test framework — all 134 test files now use
test-framework.zshwith 14 assertion helpers, mock registry, and subshell isolation - Dogfood scanner — meta-test catches inline frameworks, unused captures, permissive exits, and existence-only tests
- Semantic-release removed — manual releases via
gh release create; 5 devDependencies and.releaserc.jsoncleaned up
Changes
Changed
- Testing overhaul: migrated 134 test files from inline frameworks to shared
test-framework.zsh - Removed semantic-release dependencies and configuration
Added
- Dogfood scanner (
tests/dogfood-test-quality.zsh) — 4 anti-pattern categories test_passdouble-counting guardwith_envscalar limitation documentation
Removed
semantic-release,@semantic-release/*,conventional-changelog-conventionalcommitsdevDependencies.releaserc.jsonconfiguration file
Documentation
docs/guides/TESTING.md— full rewrite for shared framework architecturedocs/CHANGELOG.md— new release entrydocs/guides/QUALITY-GATES.md— removed stale semantic-release CI sectionFLOW_VERSIONinflow.plugin.zshsynced to 7.2.1
Stats
- Test suite: 45/45 passing, 1 expected timeout (IMAP)
- Test files: 134 (consolidated from 186)
- Test functions: 8,000+
- Dispatchers: 15
Full Changelog: v7.2.0...v7.2.1
v7.2.0 — Explicit Editor Flag
What's New
work -e: Explicit Editor Control
work no longer auto-opens an editor. Use the new -e flag for explicit control:
work my-project # Just cd + context (no editor)
work my-project -e # Open $EDITOR
work my-project -e code # Open VS Code
work my-project -e cc # Claude Code (acceptEdits)
work my-project -e ccy # Claude Code (yolo mode)
work my-project -e cc:new # Claude Code (new Ghostty window)The old positional syntax (work proj nvim) still works but shows a deprecation warning.
Documentation Overhaul
- Added missing v7.1.0 changelog entry (dot split)
- Added v7.0.0, v7.1.0, v7.2.0 to Release Notes page
- Updated MASTER-API-REFERENCE.md (v5.19.1 → v7.2.0, 880 functions)
- Fixed stale version strings across 9 docs
- Fixed misleading cross-reference in Quick Reference
Testing
- 39 new tests for
work -e(70 total work tests) - 45/45 test suites passing (186 files, 8000+ assertions)
Full Changelog: v7.1.0...v7.2.0
v7.1.0 — Dispatcher Split: dots, sec, tok
Highlights
The monolithic dot dispatcher (4,395 lines) has been split into 3 focused dispatchers:
dots— Dotfile management (chezmoi, edit, sync, push/pull)sec— Secret management (Keychain, Bitwarden)tok— Token management (GitHub, NPM, PyPI wizards, rotation)
Dispatcher count: 13 → 15.
Changes
Added
dotsdispatcher — all dotfile operations from formerdotsecdispatcher — all secret operations (dot secret→sec)tokdispatcher — all token operations (dot token→tok)- Migration guide:
docs/guides/MIGRATION-DOT-SPLIT.md - New E2E and dogfood tests for dispatcher split
- ZSH completions for
_secand_tok
Changed
_dot_*internal functions renamed to_dotf_*(shared),_dots_*,_sec_*,_tok_*- Help compliance verified: 14/14 dispatchers pass 9-rule format
- All 91 files updated with new command references
Removed
dot-dispatcher.zsh(replaced by 3 new dispatchers)
Fixed
- Stale
_dot_token_*function names in architecture and API docs - Incorrect
bw/misedependency indots-dispatcher.zshheader - CHANGELOG historical entries restored to original command names
Backward Compatibility
flow doctor --dotflag works unchanged--dotflags throughout the codebase preserved
Stats
- Tests: 8,000+ functions across 45/45 suites (0 failures, 1 expected timeout)
- Docs: https://Data-Wise.github.io/flow-cli/
Full Changelog: v7.0.2...v7.1.0
v7.0.1 — Himalaya Neovim Docs + Architecture Fixes
What's Changed
Documentation
- Himalaya Neovim integration — dedicated setup guide, tutorial, and quick reference for in-editor email with AI actions
- Architecture diagram — added em dispatcher (was showing 12, now 13) and himalaya CLI to Layer 0 integrations
- Cross-references — bidirectional links between CLI and Neovim email documentation
- HIMALAYA-SETUP.md — restored CLI-only content; Neovim content split to HIMALAYA-NVIM-SETUP.md
Testing
- 3 new himalaya test suites (automated, headless keybind, interactive)
- File-existence guards for portability (tests skip gracefully when Neovim config not installed)
Maintenance
- v7.0.0 changelog entry added
- File counts updated (148 → 181 test files)
- Version stamps synced across reference docs
Full Changelog: v7.0.0...v7.0.1