v1.0.52
[1.0.52] - 2026-07-14
This release seals the v1.0.52 line with personal event subscriptions, a deterministic 22-product Agent command catalog, local user-operation auditing, expanded Open product commands, safer macOS credentials and release signing, and more reliable Connect and IM delivery.
Added
- Personal event subscriptions (#589) — adds
dws event list/schema/consume/status/stopfor user @ mentions, selected one-to-one chats, and selected group chats.consumecan create or reuse a personal subscription, multiple local consumers share one bus while keeping outputs isolated by event type and subscription, and the mono/multi event Skills ship with the binary. - Open product command capabilities (#608) — adds Sheet table, pivot-table, and gridline commands; Chat message favorites; Drive statistics and shortcuts; and Doc comment update/delete, with matching mono/multi Skill documentation and command-contract coverage.
- Local user-operation audit log (#555) — operations executed through
dwsnow produce redacted daily JSONL records with actor, command and endpoint, result or error category, duration, CLI/platform metadata, and a SHA-256 previous-hash chain for tamper evidence. Writers coordinate through a cross-process file lock and rotate logs safely;dws audit tailinspects recent records,dws audit exportemits date-filtered JSONL or CSV, anddws audit verifyreports the first broken link in a file's hash chain. - Stable Agent command catalog (#598) —
dws schemanow ships a deterministic 22-product / 564-tool catalog generated from the executable Cobra tree, with progressive product/group/leaf queries, complete parameter contracts, reviewed command identity and aliases, safety/confirmation metadata, field provenance, and final-delivery completeness/drift gates. The catalog is embedded at build time and does not require runtime MCPtools/listdiscovery. - Reviewed Schema for local commands (#598, #609) —
event consume/list/schema/status/stopandaudit export/tail/verifyenter the reviewedCommandRegistry, bind to the real Cobra tree at generation time, and ship through the same typedToolSpecand embedded Catalog path as public MCP-backed commands. Leaf, group, product, and--allqueries are projections of that single delivered model. - Safe macOS Keychain → file-DEK migration (#597) —
dws auth migrate-keychain --to file-dekpreflights every legacy/profile auth entry before rewriting, ignores unrelated application secrets, supports side-effect-free--dry-run, requires explicit--yes, and lets sandboxed and normal processes share an existing login without exposing tokens.
Changed
event consumeAI-subprocess contract (#609) — emits a fixed ready line and a final controlled-exit summary, supports parent-pipe stdin EOF as graceful shutdown, forwards--profileto the detached bus, surfaces bus startup errors, and cleans up subscriptions according to ownership so orchestrators can drive event streams without sleeps or leaked server-side subscriptions.- Wukong IM read-result parity (#618) —
chat message listpreserves quoted merged-forward and image context; message-search entitlement failures retain the server-provided friendly hint and action URL; andding message listexposes each DING's content alongside its ID and status. - Developer ID signing for official macOS archives (#605) — official releases now require both Darwin archives to be signed with the configured Apple Developer ID certificate, timestamp, and hardened runtime. The release job validates credentials and signatures and fails closed instead of silently publishing ad-hoc-signed official binaries.
Fixed
- Smart-category mappings and runtime network diagnostics (#591) —
chat category create-smartnow maps category names, group-name keywords, and member OpenDingTalk IDs to the live MCP contract, rejects blank or empty supplied values locally, and reports runtimetools/callconnection failures as actionable API/network errors instead of internal discovery failures. - Connect daemon restart lifecycle (#599) — pins the Stream SDK reconnect-race fix, snapshots the running executable before detaching, uses a real 30-second keepalive, and manages each worker as its own Unix process group so launcher cleanup or worker panics no longer cause restart loops or orphan local-agent processes.
- Complex Connect messages and attachments (#606, #612) — rich-text messages retain all embedded pictures in order, queued turns keep every pending attachment, and unknown or future callback shapes reach each Agent backend with their message type and raw JSON instead of being discarded. Attachment recovery is locator-based, nested
chatRecordpictures/audio/video/files can be recovered from message APIs after Stream ACK, and OpenCode uses a full-duration storyboard for large videos to avoid base64 OOMs while preserving the original download for the turn. - macOS auth survives Keychain mode changes (#597) — credential reads try existing compatible DEKs without creating key material, updates preserve the DEK that decrypted existing ciphertext, unreadable slots fail closed before token exchange, profile slots use the canonical auth backend, and
auth statusreports ciphertext/key mismatches instead of treating them as ordinary logout. Dedicated macOS race and Windows DPAPI coverage protect the cross-platform paths.