Add HTML file input and complete draft exports

JR
1mo ago
+1789-127

Summary

  • add --message-html-file to compose, reply, forward, bulk reply, and draft editing with regular-file and UTF-8 validation
  • add byte-exact draft show --html output and safe ordered attachment metadata
  • add all-or-nothing draft export bundles containing exact HTML, safe JSON, and verified attachment downloads, with narrowly guarded same-draft --force replacement
  • document the new surfaces in command help, README, and the bundled HEY skill

This branch builds independently against the released HEY SDK v0.27.0 and does not add a module replacement.

Testing

  • TMPDIR=/tmp GOWORK=off make release-check
  • gitleaks v8.21.2
  • coverage floor check: 83.115% (17,081 / 20,551 statements; required 70.8%)
  • Linux amd64 and Windows amd64 cross-builds
  • ARM64 smoke-test compilation

Summary by cubic

Adds --message-html-file to compose, reply, forward, bulk reply, and draft edit so raw HTML messages can be read from a local file instead of passed inline, with regular-file and UTF-8 validation. Adds byte-exact draft show --html output with safe attachment metadata, plus a new draft export command that writes an all-or-nothing bundle containing the exact HTML, a JSON manifest, and SHA-256-verified attachment downloads.

New Features

  • draft export writes a hey-draft-export/v1 bundle into a new directory and commits it atomically on macOS and Linux, refusing to overwrite an existing one; --force swaps the new bundle in atomically where the OS supports it.
  • draft show --json now includes attachment filename, content type, and byte size, without internal locators.
  • Documented the new surfaces in command help, README, and the bundled HEY skill.