Skip to content

docs(skills/email/himalaya): document v1.2.0 folder.aliases syntax - #19882

Merged
teknium1 merged 1 commit into
mainfrom
hermes/hermes-8c54fd4a
May 4, 2026
Merged

docs(skills/email/himalaya): document v1.2.0 folder.aliases syntax#19882
teknium1 merged 1 commit into
mainfrom
hermes/hermes-8c54fd4a

Conversation

@teknium1

@teknium1 teknium1 commented May 4, 2026

Copy link
Copy Markdown
Contributor

Salvage of #16091 by @stevenchanin onto current main.

Summary

Himalaya v1.2.0 silently ignores the pre-1.2 [accounts.NAME.folder.alias] sub-section (singular alias) syntax — TOML parses fine, but the alias resolver never reads the section. Gmail and similar non-canonical folder layouts ([Gmail]/Sent Mail etc.) are broken for any user who updated himalaya. Update the bundled skill to document the v1.2.0+ dotted-key syntax (folder.aliases.inbox = "INBOX") with a 'heads up' callout about the silent ignore, plus examples and a references/configuration.md update.

Conflict resolution during salvage

Main's skill description differs from the PR branch; kept main's concise description and picked the PR's version bump (1.0.0 → 1.1.0) and content.

Changes

  • skills/email/himalaya/SKILL.md: v1.2.0+ folder.aliases syntax + callout
  • skills/email/himalaya/references/configuration.md: Gmail alias example

Original PR: #16091

The bundled himalaya skill documented folder aliases using a stale
TOML schema (`[accounts.NAME.folder.alias]`, singular) that himalaya
v1.2.0 silently ignores. The TOML parses without error, but the
alias resolver never reads the sub-section — every lookup then falls
through to the canonical folder name.

Source: in `pimalaya/core` (the `email-lib` crate himalaya v1.2.0
depends on, currently v0.27.0), `email/src/folder/config.rs` defines
`FolderConfig { aliases: Option<HashMap<String, String>>, ... }`
(plural, no `#[serde(rename)]`/`alias` aliases, no
`deny_unknown_fields`), and `account/config/mod.rs::get_folder_alias`
returns the input verbatim when no alias is found. So the singular
`alias` key deserializes to nothing and lookups silently fall
through.

On Gmail (where `sent` resolves to `[Gmail]/Sent Mail`, not `Sent`)
this means save-to-Sent fails *after* SMTP delivery already
succeeded, and `himalaya message send` exits non-zero. Any caller
(agent, script, user) that retries on that exit code will re-run
the entire send — including SMTP — producing duplicate emails to
recipients. Silent ignore + caller-level retry is significantly
worse than a config that just doesn't work.

This commit updates SKILL.md and references/configuration.md to the
v1.2.0 `folder.aliases.X` syntax (plural, dotted keys, directly
under the account section), adds a Gmail-specific block with the
`[Gmail]/Sent Mail`-style mapping, and adds notes on the failure
mode so future readers don't hit the same trap. SKILL.md version
bumped 1.0.0 → 1.1.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@teknium1
teknium1 merged commit a919269 into main May 4, 2026
5 of 6 checks passed
@teknium1
teknium1 deleted the hermes/hermes-8c54fd4a branch May 4, 2026 19:39
@alt-glitch alt-glitch added type/docs Documentation improvements P3 Low — cosmetic, nice to have labels May 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low — cosmetic, nice to have type/docs Documentation improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants