Skip to content

Add CLI and TUI posting moves - #173

Merged
robzolkos merged 1 commit into
mainfrom
feature/email-move-postings
Aug 19, 2026
Merged

Add CLI and TUI posting moves#173
robzolkos merged 1 commit into
mainfrom
feature/email-move-postings

Conversation

@robzolkos

@robzolkosrobzolkos commented Aug 19, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add hey move <posting-id>... --to <box> with bulk moves and destination lookup by name, kind, or ID
  • add an m destination picker to the TUI while preserving the existing one-key box actions
  • exclude the current box and Bubble Up from the picker, reject Bubble Up in the CLI, and avoid same-box TUI requests that could change seen state
  • document posting IDs, destination semantics, and the new command across help, README, API coverage, and the embedded HEY skill

Behavior

Supported destinations are Imbox, The Feed, Set Aside, Reply Later, and Paper Trail. Moving to boxes other than Imbox marks the posting seen, which the TUI explains before confirmation. Bubble Up continues to use HEY's scheduled flow.

Validation

  • make check
  • make race-test
  • smoke test package compilation
  • local build and command help
  • authenticated production validation:
    • moved and restored one posting through the CLI
    • moved and restored two postings in one bulk CLI request
    • moved a posting from Imbox to Paper Trail through the TUI and restored it
    • confirmed destination box membership after every move and restore
    • confirmed Bubble Up is rejected before a move request

All production-validation postings were restored to Imbox.


Summary by cubic

Adds posting moves to both the CLI and TUI so users can move messages between HEY boxes without the web app. Moving to non‑Imbox marks messages seen; Bubble Up is excluded and must use HEY’s scheduled flow.

  • CLI: hey move <posting-id>... --to <box> supports bulk IDs and resolves destinations by name, kind, or ID; rejects Bubble Up; prints a concise summary; adds help and breadcrumbs.
  • TUI: press m to open a destination picker; excludes the current box and Bubble Up; Enter moves, Esc cancels; explains that non‑Imbox moves mark the message seen; existing one‑key moves remain and skip no‑op same‑box requests.
  • API/docs/tests: uses /postings/moves.json via SDK Postings().Move; updates .surface, README, help text, skills/hey/SKILL.md, and API-COVERAGE.md; adds unit and smoke tests for success and error cases.

Written for commit be4f041. Summary will update on new commits.

Review in cubic

CopilotAI balanced review requested due to automatic review settings August 19, 2026 04:18

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds bulk posting moves to the CLI and an interactive destination picker to the TUI.

Changes:

  • Adds hey move with destination resolution and Bubble Up rejection.
  • Adds the TUI move picker while preventing same-box moves.
  • Updates tests, help, documentation, API coverage, and skill metadata.

Tip

If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
.surfaceRegisters the move command surface.
API-COVERAGE.mdDocuments move endpoint coverage.
README.mdDocuments CLI and TUI moves.
internal/cmd/box.goAdds a move breadcrumb.
internal/cmd/help.goAdds move to categorized help.
internal/cmd/help_test.goUpdates help expectations.
internal/cmd/move.goImplements the move command.
internal/cmd/move_test.goTests move behavior and errors.
internal/cmd/root.goRegisters the move command.
internal/tui/mail.goIntegrates posting moves into mail.
internal/tui/mail_test.goTests picker and same-box behavior.
internal/tui/move.goImplements the destination picker.
internal/tui/tui_test.goTests picker input ownership.
skills/hey/SKILL.mdDocuments move usage for agents.
tests/smoke/boxes_test.goAdds end-to-end move coverage.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@robzolkos
robzolkos merged commit b45c326 into mainAug 19, 2026
25 checks passed
@robzolkos
robzolkos deleted the feature/email-move-postings branch August 19, 2026 04:24
Sign up for freeto 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.

2 participants

@robzolkos