Changelog
How SailFish has grown
v11.3.1 (2026-07-17) (Latest)
Welcome-page “first meeting” invite for the birth chat; sub-agent oversized results archived for on-demand read-back; fixes for macOS LAN SSH and OSS delta updates.
Improvements
- ⚡ Welcome “first meeting”: no longer auto-open Hub after Setup; welcome page invites the birth conversation with a wave animation and “Sure / Later”
- ⚡ Sub-agent oversized result archive: results over ~8000 characters are written to scratch with a pointer + summary; the parent can
read_fileon demand - ⚡ OEM
features.bond: enterprise builds can turn off bond tone and playful copy; open-source default remains on - ⚡ Todo TodoService: extract a service class so api/executor/render share one source of truth; soften completed-item checkmarks
- ⚡ Browser assistant UI: selector + single focused panel; tighten terminology and troubleshooting
Bug Fixes
- 🐛 macOS LAN SSH: add Bonjour / mDNS probes to trigger Local Network permission; fix packaged builds hitting
EHOSTUNREACHto VMs / LAN hosts - 🐛 OSS delta updates: use a single Range request (OSS rejects multipart Range); drop pre-install sync backup
- 🐛 Hub session retention: switching to Todos / Companion and back keeps the current Hub session
- 🐛 Browser assistant: fix Windows Firefox Native Host registry path; merge Chromium Chrome/Edge into one selector path to avoid dual green status
- 🐛 Welcome logo: restore infinite float animation
v11.3.0 (2026-07-16)
Ships local secretary todos and full userData backup/restore.
New Features
- 🎯 Local secretary todos:
TODO.jsonreplaces free-formTODO.md; fixed todo Tab beside companion; optional migration prompt from legacy TODO.md - 🎯 Full data backup & restore: Data Management packs the entire userData tree as a zip, with progress, validation, and STORE optimization for already-compressed / large files
- 🎯 CLI install & sandbox: install the
sailfishcommand; share desktop real data with relaxed confirmation by default;--sandboxisolates runtime data while borrowing AI Profiles / credentials - 🎯 SSO sign-in: login / persist / refresh / gating and workbench token access (
features.sso, off by default)
Improvements
- ⚡ Config rolling backups: recover from rolling backups when the main config is corrupt
- ⚡ Interactive attachments & paths: open attachments via click / context menu with typed Lucide icons; local paths in chat and tool_call are clickable
- ⚡ Non-blocking update hint: update prompt moved to a bottom-right badge card
- ⚡ IM inbound rich media: show images inline with vision context; pre-parse documents into documentContext
- ⚡ Session persistence: meta + jsonl incremental checkpoints; async LLM short titles in the task sidebar; titles owned by AgentRecord
- ⚡ Context & risk policy: session-scoped context bar; unified confirm matrix by execution mode; free-zone writes under
/tmpskip confirmation - ⚡ WeChat / Watch / misc: persist QR credentials on confirm and refresh only when the tab is visible; pin failing watches; lazy calendar connect; idle history warm-up; macOS occlusion throttling
Bug Fixes
- 🐛 AI connectivity: retry TLS handshake drops by
err.code; readable test-connection errors; fall back when profileId is invalid - 🐛 WeChat progress messages: send the first body immediately
- 🐛 Command audit / context: expand
~paths to avoid free false negatives; protect skill results; remove per-step tool-result micro-compression - 🐛 UI / CLI / history: textarea measure collapse, artifact splitter mouse release, cold-load pin-to-bottom; protect indexes when sharing userData; scan the watch tree in getAgentRecords
- 🐛 CLI knowledge exit: dispose in-process ORT embedding before exit so knowledge commands no longer SIGABRT
- 🐛 Optional OEM config: use open-source defaults when
oem.config.tsis absent; apply override when present; no longer force-generate the file
v11.2.2 (2026-07-13)
Tasks and companion chats are now split into two dedicated entry points, and the security and command-audit system has been overhauled-consolidated into a single shell-AST channel with user-configurable risk policies and command rules. Under the hood, the conversation layer completes the Conversation aggregate-root refactor, laying the groundwork for upcoming session capabilities.
Improvements
- ⚡ Message-list virtual scroll migrated to virtua: replaces vue-virtual-scroller with built-in height measurement and scroll adjustment, removing hand-rolled FLIP/ResizeObserver compensation and improving stability for dynamic heights + stick-to-bottom streaming (especially on Windows)
- ⚡ FLIP smooth shift when pinned to bottom: after content grows while pinned, apply a reverse translateY on the Virtualizer root then spring back; intentional jump-to-bottom still hard-cuts with a brief FLIP suppress to avoid fighting on start
- ⚡ CLI branded as
sailfish: help/usage match the command name;npm run sailfishis the primary npm entry (sft/cliremain aliases); on macOS install the PATH shim from Settings → Data Management
Bug Fixes
- 🐛 Textarea measure no longer jolts the message list: skip writing style while typing on the same line; only collapse-and-remeasure when deleting shrinks height; stick-to-bottom ResizeObserver only pins when content grows
- 🐛 Streaming stick-to-bottom without micro-jumps or false bounce: chase the bottom with exponential scrollTop approach (no cubic FLIP easing); target changes only increase remain so velocity stays continuous
v11.2.1 (2026-07-12)
Tasks and companion chats are now split into two dedicated entry points, and the security and command-audit system has been overhauled-consolidated into a single shell-AST channel with user-configurable risk policies and command rules. Under the hood, the conversation layer completes the Conversation aggregate-root refactor, laying the groundwork for upcoming session capabilities.
New Features
- 🎯 Agent scratch auto-cleanup: new
scratchCleanupMaxAgeDaysconfig (default 7 days, 0 disables); cleans expired files underagent-workspace/scratch/on startup, keeping.gitkeep; a new "Agent temporary files" card in the data-management page - 🎯 Windows PowerShell uses official AST audit: when the default shell is PowerShell, subcommands are extracted via
Parser::ParseInput, reusing the whitelist and path partitions so cmdlets likeRemove-Itemare no longer flagged high-risk across the board; cmd fallback and parse failures still fall back to regex
Improvements
- ⚡ Scratch cleanup instructions moved to workspace rules: relocated from the
write_text_filetool description into the system-prompt private-workspace rules, keeping long copy off a generic tool - ⚡ Workbench monorepo design doc v2: simplifies the v1 plan based on re-verified conclusions, clarifying business-workbench responsibilities and dependencies to keep core and business teams in sync
Bug Fixes
- 🐛 PTY shell context alignment: pty.create now returns shellPath/shellKind so tab.systemInfo matches the spawned shell; removed the redundant pty:getDefaultShell IPC, unified Windows probe logic, and made buildHostEnvironment fall back to profile.shell when systemInfo is unknown
- 🐛 Windows conversation-list scroll bounce: suppressed FLIP and shrink-to-bottom during message-sending / debug tool_result / task-completion phases; streaming reflow switched to hard-cut; improved virtual-height estimation and reserved a scrollbar slot
v11.2.0 (2026-07-12)
Tasks and companion chats are now split into two dedicated entry points, and the security and command-audit system has been overhauled-consolidated into a single shell-AST channel with user-configurable risk policies and command rules. Under the hood, the conversation layer completes the Conversation aggregate-root refactor, laying the groundwork for upcoming session capabilities.
New Features
- 🎯 Task / Companion dual entry points: a persistent task button on the tab bar plus a dedicated companion tab; companion sessions merge and restore the most recent N history items, with all channels flowing into a single line; Watch messages are routed to the companion tab instead of creating standalone tabs that interrupt you
- 🎯 Single-assistant Hub workbench model: local assistant tabs are hidden from the tab bar by default and switched via the "Recent conversations" sidebar; right-click to promote into the tab bar; LRU recycles up to 5 Hub sessions
- 🎯 Wakeup becomes the fourth conversation kind: split out from Watch-Watch stays per-execution amnesia to avoid cross-contamination, while wakeup retains history to inform decisions; the watch overview panel hides high-frequency heartbeat streams by default
- 🎯 Security & command-audit overhaul:
- Consolidated into a single shell-AST channel; the exec_argv tool entry is removed, closing the argv indirect-execution hole
- User command rules: append risk baselines by command name; the confirmation dialog can add unknown commands directly to the rule library
- Configurable risk policies: parse-failure/unknown-command risk is tiered per execution mode (strict/relaxed/free); manual addition of risk policies and allowlist entries; tiers presented as a radio-button group
- System paths classified as critical/hardened, with /dev/null black-hole exemption
- Built-in rules shown read-only; risk list tiered by destructiveness
- "Always allow" moved to session memory (not persisted); routine ops commands downgraded to moderate risk
- 🎯 Built-in map GeoJSON: world / China province / city / district-level maps bundled locally, no network needed for live charts
- 🎯 Knowledge base backup / restore: backup and restore supported, avoiding full rebuilds after corruption
- 🎯 Knowledge base Windows DML acceleration: embedding inference switched to DirectML, auto-falling back to CPU on failure
- 🎯 Independent Watch history tree: watch/wakeup records stored under a separate
history/watch/, eliminating main-index bloat - 🎯 macOS ⌘Q anti-misclick: first press shows a prompt; a second confirmation is required to quit
- 🎯 First-token playful copy: random playful status lines and ultra-long-TTFT teases while waiting for the first token
- 🎯 Bond milestone easter eggs: toast on bond unlock; an 8% chance of a bond-themed sign-off in the task-complete footer; input placeholder picks from bond pools
- 🎯 Email send confirmation card: preview body and attachment list before sending email
- 🎯 Browser bridge enhancements: new
browser_close_tabtool; Firefox MV3 site-wide permission guide and detection; generic tabs primitive, attach opens a new tab by default - 🎯 talk_to_user proactive fork: proactive messages can fork a new task session from the companion tab
- 🎯 talk_to_user result shows body: tool-call results always display the sent body
- 🎯 Watch retry button: each row in the anomaly watch list can retry directly
- 🎯 build:local --launch:
npm run build:localinstalls the --dir build to your machine and launches the app in the background
Improvements
- ⚡ Conversation domain-model refactor (internal): introduced the Conversation aggregate root as the single source of truth; CONVERSATION_POLICY strategy table drives task/companion/watch/wakeup differences; ConversationManager becomes the read-side authority; AgentRecordStore aggregates history storage, HistoryService slimmed to an ops aggregate
- ⚡ Credential encryption upgrade: introduced the
g1:self-managed master-key layer replacing safeStorage as the default scheme; v7 migration moves IM/bastion plaintext credentials into credential and upgrades e1:->g1: - ⚡ Context management: extracted ContextWindowManager collaborator for unified token estimation; watch wakeup breadth-loading strategy + L3/L4 summaries with timestamps; local predictive compression (proactiveCompress) covers providers like DeepSeek that don't report errors; auto-compression fallback on context overflow to avoid conversation interruption
- ⚡ Startup performance: lazy-loaded terminal/Agent runtimes, shortening cold starts on low-spec Windows
- ⚡ Companion merged view consolidated to backend: frontend calls IPC, avoiding transcript contamination
- ⚡ Watch noise reduction: removed deliverProactiveMessage; proactive messages flow only via talk_to_user; silent/no-action/IM watches no longer send fallback notifications
- ⚡ Unified Windows shell detection: fixed intermittent command execution issues
- ⚡ UI polish: two-row welcome input + model selector (Cursor style); drag-and-drop history items to open tabs; top title prefers the Agent's custom name; companion tab empty state with product description and examples; extracted WelcomePanel and HistorySearchModal as standalone components
Bug Fixes
- 🐛 Streaming scroll: fixed stick-to-bottom, scroll-up reading pushed away by new content, layout-jitter misjudged as off-bottom, scroll drift on tab switch, virtual-scroll bounce when loading history, height-estimate jitter during streaming thinking, and more; expanding a thinking block auto-scrolls into view and anchors to the clicked line
- 🐛 Companion session continuity: fixed lost context after companion restart (persistent-named agents rebuild working memory from the most recent N records); rooted out companion sessions splitting into two broken chains (sessionId reseeding + paired merge fields); talk_to_user no longer interrupts in-progress tasks or duplicates delivery
- 🐛 Security: patched the exec_argv indirect-execution hole, added indirection-guard; fixed CodeQL and Dependabot security alerts
- 🐛 Command-audit false positives: fixed env standalone, cp outside workspace, unwrapped wrappers, non-shell-interpreter inline code, redirect attribution, head/tail numeric shorthand flags, and other cases misjudged as dangerous; relaxed mode no longer confirms unknown commands; unknown commands default to moderate
- 🐛 Bootstrap: data-directory pointer file moved to a fixed location to avoid dev/prod divergence; unified dev/prod app name to SailFish with automatic migration of historical data dirs; legacy migration uses explicit markers instead of relying on directory emptiness
- 🐛 Credentials: MasterKey.persistSalt returns the final salt and retries on EEXIST empty-file read; corrupt e1: credentials self-heal by deletion, ending Keychain repeat prompts
- 🐛 Token estimation: fixed estimateTotalTokens missing images, causing companion to send images the AI couldn't receive
- 🐛 Email: test-connection now verifies SMTP, fixing "test succeeds but can't send"
- 🐛 PDF: fixed pdfjs 5.x failing to load CMap under Node, causing CJK PDF text loss
- 🐛 Fork sessions: fixed "new chat" losing recent context, custom-title suffix loss, IPC clone failures; fork-from-merged-view no longer loses proactive messages after truncation
- 🐛 WeChat: process-message digest merge mitigates personal-account rate limits; ASI trap preventing IM settings toggle after lazy-load; CDN upload 500
- 🐛 Wakeup injection: wakeup injection into companion context prefers reading steps, fixing duplicate proactive notifications
- 🐛 UI: fixed "preparing -> thinking" card flicker and scroll jump; Cmd+W closes a promoted assistant tab instead of the window when one is active; promoted assistant tabs jump to the adjacent tab on close; Hub task-complete reminders visibility and read clearing
- 🐛 i18n: dispatch_agents sub-task copy moved to t(); manage_workbench_artifacts streaming pre-card title translation completed
- 🐛 Windows update: auto-update skips the NSIS install-mode selection page
v11.1.0 (2026-06-18)
The assistant artifact panel is now fully available—preview and switch between generated documents, charts, and more in the sidebar, with a collapsible layout that stays out of your way. The browser bridge can control your existing Chrome or Firefox session without opening a new window, keeping site logins intact.
New Features
- 🎯 Artifact Panel: Collapse/expand, interactive HTML preview, single preview with title dropdown; Agent can open/close the panel explicitly; artifacts stored by kind with Agent awareness synced
- 🎯 Browser Bridge Attach Mode: Control your open Chrome or Firefox directly—no new window, logins preserved; connection status dashboard; Chrome Web Store listing
- 🎯 Knowledge GPU Acceleration: Migrated to Transformers.js v4 with GPU embedding acceleration; improved index rebuild stability and orphan chunk cleanup
- 🎯 Agent Scratch Workspace: New
scratch/temp directory; workspace protection narrowed to IDENTITY/SOUL only - 🎯 Home Watch Anomaly Badge: Welcome page watch cards show anomaly count
- 🎯 Mermaid Zoom: Click to enlarge with fixed white background
- 🎯 Resizable Welcome Sidebar: Drag to resize recent conversations sidebar; width cached in localStorage to avoid layout jump on startup
- 🎯 Sub-Agent Safety: Block dangerous commands and clearly communicate system limits to sub-agents
Improvements
- ⚡ Browser Bridge Protocol v1: Thin extension architecture; content extraction moved to desktop Readability
- ⚡ Artifact History Externalization: Persist regenerable content; canvasData no longer lost after resume
- ⚡ UI Polish: Successful tool_result hidden by default; knowledge/startup progress bars split and fixed to avoid layout bounce; AiPanel scroll position saved across tabs
- ⚡ OEM Brand Override: Unified window title and i18n strings
- ⚡ Data Management: Added assistant session count in storage stats
- ⚡ CI: Windows build heap limit, model file caching, Dependabot security PR routing fix
Bug Fixes
- 🐛 Terminal Tool Regression: Fixed v11 terminal tools not working
- 🐛 Browser Bridge Reconnect: Auto-reconnect after restart
- 🐛 Streaming Messages: Scroll-to-bottom interruption and "new message" flicker; user supplement messages out of order or lost
- 🐛 Artifact Panel: Lost on resume, collapse bar icons, animation, PPT preview color mismatch, Electron tooltip, etc.
- 🐛 Email Attachments: ZIP GBK extraction and overwrite protection
- 🐛 Image Preview: Mac trackpad gestures, pointer-anchored zoom
- 🐛 Build: vue-tsc errors breaking Windows installer build
- 🐛 Website: Browser bridge privacy policy page title hidden under navbar
v11.0.0 (2026-06-12)
A redesigned home page—start conversations, browse and manage recent history, and switch back to your workspace without losing progress.
New Features
- 🎯 Redesigned Home Page: Integrated composer on the welcome page to start assistant chats without opening a tab first; recent conversations sidebar with browse, pin, custom titles, and right-click rename/delete
- 🎯 Persistent Home Entry: Home button stays available while work is in progress; return to the welcome page anytime without losing conversation progress, with history linked to current work state
Improvements
- ⚡ Agent History Storage Hardening: Per-session file storage with atomic writes; legacy data migrated automatically on startup
Bug Fixes
- 🐛 Main Process i18n: Menu, quit confirmation, and other user-visible main-process strings now follow the selected language
- 🐛 TTS auto-read did not sync when the setting was enabled
v10.43.2 (2026-06-10)
Introduced the workbench architecture, abstracting terminal and assistant UIs into a composable region model to lay the foundation for future extensions such as a browser workbench; plus minor knowledge index and loading progress improvements and a few bug fixes.
Improvements
- ⚡ Workbench Architecture Refactor (internal): Terminal and assistant UIs abstracted into a workbench model with composable, extensible regions—foundation for future workbench types
- ⚡ Incremental Knowledge Index Repair: On startup, missing vector/BM25 entries are repaired incrementally instead of a full rebuild; checkpoint support allows resuming after interruption
- ⚡ Unified System Loading Progress: Backend startup and knowledge index repair merged into a single loading bar
- ⚡ Loading Progress UI: Multiple progress bars no longer overlap; index repair copy updated to "repair"
Bug Fixes
- 🐛 PPT Card Layout: Fixed missing titles/badges inside cards and normalized in-card document flow
- 🐛 IM Duplicate Notifications:
talk_to_userno longer pushes duplicate tool-process notifications
v10.43.1 (2026-06-08)
Improved exec output truncation and updater dialog experience, plus fixes for stale streaming placeholders after network failures.
Improvements
- ⚡ Updater Version Summary: The auto-update dialog now shows the current version's changelog summary with a link to the full release notes.
- ⚡ Exec Output Truncation: Command output uses 16KB line-level head/tail truncation with metadata; full lines are preserved when possible, falling back to character truncation only when necessary.
- ⚡ Hide Redundant Tool Result Cards: Successful file write/edit operations no longer show redundant tool_result cards for a cleaner chat interface.
- ⚡ Website Performance: Reduced CPU usage when the website page stays open.
Bug Fixes
- 🐛 Network Failure Placeholder Cleanup: Stale streaming placeholder steps are now cleared after Agent network request failures, preventing the UI from getting stuck.
v10.43.0 (2026-06-05)
Agent 可以生成可编辑的 PowerPoint 了,技能 API Key 配置和文件发送等体验也打磨得更顺手。
New Features
- 🎯 PPT Generation: Agent can now generate editable PowerPoint documents directly. HTML content is rendered via browser and mapped to native PPT elements (text, shapes, images), supporting real-time streaming progress, Canvas preview, and append-on-overflow.
Improvements
- ⚡ Skill API Key Management: Configure API keys directly in skill cards with persistent status display.
load_user_skillauto-injects keys into terminal environment, no more manual env vars. - ⚡ Context Progress Bar: Progress bar now shows the actual model name being used for the current conversation.
- ⚡ Async File Sending: File uploads no longer block the UI. Agent asynchronously tracks progress and waits for results.
- ⚡ Cleaner Non-debug Mode: Tool success logs are hidden by default in non-debug mode for a cleaner chat interface.
- ⚡ Improved Image Preview: Multi-image preview reworked to a compact single-column list navigation.
- ⚡ Windows First-start Optimization: LanceDB moved to a separate utility process, eliminating the first-launch freeze on Windows.
- ⚡ Non-blocking Knowledge Search: BM25 index uses async I/O, no more UI stutter during knowledge base search.
Bug Fixes
- 🐛 Fixed file message notification showing raw
{name}{size}placeholders. - 🐛 Fixed unescaped raw HTML in Markdown causing Meta Refresh injection risk.
- 🐛 Fixed base64 inline images in agent execution steps causing renderer crashes.
- 🐛 Reduced embedding batch size to prevent knowledge base processing overload.
- 🐛 WeChat CDN upload now uses idle detection instead of fixed timeout for more stable connections.
v10.42.0 (2026-06-02)
Customizable Tab names, Mermaid chart rendering in AI chat, API key test in AI settings, async history search, and several fixes.
New Features
- 🎯 Customizable Tab Names: Double-click a tab title to enter inline editing mode. Press Enter/blur to save, Esc to cancel. Clearing the custom title restores the auto-generated title.
- 🎯 Mermaid Chart Rendering in AI Chat: Render
```mermaidcode blocks as architecture diagrams, flowcharts, sequence diagrams, etc. Supports streaming progressive rendering, right-click copy/save as PNG/SVG/JPG. - 🎯 AI Settings: API Key Test & Model List: Test API key and endpoint connectivity with latency display. Fetch available models from
/v1/modelsand display in a dropdown. Auto-detect vision models and set modelType accordingly.
Improvements
- ⚡ Async History Search: History search is now fully asynchronous, eliminating main thread freezing. Cold-start recall is parallelized for faster startup.
Bug Fixes
- 🐛 Fixed Tab rename input focus and select-all failure caused by string refs in v-for.
- 🐛 Fixed updater dialog logic: show confirmation dialog when auto-download is off; skip redundant toast when auto-download is on.
v10.41.1 (2026-05-30)
Canvas preview improvements with open button and macOS update experience optimization.
New Features
- 🎯 Canvas Preview "Open" Button: Added an "Open" button to the Canvas preview panel with a dropdown option to reveal the file in Finder/Explorer.
- 🎯 macOS Update Optimization: Update downloads now redirect to the official website and automatically select the correct version based on your interface language.
Improvements
- 🎨 Refined Canvas Open Button Style: Polished the visual appearance of the open button in the preview panel.
- 📝 Simplified Save Label: Streamlined the save button text in Canvas preview for clarity.
Bug Fixes
- 🔧 Fixed Canvas Preview Gap: Eliminated the unwanted gap between the assistant's conversation area and the Canvas preview panel.
v10.41.0 (2026-05-29)
Custom data directory with auto-migration, comprehensive WeChat stability improvements, and various bug fixes.
New Features
- 🎯 Custom Data Directory: Users can now choose a custom data storage location; data auto-migrates on restart with a progress window
- 🎯 Auto-Update Improvements: Refined update notification and installation strategies
- 🎯 MCP Tool Chinese Display Name: Tool call steps now show Chinese display names for better readability
Bug Fixes
- 🐛 CI Build Failure: Removed
referencesintsconfig.jsonto fix TS6305 error on clean CI environments - 🐛 WeChat Stability Overhaul: Fixed message avalanches, duplicate sending, connection drops, long-task disconnects, message ordering, keepalive self-healing, and tool failure indicators — aligned with official 2.4.4 SDK
- 🐛 Agent Onboarding: Only shows automatically once; skip no longer repeats
- 🐛 Excel Header Duplication: Fixed repeated header rows and added pre-write validation
- 🐛 Paste Logic Unification: Word paste now only pastes plain text
- 🐛 Concurrent Session Guard: Prevented re-opening completed tasks while Agent is still running
Tests
- 🧪 WeChat Adapter Tests: Aligned test assertions with actual implementation
v10.40.1 (2026-05-24)
Fixes Chinese PDF rendering, WeChat long-task disconnects, and Canvas Markdown preview issues, plus improvements to terminal batch commands and Word document handling.
Improvements
- 🔧 Batch Commands for Split Panes: Batch commands can target split-pane windows and support range switching
- 🔧 Word Style Extraction from Templates: Automatically extract styles from docx templates to simplify formatting workflows
- 🔧 Canvas Markdown Preview: Defaults to preview mode; preview content can be quoted to AI with text selection and copy support
- 🔧 Unified Word Title Conventions: Standardized document title format with tolerance for
## title:typos - 🔧 Chart White Background:
render_echarts_optionnow injects a white background by default
Bug Fixes
- 🐛 Chinese PDF Rendering Boxes: Injected cMap and standard_fonts to fix missing glyphs
- 🐛 PDF Packaging Render Failure: Added pdfjs-config.mjs to asarUnpack for production PDF rendering
- 🐛 WeChat Long-Task Disconnect: Typing keepalive now spans the entire Agent task
- 🐛 WeChat Delivery Failure Sync: Delivery failures sync to IM and register sessions on inbound messages
- 🐛 Canvas Shortcut & Focus Styles: Fixed Markdown preview shortcut toggle and removed focus halo
v10.40.0 (2026-05-18)
Canvas Markdown panels now support editing and preview switching with AI reference, plus improved quoting, background task notifications, and more.
New Features
- 🎯 Markdown Panel Editing: Canvas Markdown panels now support switching between edit and preview mode; content can be directly referenced into the AI input box