Releases: agenticmail/enterprise
v0.5.614 — Persistent typing indicator (Telegram/WhatsApp)
Telegram/WhatsApp "typing…" now stays visible for the whole agent turn (was a one-shot ping that expired after ~5s). Self-refreshing every 4s, stops on turn completion / error / 15-min cap. Matches the open-source bridge behavior. npm: @agenticmail/enterprise@0.5.614.
v0.5.613 — Permanent per-agent workspace (never /tmp)
Agents now always work from a PERMANENT, neat, cross-platform workspace
Agents were saving files (e.g. email templates) to /tmp/agents/<id>/media, which the OS wipes on reboot — work silently lost. Fixed.
- New canonical workspace helper:
~/.agenticmail/workspaces/<agentId>/(override viaAGENTICMAIL_WORKSPACE_DIR), built withos.homedir()+path.join()so it works on mac, linux, and windows. - Neat layout created on init:
media/ files/ templates/ exports/ projects/ data/ tmp/(+WORKSPACE.md). - Removed every
/tmp/agents/os.tmpdirfallback (WhatsApp/Telegram media, messaging-poller, calendar state, WhatsApp auth creds — now per-agent). createAllToolsprovisions the workspace fromagentIdso no path can land in /tmp; path-sandbox allowed dirs are cross-platform now.- On creation the workspace is provisioned, its location saved to the agent's memory, and documented in the system prompt +
AGENTS.md.
npm: @agenticmail/enterprise@0.5.613.
v0.5.612 — Compaction fixes + notifications + 1M+ models
Context compaction — agents no longer "wake up dumb"
- Summarizer now receives the transcript in chronological order (was importance-sorted, scrambling cause→effect — the biggest regression).
- Adaptive summary size
[6000, 16000]tokens (was a fixed 4096). - Imperative
## Next Steps+ stronger resume wrapper so the agent continues immediately.
Compaction is now visible
compaction_start/compaction_endstream events +context_compactionactivity event for the dashboard.- Throttled Telegram heads-up to trusted/manager chats on compaction start; manager email opt-in via
compactionNotify.email.
Model catalog refreshed (1M+ context)
- GPT-5 family (1M), Gemini 3 Pro (2M) / 3 Flash (1M), Grok 4.1 / 4.1 Fast (2M); newest flagships listed first.
Packaging
.npmignoreexcludeslogs/,*.log,test-*.mjs(0.5.611 shipped the workinglogs/dir; deprecated). 0.5.612 is clean.
Published to npm as @agenticmail/enterprise@0.5.612.
v0.5.601 — Windows bash tool + media-message crash + deps spam fixes
Windows reliability fixes
Agent bash tool ran nothing on Windows
bash and the code-sandbox hardcoded shell: '/bin/bash'. On Windows there is no /bin/bash — Node resolved it to C:\bin\bash (nonexistent), so every command failed ENOENT → exit-code 1 → empty output. Agents appeared unable to run any shell command.
- New shared
shell-resolver.ts: POSIX honours$SHELLthen/bin/bash; Windows locates git-for-windows bash (usr\bin\bash.exepreferred for full MSYS env + coreutils →bin\bash.exe→bashon PATH). Override withAGENTICMAIL_BASH_PATH. /tmpalignment: git-bash'susertemp/tmp(→%TEMP%) diverged from Node's drive-relative/tmp(C:\tmp), so files written by thewritetool were invisible to a laterbashread. The resolver setsTMP/TEMPfor the subprocess so both agree.
[chat] Cannot read properties of undefined (reading 'slice')
Caption-less media messages (photo/voice-note) arrived with messageText undefined; .slice() threw and killed the chat turn. Normalized to '' at handler entry.
[deps] startup spam
Windows install picked one package manager and failed if it lacked the package (VB-CABLE/nircmd are choco/scoop-only), re-attempting every restart.
- Now tries winget → choco → scoop until one carries the tool.
- Audio/OCR/voice tools marked optional — quiet one-liner on failure, not a warning.
- Skip-cache (
~/.agenticmail/deps-state.json) avoids re-attempting doomed installs for 14 days. - Removed bogus
sox.soxwinget id.
Upgrade
npm install -g @agenticmail/enterprise@latest
pm2 restart all --update-env
v0.5.599 — agent picks the right email to reply to
Fixed: an IMAP-configured agent receiving an inbound email dispatch was hardcoded to use gmail_reply (Gmail OAuth tool) with messageId — but IMAP agents have email_reply which takes a UID. With no concrete UID in the prompt, the agent searched her inbox and replied to an unrelated message (e.g. a Google Security alert) instead of the triggering email. Now: poller dispatches the IMAP UID, prompt routes to the right tool with the right arg per provider. Upgrade: npm i -g @agenticmail/enterprise@LATEST && pm2 restart enterprise.
v0.5.598 — fetchOne uses correct 3-arg signature
Final piece of the imapflow UID puzzle: fetchOne wants the UID as first arg and { uid: true } as the THIRD arg, NOT { uid: range } as the first arg like fetch() iterator does. email_reply / email_read / email_forward were all throwing 'Command failed'. Now fixed. Upgrade: npm i -g @agenticmail/enterprise@LATEST && pm2 restart enterprise.
v0.5.597 — email_read uses source: true
imapflow 1.3.x rejects source: { maxBytes: N } with 'Command failed'. Switched to source: true. Fixes email_read errors and the retry loops they triggered. Upgrade: npm i -g @agenticmail/enterprise@LATEST && pm2 restart enterprise.
v0.5.596 — email tools fetch by UID; document Sent Mail folder
Fixed the same imapflow UID-vs-sequence bug in five smtp-email tools (emailRead, emailReply, emailForward, emailSearch, emailList). Agents were getting 'Email UID X not found' for valid UIDs above mailbox.exists. Tool descriptions for email_search/read/list now call out '[Gmail]/Sent Mail' so the agent knows where to find its own outbound messages. Upgrade: npm i -g @agenticmail/enterprise@LATEST && pm2 restart enterprise.
v0.5.595 — IMAP body extraction works on imapflow 1.3+
imapflow 1.3.x stores MIME type as a single 'type' field ('text/plain'), not split into type+subtype. My match was looking for the split form, never found text parts, and emails delivered empty bodies to the agent. Now matches both shapes. Single-part fallback added. Upgrade: npm i -g @agenticmail/enterprise@LATEST && pm2 restart enterprise.
v0.5.594 — IMAP fetch by UID (not sequence)
imapflow's fetch() treats a bare string range as sequence numbers, not UIDs, even with uid:true in options. Switched to fetch({uid: ''}, {...}). Upgrade: npm i -g @agenticmail/enterprise@LATEST && pm2 restart enterprise.