Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: Data-Wise/flow-cli
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v7.3.0
Choose a base ref
...
head repository: Data-Wise/flow-cli
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v7.4.0
Choose a head ref
  • 18 commits
  • 54 files changed
  • 3 contributors

Commits on Feb 18, 2026

  1. docs: add em ai/catch to quick-reference, fix catch description

    - Add em ai (4 subcommands) and em catch to QUICK-REFERENCE
    - Add "Reading Options" section (--md, --raw) to QUICK-REFERENCE
    - Update picker keybindings (Ctrl-T=catch, Ctrl-D=delete)
    - Fix em catch <text> → em catch <ID> in MASTER-DISPATCHER-GUIDE
    - Bump EMAIL-TUTORIAL version 7.2.1 → 7.3.0
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    Test User and claude committed Feb 18, 2026
    Configuration menu
    Copy the full SHA
    d73d49a View commit details
    Browse the repository at this point in the history
  2. docs: fix 20+ inaccuracies in EMAIL-TUTORIAL.md

    Major fixes (HIGH priority):
    - em respond --review: replace fabricated fzf picker with actual
      sequential $EDITOR flow (no Ctrl-E/Ctrl-D keybindings exist)
    - em respond: correct "save to cache then review" narrative to
      actual classify → $EDITOR → send flow
    - em read output: replace preview-panel format with actual header
    - Default count: fix 20 → 10 (matches dispatcher)
    
    Medium fixes:
    - Add --html/-H flag teaching alongside em html alias
    - Add Ctrl-T (catch) to Part 4 fzf keybindings throughout
    - Fix em inbox auto-warm claim (only em dash triggers it)
    - Fix cache stats output (add schedules row, Location line)
    - Fix em doctor output (add email-oauth2-proxy, AI backend rows)
    - Fix config precedence to match guide and implementation
    - Fix search description (server-side IMAP first, not client-only)
    - Add em ai auto subcommand to Part 11
    - Add em catch alias 'c' throughout
    - Add em respond --folder to What You Learned and Command Reference
    - Fix AI prompts FAQ (config override, not lib editing)
    - Add quick pulse + column header
    - Also fix guide auto-warm claim for em inbox
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    Test User and claude committed Feb 18, 2026
    Configuration menu
    Copy the full SHA
    7652d4b View commit details
    Browse the repository at this point in the history
  3. docs: add em feature brainstorm, spec, and two-interfaces insight

    Brainstorm 15 em dispatcher feature ideas (thread, snooze, star, move,
    digest, triage, templates, export, actions, stats, rules, follow-ups,
    multi-account, calendar, compose). Spec covers top 5 quick wins.
    
    Added "Two interfaces, one backend" section explaining em vs himalaya-mcp
    coexistence to guide, tutorial, and refcard.
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    Test User and claude committed Feb 18, 2026
    Configuration menu
    Copy the full SHA
    0ce33cd View commit details
    Browse the repository at this point in the history
  4. chore: move brainstorm file to docs/specs/

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    Test User and claude committed Feb 18, 2026
    Configuration menu
    Copy the full SHA
    8eb54da View commit details
    Browse the repository at this point in the history
  5. docs: fix fabricated AI prompts FAQ answer

    The FAQ claimed users could override prompts via
    ~/.config/flow/email-prompts.zsh but no such mechanism exists.
    Corrected to reflect actual state.
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    Test User and claude committed Feb 18, 2026
    Configuration menu
    Copy the full SHA
    0934fb4 View commit details
    Browse the repository at this point in the history
  6. docs: fix fabricated prompt section and add himalaya-mcp cross-ref

    Remove fabricated prompt override mechanism from EMAIL-DISPATCHER-GUIDE
    (same fix as tutorial FAQ). Add "Two interfaces" note to
    MASTER-DISPATCHER-GUIDE em section for consistency across all 4 email docs.
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    Test User and claude committed Feb 18, 2026
    Configuration menu
    Copy the full SHA
    e561381 View commit details
    Browse the repository at this point in the history
  7. docs: update README What's New, add em dispatcher, consolidate sparkl…

    …e notes
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    Test User and claude committed Feb 18, 2026
    Configuration menu
    Copy the full SHA
    051d5e2 View commit details
    Browse the repository at this point in the history
  8. docs: fix lint line-length in README em description

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    Test User and claude committed Feb 18, 2026
    Configuration menu
    Copy the full SHA
    4b9c3f9 View commit details
    Browse the repository at this point in the history

Commits on Feb 19, 2026

  1. docs: fix 546 markdownlint errors across 5 documentation files

    - README.md: 3 errors (line-length, bare code fences)
    - EMAIL-TUTORIAL.md: 50 errors (line-length, code-language, tables)
    - EMAIL-DISPATCHER-GUIDE.md: 107 errors (line-length, blanks-around-fences)
    - REFCARD-EMAIL-DISPATCHER.md: 105 errors (tables, code-language)
    - MASTER-DISPATCHER-GUIDE.md: 281 errors (blanks-around-fences, tables)
    
    All 5 files now pass markdownlint with 0 errors.
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    Test User and claude committed Feb 19, 2026
    Configuration menu
    Copy the full SHA
    75991f9 View commit details
    Browse the repository at this point in the history
  2. chore: update session status and test fixture

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    Test User and claude committed Feb 19, 2026
    Configuration menu
    Copy the full SHA
    3ad5c65 View commit details
    Browse the repository at this point in the history

Commits on Feb 20, 2026

  1. chore: update session status and workflow rules

    - Add dev session boundary rule: STOP after worktree + orchestration plan
    - Add ABORT condition #5 for implementing from dev
    - Update .STATUS with em delete-actions session activity
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    Test User and claude committed Feb 20, 2026
    Configuration menu
    Copy the full SHA
    9197572 View commit details
    Browse the repository at this point in the history

Commits on Feb 21, 2026

  1. feat: em organize commands — star, move, thread, snooze, digest (#402)

    * feat: add em star/starred for flagged email toggle
    
    - em star <ID> toggles Flagged IMAP flag (star/unstar)
    - em starred lists all flagged emails in current folder
    - Ctrl-F keybind in em pick for quick star toggle
    - Ctrl-M keybind in em pick for move (wired, impl next)
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * feat: add em move with fzf folder picker
    
    - em move <ID> [folder] moves email to target folder
    - fzf folder picker when no folder specified
    - Safety confirmation before move
    - _em_hml_move adapter function for himalaya message move
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * feat: add em thread for conversation view
    
    - em thread <ID> shows conversation thread
    - Parses Message-ID, In-Reply-To, References headers
    - Falls back to subject-based search for thread discovery
    - Chronological display with current message highlighted
    - _em_hml_headers adapter for raw header extraction
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * feat: add em snooze/snoozed for email reminders
    
    - em snooze <ID> <time> snoozes email (2h, 1d, tomorrow, monday, etc.)
    - em snoozed lists pending snoozes with ready/waiting status
    - Moves to Snoozed IMAP folder + persists to ~/.flow/email-snooze/
    - Optional terminal-notifier for macOS desktop notifications
    - Time parser handles hours, days, weeks, day names
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * feat: add em digest for AI-grouped email summary
    
    - em digest shows today's emails grouped by priority (AI)
    - em digest --week for weekly summary
    - AI groups into: Action Required / FYI / Low Priority
    - Fallback to unread/read grouping when AI unavailable
    - Supports -n flag for custom email count
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * docs: add tests, help, and refcard for em quick wins
    
    - 13 new tests: function existence, time parser, help coverage
    - All 108 tests pass (was 95, +13 new)
    - Updated _em_help() with ORGANIZE section (7 new commands)
    - Updated REFCARD with new commands, fzf keybinds, examples
    - Updated command count: 20 → 27
    - Marked ORCHESTRATE phases as DONE
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * fix: reorder snooze time parser to prevent glob shadowing literals
    
    The *w) glob pattern in _em_snooze_parse_time() was matching
    "tomorrow" (ends in 'w') before the literal tomorrow) case could
    be reached, causing `em snooze ID tomorrow` to snooze for 0 weeks
    (= now) instead of tomorrow 9am.
    
    Moved literal matches (tomorrow, day names) before glob patterns
    (*h, *d, *w). Also adds e2e automated and interactive test suites
    (51 automated tests, 24 interactive dogfood tests).
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * fix: route interactive tests through zsh with plugin loaded
    
    em is a ZSH function, not a standalone command. The interactive
    test script (bash) now uses a zsh_run() helper that sources the
    plugin before executing em commands.
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * fix: resolve 5 bugs found in interactive dogfood testing
    
    - Digest: split date on space not "T" (himalaya uses "2026-02-18 10:00")
    - Thread: unfold RFC 822 continuation headers with awk (macOS sed compat)
    - Thread: strip \r from MIME header values before jq filtering
    - Thread: use unfolded headers for subject extraction
    - Thread: filter broad IMAP search results by exact subject match
    - Snoozed: use pipe delimiter instead of TSV (ZSH read IFS issue)
    - Snoozed: move local declaration outside pipeline to prevent leak
    - Search: fix himalaya query syntax (positional, single keyword)
    - Test: update mock date format to match himalaya output
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * fix: make test scripts ZSH-native and portable
    
    - Change shebang from #!/bin/bash to #!/bin/zsh
    - Replace bash-only read -p with printf + read -r (ZSH compat)
    - Interactive tests source plugin directly instead of zsh_run wrapper
    - Automated tests keep zsh subshell pattern for isolation testing
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * fix: source plugin before set -e in interactive tests
    
    Plugin init has benign non-zero returns that kill the script
    under set -e. Source with || true first, then enable set -e.
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * test: add positive starred tests (flagged shown, unflagged excluded)
    
    Previous test only checked empty case. Now also verifies flagged
    emails appear, unflagged are excluded, and count is correct.
    54 automated tests total.
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * fix: star toggle never unstarred — jq compared string id as number
    
    himalaya returns id as string ("249585") but the jq select used
    tonumber, so the flag check never matched and always took the
    "add flag" branch. Changed to --arg string comparison.
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * docs: add organize commands to dispatcher guide, quick-ref, and email guide
    
    Add star, starred, move, thread, snooze, snoozed, digest to all three
    documentation files. Update em pick keybindings (Ctrl-F=star, Ctrl-M=move).
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * fix: interactive move tests hang — pipe 'n' to auto-cancel confirmation
    
    run_test now accepts optional 5th arg for stdin input. Move tests
    (TEST 5, 7) pipe 'n' so the confirmation prompt doesn't block.
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * feat: change inbox indicators — • for unread, ★ for starred
    
    Replace * (ambiguous) with • for unread emails and add ★ column
    for starred/flagged emails. Also fix split("T") → split(" ") for
    himalaya date format in em-render.zsh and em pick.
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * refactor: compact indicator layout — pack •★+ without gaps
    
    Build indicator string in jq (join, no spaces for absent flags).
    Manual display-width padding handles unicode multi-byte alignment.
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * docs: update all indicator references to •★+ compact format
    
    - Replace `*` with `•` for unread across 5 doc files
    - Add `★` starred indicator to legends and examples
    - Update fzf picker examples with compact layout
    - Add CHANGELOG entry for organize commands + indicator redesign
    - Clean up snooze test data
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * fix: resolve 3 blocking PR review issues
    
    - Fix _em_star jq string/number type mismatch (toggle was always adding Flagged)
    - Fix printf format injection in _em_move confirmation prompt
    - Remove ORCHESTRATE file (merge cleanup per workflow rules)
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    ---------
    
    Co-authored-by: Test User <test@example.com>
    Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
    3 people authored Feb 21, 2026
    Configuration menu
    Copy the full SHA
    e3a90fd View commit details
    Browse the repository at this point in the history
  2. feat: em delete, move, restore, flag, todo, event + 10 tutorials (#403)

    * docs: add spec for em delete, move, restore + enhanced actions
    
    7 new em commands (delete, move, restore, todo, event, flag, unflag),
    restructured fzf multi-select picker, and 4 new test files planned.
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * docs: resolve spec open questions with design decisions
    
    D1: Add FLOW_EMAIL_TRASH_FOLDER config (default: Trash)
    D2: Use macOS default calendar (no config needed)
    D3: Use default Reminders list (no config needed)
    D4: Action menu on multi-select Enter (not auto-delete)
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * feat: add em delete, move, restore, flag, todo, event commands
    
    Implement 7 new email management commands in the em dispatcher:
    - delete/del/rm: move to Trash with --folder, --query, --pick, --purge modes
    - move/mv: move between folders with --from flag
    - restore: move from Trash back to INBOX (or --to target)
    - flag/fl & unflag: toggle Flagged IMAP flag
    - todo/td: AI-powered action item extraction with Reminders.app integration
    - event/ev: AI-powered calendar event extraction with Calendar.app integration
    
    Adapter layer (em-himalaya.zsh): _em_hml_delete, _em_hml_move, _em_hml_expunge
    AI layer (em-ai.zsh): _em_ai_todo_prompt + [todo]=15 timeout
    
    Safety model: [y/N] default No for delete, full "yes" required for --purge.
    36 new tests across 4 test files (12+8+10+6), all passing.
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * docs: update 4 doc files for em delete/move/restore/flag/todo/event
    
    - REFCARD-EMAIL-DISPATCHER.md: mindmap (27 commands), new command table
      rows, architecture diagram, fzf keybinds, safety section, examples
    - QUICK-REFERENCE.md: new Manage section, updated fzf keybinds
    - EMAIL-TUTORIAL.md: new Part 12 (7 steps), updated stats/checklists
    - EMAIL-DISPATCHER-GUIDE.md: expanded Email Management section with
      delete safety levels table, move/restore/flag/todo/event subsections
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * test: add e2e and dogfood tests for em delete/move/restore/flag/todo/event
    
    E2E (20 new tests, sections 8-12):
    - Delete: no-args error, help output, live destructive (--send gated)
    - Move/Restore: no-args errors, help output, round-trip (--send gated)
    - Flag: no-args error, live flag+unflag round-trip
    - Todo/Event: no-args errors, live AI extraction (AI-gated)
    - Aliases: del, rm, mv, fl, td, ev routing
    
    Dogfood (43 new tests, sections 12-19):
    - 15 MANAGE functions exist
    - 3 adapter functions exist (delete, move, expunge)
    - AI todo prompt + timeout validation
    - Help output mentions all new commands + MANAGE section
    - FLOW_EMAIL_TRASH_FOLDER config default
    - 6 dispatcher alias routing tests
    - Safety: delete declines on EOF, confirm returns 1
    - macOS Calendar/Reminder helpers exist
    
    All tests: 36/36 unit, 161/161 dogfood, 35/42 e2e (2 pre-existing AI, 5 expected skips)
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * docs: update MASTER-DISPATCHER-GUIDE, CLAUDE.md, .STATUS for em delete actions
    
    - MASTER-DISPATCHER-GUIDE: add 7 new em commands to table (20→27),
      add FLOW_EMAIL_TRASH_FOLDER config, add delete safety docs
    - CLAUDE.md: update test file count (137→141), update date
    - .STATUS: add session activity, update worktree table
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * docs: add FLOW_EMAIL_TRASH_FOLDER to REFCARD config table
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * docs: add 10 tutorials for undocumented dispatchers and ADHD commands
    
    Tutorials 35-44 covering em CLI, em delete actions, mcp, r, qu, v/vibe,
    obs, g, ADHD daily routine (morning/js/timer), and quick capture
    (catch/inbox/crumb/trail). Updates index.md learning path, mermaid
    diagram, and mkdocs.yml navigation with new ADHD & Productivity section.
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * chore: update demo-course concepts.json fixture timestamp
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    * fix: remove duplicate functions and sanitize AppleScript inputs
    
    - Remove ~686 lines of dead code (duplicate function block that was
      shadowed by canonical definitions later in the file)
    - Sanitize $title and $location before AppleScript interpolation to
      prevent injection via crafted email subjects
    - Update dogfood tests to match canonical function list
    
    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    
    ---------
    
    Co-authored-by: Test User <test@example.com>
    Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
    3 people authored Feb 21, 2026
    Configuration menu
    Copy the full SHA
    405e824 View commit details
    Browse the repository at this point in the history
  3. chore: update session status and workflow rules

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    Test User and claude committed Feb 21, 2026
    Configuration menu
    Copy the full SHA
    daedd5a View commit details
    Browse the repository at this point in the history
  4. chore: bump version to v7.4.0 for release

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    Test User and claude committed Feb 21, 2026
    Configuration menu
    Copy the full SHA
    6d487b2 View commit details
    Browse the repository at this point in the history
  5. Merge pull request #404 from Data-Wise/dev

    Release: v7.4.0 — 31 Email Commands
    Data-Wise authored Feb 21, 2026
    Configuration menu
    Copy the full SHA
    b989d37 View commit details
    Browse the repository at this point in the history
  6. fix: bump FLOW_VERSION to 7.4.0 in plugin entry point

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    Test User and claude committed Feb 21, 2026
    Configuration menu
    Copy the full SHA
    50da1f7 View commit details
    Browse the repository at this point in the history
  7. Merge pull request #405 from Data-Wise/dev

    fix: bump FLOW_VERSION to 7.4.0
    Data-Wise authored Feb 21, 2026
    Configuration menu
    Copy the full SHA
    68bd87b View commit details
    Browse the repository at this point in the history
Loading