Skip to content

Conversation

@Data-Wise
Copy link
Owner

Summary

  • Email section in flow doctor — when the em dispatcher is loaded, checks himalaya (required, version >= 1.0.0), w3m/lynx/pandoc (any-of), glow, email-oauth2-proxy, terminal-notifier, and AI backend (claude/gemini) with config summary
  • Fix mode email categoryflow doctor --fix includes "Email Tools" with brew + pip install support and guided himalaya setup wizard (provider auto-detection for Gmail/Outlook/Yahoo/iCloud)
  • Verbose connectivity testingflow doctor --verbose runs IMAP ping, OAuth2 proxy status, and SMTP config validation (5s timeout per test)
  • Bugfix: _doctor_select_fix_category crash${[[ ... ]]} inline plural pattern inside associative array assignments caused segfault; replaced with pre-computed suffix variables

Test plan

  • 13 unit tests — function existence, conditional gates, tracking arrays, config summary, semver comparison
  • 20 E2E tests — full PATH manipulation with fake binaries, isolated XDG config, missing/present dep scenarios
  • 23 interactive headless tests — confirm branching, menu selection, install simulation, guided setup wizard, cancel/edge cases
  • Full suite regression — 45/45 passing (1 expected timeout)
  • Plugin source validation — flow.plugin.zsh loads cleanly

🤖 Generated with Claude Code

Test User and others added 5 commits February 12, 2026 10:56
Add conditional EMAIL section to `flow doctor` that checks himalaya
and all email dependencies when the `em` dispatcher is loaded.

- Phase 1: _doctor_check_email() with himalaya (required+version),
  HTML renderer (any-of w3m/lynx/pandoc), glow, email-oauth2-proxy,
  terminal-notifier, AI backend checks + config summary
- Phase 2: Email category in --fix mode menu with brew/pip install
- Phase 3: _doctor_email_connectivity() for --verbose mode (IMAP,
  OAuth2 proxy, SMTP config validation with 5s timeouts)
- Phase 4: _doctor_email_setup() guided config wizard with provider
  auto-detection (Gmail, Outlook, Yahoo, iCloud) and OAuth2 guidance
- Phase 5: Updated _doctor_help() with EMAIL section docs
- Phase 6: 13 tests in test-doctor-email.zsh (all passing)

Zero overhead when em() not loaded. Existing 22 doctor tests pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
20 tests across 8 categories: output structure, section ordering,
dep dedup, mode combinations, missing dep simulation (PATH manipulation),
fix mode menu, em doctor independence, and config env overrides.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix zsh "bad output format specification" crash in
_doctor_select_fix_category — the ${[[ ... ]]} inline plural
pattern is invalid inside associative array assignments.
Replace with pre-computed suffix variables.

Add 23 interactive headless tests covering:
- _doctor_confirm yes/no/empty branching
- _doctor_select_fix_category menu selection
- _doctor_fix_email with fake brew/pip
- _doctor_email_setup wizard (Gmail, custom, cancel)
- --fix -y end-to-end auto-yes bypass

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- doctor.md: EMAIL dep table, verbose connectivity, fix mode email
  category, guided setup wizard, updated key functions + see also
- REFCARD-DOCTOR.md: EMAIL category (#6), email in fix menu, --yes
  flag, email integration entry, updated version
- CHANGELOG.md: v7.0.2 entry for email doctor integration feature

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace last $([[ ... ]]) inline plural pattern at line 476 with
pre-computed suffix variable, matching the safe pattern used at
lines 561, 571, 586, 595. Remove ORCHESTRATE-em-doctor-integration.md
session artifact from repo root.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Data-Wise Data-Wise merged commit 0cbb52d into dev Feb 12, 2026
1 check passed
Data-Wise pushed a commit that referenced this pull request Feb 12, 2026
Update What's New banner, footer version, QUICK-REFERENCE version,
and CLAUDE.md status to v7.0.2 following PR #379 merge.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Data-Wise Data-Wise mentioned this pull request Feb 12, 2026
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant