chore(release): v0.2.19 #32

Merged
jlxq0 merged 1 commit from release/v0.2.19 into main 2026-08-29 14:29:44 +00:00
Owner

Version bump so #30 can be tagged. Julian is waiting on the styled briefing.

What it carries

send_email takes an optional body_html. Absent, the Email object is byte-identical to before. Present, both bodies go out with distinct part ids, textBody naming the plain one and htmlBody the HTML one. HTML with an empty or whitespace body_text is invalid_params, checked inside build_email_object so there is no guard call to omit.

The tool name, description and annotations are unchanged, so tool-scope.sh generates the same deny lines and no mount's scope moves.

#31 tracks the residual: the handler can still discard the builder's error and no test notices. Its own PR, not this one.

Gate

On 1.93.0, the toolchain read from ci.yml, through build-slot.sh: fmt rc=0, clippy -D warnings rc=0, test rc=0, 187 passed.

Version bump so `#30` can be tagged. Julian is waiting on the styled briefing. ## What it carries `send_email` takes an optional `body_html`. Absent, the `Email` object is byte-identical to before. Present, both bodies go out with distinct part ids, `textBody` naming the plain one and `htmlBody` the HTML one. HTML with an empty or whitespace `body_text` is `invalid_params`, checked **inside** `build_email_object` so there is no guard call to omit. The tool name, description and annotations are unchanged, so `tool-scope.sh` generates the same deny lines and no mount's scope moves. `#31` tracks the residual: the handler can still discard the builder's error and no test notices. Its own PR, not this one. ## Gate On `1.93.0`, the toolchain read from `ci.yml`, through `build-slot.sh`: `fmt` rc=0, `clippy -D warnings` rc=0, `test` rc=0, 187 passed.
chore(release): v0.2.19
All checks were successful
CI / tag-ancestry (pull_request) Successful in 4s
CI / cargo (pull_request) Successful in 1m19s
CI / docker (pull_request) Successful in 1m25s
f9517ae2bd
Carries #30: send_email takes an optional body_html. Absent, the Email object
is byte-identical to before. Present, both bodies go out with distinct part
ids. HTML with an empty body_text is invalid_params, checked inside
build_email_object so there is no guard call to omit.

The tool name, description and annotations are unchanged, so tool-scope.sh
generates the same deny lines and no mount's scope moves.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
jlxq0 merged commit 758871d21e into main 2026-08-29 14:29:44 +00:00
jlxq0 deleted branch release/v0.2.19 2026-08-29 14:29:44 +00:00
Sign in to join this conversation.
No reviewers
No labels
waiting-on-julian
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
jlxq0/jmap-mcp!32
No description provided.