You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Compile the entire CLI from a closed-world registry of 106 commands and 140 legal argument shapes, replacing hand-written conflict rules, error-hint tables and raw-argv scanning with shapes the binary can enumerate
Require arguments to follow their command — there are no global flags before it — and remove -h along with every short flag
Make --log a repeatable closed enum, so --log a,b becomes --log a --log b
Replace the suggestion set sub-subcommands with an --action argument whose operands are named flags, so a triage, case or notification suggestion is one flat shape
Require --confirm on doctor repair as an argument shape rather than rejecting it as a business error
Make --help list every legal argument combination of that command at once, and --docs render the whole reference
Derive a message's identity from its raw RFC822 bytes instead of its Message-ID, so byte-identical copies converge on one record and a reused Message-ID no longer collides two unrelated mails
Refund the --max-new-messages and byte budget spent on cross-mailbox duplicates, and report candidate_count_is_upper_bound from pull --dry-run since recognizing a duplicate needs the body a dry run never fetches
Abort a push step with the new imap_uidvalidity_changed error before issuing any STORE or MOVE against stale UIDs
Detect a UIDVALIDITY reset during pull, discard the stale cursor, force a full reconcile, and report uid_validity_reset_count and the affected mailboxes
Move every remaining location of a multi-location message instead of skipping the whole move when one copy already sits in the target, and persist flag state after each location so a later failure keeps earlier progress
Reject conflicting per-mailbox archive steps with the new archive_action_conflict error as a preflight, before any notification or case write lands locally
Allocate a random opaque push id per draft-send lifecycle so re-sending a draft records new sent evidence instead of overwriting the earlier one
Stop escalating failures that provably preceded any remote call into the manual-reconciliation push_remote_outcome_unknown state
Support Bcc recipients — kept in the local draft, Review UI, push preview and the sender's private evidence, stripped from SMTP DATA, retained in the SMTP envelope
Stop re-rendering hand-edited contact and draft files from their structs; a frontmatter edit now moves only the keys whose values changed, preserving comments, key order, quote styles and body, including through contact rename
Report retryable: false on a partial push --confirm envelope, since exit 3 is never permission to retry a batch; per-item retryable inside failures remains the field that says what to re-queue
Stop printing "***" from config show for a secret that was never set, which had disagreed with config get and implied a credential was configured
Install the skill's bundled references/http-api.md alongside SKILL.md, which skill install had been dropping while SKILL.md pointed at it
Exit 0 on a broken pipe such as --docs | head, matching the AFDATA emitter
Document exit codes 3 and 4, the cli_invocation_invalid and output_setup_failed defect codes, the byte-exact identity model, and the fact that push ids are opaque
Relock onto agent-first-data 0.31.0 and agent-first-slug 0.6.2, and cover every declared shape with a synthetic-invocation test that fails when a builder arm reads an argument id its shape cannot supply