Conversation
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…490) * docs(spec): add flow-cli restructure proposal and decision report * docs(orchestrate): add Phase 1 plan for flow-cli restructure * test(teach): add characterization tests for dispatcher routing * refactor(teach): split teach-dispatcher.zsh into loader + 10 modules * test(teach): update manpage guard and dogfood for modular dispatcher * chore(status): record Phase 1 restructure progress --------- Co-authored-by: Test User <test@example.com>
…legacy (#491) Adds agy ahead of gemini in the em-ai fallback chain (claude -> agy -> gemini -> none), since Google's gemini CLI is deprecated upstream in favor of Antigravity. gemini is retained, not removed, for existing FLOW_EMAIL_AI=gemini configs. agy requires a validation wrapper, not a drop-in swap: it has no clean-output flag (appends an unrequested markdown status block to every response) and has been observed to exit 0 with a canned "system operational" response on degenerate input rather than failing loudly. _em_ai_agy_clean_output/_em_ai_agy_looks_valid strip and sanity-check its output before use. Also fixes a more serious bug found during live verification: capturing agy's output via $(...) command substitution hangs or dies silently, independent of `timeout` -- agy leaves a descendant process attached to its stdout pipe, so $(...) blocks waiting for EOF that never comes. Fixed by routing output through a temp file instead. Updates doctor's health check and the full doc surface for the --backend/FLOW_EMAIL_AI option set (guide, cookbook, doctor reference, master dispatcher/API/architecture docs, refcard, quick reference, tutorial, man page, changelog) -- left docs/specs/* (historical) and himalaya.nvim's separate :HimalayaAi gemini setting untouched. Also registers tests/test-em-ai-switch.zsh in run-all.sh, which had never been wired into the suite. Co-authored-by: Test User <test@example.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…rability Spec from this session's em ADHD-UX audit: a P0 duplicate-case-label bug (em flag silently never reaches _em_star's toggle logic) plus P1/P2 discoverability findings (no topic-scoped help, undocumented 3-tier confirmation system, alias sprawl, missing undo/recent-folders). Decisions locked via grill: bundle Phase 1+2 into one PR, extend em star to multi-ID, implement in-session (no ORCHESTRATE handoff for this pass). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…492) PR #491 added agy as an em-ai backend but only updated commands/doctor.zsh (flow doctor). em() has its own separate, duplicate help text (_em_help) and inline dependency check (_em_doctor) that still showed --backend claude|gemini with no agy option. Fixes both, keeps gemini labeled as legacy consistent with the rest of that PR. Co-authored-by: Test User <test@example.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…1+2) (#493) Per SPEC-em-ux-refactor-2026-07-07.md, from this session's ADHD-UX audit of em. P0 fix: em()'s dispatch case statement had "star|flag)" bound to _em_star in one section AND "flag|fl)" bound to _em_flag in another, earlier section. Since zsh case matches top-down, `em flag` always resolved to _em_flag (one-way add) and never reached _em_star's toggle logic -- the "flag" alias on the star arm was dead code. Fixed the routing so each command name maps to exactly one function; also removed a harmless duplicate `move|mv)` label. _em_star extended to accept multiple IDs (toggling each independently against one consistent folder snapshot) to match flag/unflag's existing batch capability. Added tests/test-em-flag-star.zsh: routing regression tests (flag/star/ unflag each hit a distinct function), multi-ID parity tests, and a grep-based dead-code guard that specifically detects the same case-label word bound to two different handlers (not just any repeated word -- verified against a false positive on legitimate multi-word aliases). Verified the guard actually catches this exact bug class via a planted- defect positive control (reintroduced the old duplicate label, confirmed the guard fails with the right message, restored the fix). Phase 2: added `em help <topic>` (inbox/compose/organize/manage/safety/ ai/search) so users aren't stuck scanning a ~90-line dump for one thing; no-arg `em help` output is unchanged. Documented the existing 3-tier confirmation system ([y/N/e] / type "yes" / type folder name) in the SAFETY section as an intentional design, not an incidental discovery. Updated MASTER-DISPATCHER-GUIDE.md and the man page to match, including fixing a duplicate `em move` reference row and a stale "em flag is an alias for em star" note that mirrored the same underlying bug. Co-authored-by: Test User <test@example.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Bumps FLOW_VERSION, package.json, CLAUDE.md, 23 man pages via scripts/release.sh. Moves CHANGELOG Unreleased section to the 7.16.0 entry in both root and docs mirror. Refreshes docs/index.md's What's New callout and footer (was stale at 7.15.0).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Release v7.16.0 — agy em-ai backend + em ADHD-UX audit fixes.
Added
agy(Antigravity CLI) as an em-ai backend, ahead ofgemini(now legacy) in the fallback chain (claude -> agy -> gemini -> none). Output is automatically cleaned and sanity-checked before use, since agy has been observed to exit successfully with a canned response on degenerate input.em help <topic>— filter help output to one section instead of the full ~90-line dump.em help's SAFETY section now documents the three confirmation tiers as an intentional design.Fixed
em flag/em stardead-code bug — a duplicatecaselabel silently madeem flagalways resolve to the wrong handler. Fixed the routing;em starextended to accept multiple IDs likeflag/unflag.em help/em doctorhad their own separate, missed copy of the AI backend list.Changed
teachdispatcher — split into a loader + 10 focused modules.Full details:
CHANGELOG.md. Design doc:docs/specs/SPEC-em-ux-refactor-2026-07-07.md.Test plan
mkdocs build --strictclean🤖 Generated with Claude Code