Skip to content

Conversation

@Data-Wise
Copy link
Owner

Summary

  • Himalaya Neovim integration documentation (setup guide, tutorial, refcard)
  • Architecture diagram updated (em dispatcher added, 12→13)
  • Cross-reference links between CLI and Neovim email docs
  • 3 new test suites with file-existence guards
  • HIMALAYA-SETUP.md restored to CLI-only content
  • Version bump: v7.0.0 → v7.0.1

Changes since v7.0.0

Test plan

  • ./tests/run-all.sh — 45/45 passing
  • mkdocs build --strict — 0 warnings
  • All cross-references verified
  • No ZSH code changes (docs + tests only)

🤖 Generated with Claude Code

Test User and others added 23 commits February 11, 2026 22:37
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Layer 0 of hybrid email strategy — himalaya-vim + ~50-line Lua AI wrapper.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add HIMALAYA-SETUP.md with prerequisites, quick start, keybind reference,
AI wrapper usage, and troubleshooting. Update orchestration plan to reflect
completed Phase 1, 2, and 4 tasks (mountaineer.nvim archived, not usable).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Automated suite (36 assertions): prerequisites, file existence, plugin spec,
AI wrapper module, keymaps, Neovim headless loading, and documentation.
Interactive suite (22 guided tests): live email operations, AI actions,
floating windows, and which-key integration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace classify with TL;DR + decision prompt, add external config file
(~/.config/himalaya-ai/config.lua) for backend/obsidian settings, and
add new result split keybinds: paste into reply (p), send to Obsidian (o),
re-run with edited prompt (r), append to file (a). Update setup guide
to document v2 features and config options.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds :HimalayaAi umbrella command with 5 subcommands:
- status: dashboard showing backend, vault, prompts, config state
- prompts: interactive buffer with e/v/q keybinds
- edit: vsplit config.lua with BufWritePost auto-reload
- validate: test-run prompts against current buffer or sample email
- set: change backend/vault/save_dir/format with validation + persist

Implementation complete in ~/.config/nvim/lua/himalaya-ai.lua with
context-aware tab completion for all subcommands and arguments.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix stale classify→tldr references, update floating window→vsplit checks.
Add automated tests for config validation, v2 functions, and headless
command registration/completion. Add interactive dogfooding tests for
:HimalayaAi commands, result split keybinds (o/r/a/p), and tab completion.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…rompt brainstorm

Telescope was not installed, causing E5108 on folder picker (gm).
Switch himalaya_folder_picker to "native" (zero deps). Update tests
to be picker-agnostic. Add brainstorm doc for interactive AI prompts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add vim.ui.input gate on draft_reply (asks for instructions before
generating). Add new M.compose() action with <leader>mw keybind.
Configurable per-action via ask_before table. Fix persist_config
same-value bug. 64 automated tests passing (9 new v3 tests),
42 interactive tests (7 new).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update display test from vsplit to configurable open_display_buffer
- Add result_display to set key completion test (5 keys now)
- Add result_display values test (split/tab)
- Fix unused result_win variable and long line luacheck warnings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add TEST 29-30: set result_display tab + verify tab mode
- Add TEST 45: result_display tab completion (split/tab)
- Update TEST 44 expected to include result_display key
- Renumber tests 29-42 → 31-44 to accommodate new tests
- Total: 45 interactive tests, 65 automated tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add :HimalayaAi set command reference with all 5 settings
- Document result_display split/tab option
- Update folder picker default from telescope to native
- Update troubleshooting for native/telescope/fzf-lua picker options

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Track CURRENT_TEST name before each test
- Record failed/skipped test names in arrays
- Display failed and skipped test names in summary
- Enables identifying which tests need attention

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New result split keybinds:
- e: toggle editable (edits apply to y/s/a/o/p via get_buf_text)
- c: revise with instruction (AI re-runs with revision prompt)
- n: next action chain (pick action + source: email or AI result)
- t: send to todo (Obsidian daily note or macOS Reminders)

New global keybinds:
- <leader>mp: prompt picker (vim.ui.select all actions)
- <leader>mi: AI status info (shortcut for :HimalayaAi status)

Config additions:
- todo_target setting (obsidian/reminders/ask) with :HimalayaAi set
- Tab completion for todo_target values

Refactored all result keybinds to use get_buf_text() for dynamic
buffer reads, enabling edit-then-save workflows.

Tests: 76 automated (all pass), 60 interactive

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tests open_result() entirely headlessly via nvim -l:
- Buffer state: buftype, modifiable, filetype, wrap, linebreak
- All 13 keybinds registered (q/Esc/y/s/f/a/o/r/p/e/c/n/t)
- 'e' toggle: modifiable flips on/off correctly
- 'y' copy: get_buf_text() picks up edits after 'e' toggle
- 'c' revise: mocked vim.ui.input, verifies prompt includes
  current buffer text + revision instruction + "(revised)" title
- 'n' chain: mocked vim.ui.select, verifies two-stage picker
  (action + source), both "Original email" and "Current AI result"
- 't' todo: mocked selects + io.open, verifies action item
  filtering (list lines only) and file write
- Conditional: r/p absent without context, e/c/n/t always present

Expose open_result as M._open_result for test access.
Integrated into automated test runner (77 total, all pass).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Rewrite HIMALAYA-SETUP.md with all v4 keybinds, width patch, runtime
  settings, and troubleshooting
- Add REFCARD-HIMALAYA.md quick reference card (all keybinds, commands,
  settings, common workflows)
- Add tutorial 33: step-by-step email in Neovim with AI actions
- Add Email nav section to mkdocs.yml
- Add email card to index.md landing page

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Merge duplicate email cards in index.md into single combined card
- Remove duplicate Email nav section in mkdocs.yml (kept dev's with Neovim entries)
- Fix save_dir setting description (path for file saves, not vault subfolder)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add platform detection (macOS/Obsidian/Reminders) to interactive tests
- Auto-skip tests 32/54/55 when required apps not available
- Add error handling section to automated tests (malformed config,
  empty lines, nil context, missing config file)
- Add edge case tests to headless Lua suite (cancellation flows,
  empty input, partial context, config defaults)
- Automated: 83/83 passing, Headless Lua: 83/83 passing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Restore original HIMALAYA-SETUP.md (CLI setup with OAuth2, proxy,
  Keychain, LaunchAgent) that was accidentally overwritten
- Create separate HIMALAYA-NVIM-SETUP.md for Neovim AI email guide
- Move ORCHESTRATE-nvim-himalaya.md to docs/specs/ (planning artifact)
- Update mkdocs nav, index.md, refcard, tutorial cross-references
- Add file-existence guards to all 3 test suites so they skip gracefully
  when ~/.config/nvim/lua/himalaya-ai.lua is not present (CI, other machines)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat: Neovim himalaya email integration with AI wrapper
- CLAUDE.md: test file count 148 → 181
- .STATUS: session updated, nvim-himalaya marked merged
- CHANGELOG.md: added v7.0.0 entry (email dispatcher + nvim integration)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- MASTER-ARCHITECTURE.md: add em dispatcher to diagram (12→13), add
  himalaya CLI to Layer 0 integrations, bump version to v7.0.0
- REFCARD-EMAIL-DISPATCHER.md: add Neovim setup cross-link
- REFCARD-HIMALAYA.md: add CLI dispatcher and tutorial cross-links
- EMAIL-TUTORIAL.md: add tip callout linking to Neovim tutorial
- 33-himalaya-email.md: add CLI email tutorial to Next Steps

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- package.json: 7.0.0 → 7.0.1
- CLAUDE.md: version + last updated
- CHANGELOG.md: v7.0.1 entry (himalaya nvim docs, architecture fixes)
- index.md, MASTER-ARCHITECTURE, MASTER-DISPATCHER-GUIDE,
  REFCARD-EMAIL-DISPATCHER: version stamps updated

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Data-Wise Data-Wise merged commit 3297ebe into main Feb 12, 2026
2 checks passed
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