Repository navigation
v1.0.62-beta.7
Pre-releaseAdded
-
Chat active conversations — adds
dws chat +active-conversations --start <time>to auto-page cross-conversation messages and return deduplicated conversation summaries with stable name fields, latest-message time, and completeness metadata. Query boundaries use whole seconds: explicit nonzero fractional seconds are rejected, and the default end is rounded down to exclude the current unfinished second. The effective end must be later than the start and remains fixed across pages, results, and continuation; latest-message timestamps retain millisecond precision. Returned messages are filtered to the fixed[start,end)window before aggregation; pages with no matching messages still follow server pagination. Pagination waits 200ms between pages by default; later-page failures preserve completed summaries and a continuation cursor aspartial_failure(exit 7). Resume with the original time window, page size, and profile, then merge batches by conversation ID. -
Chat shortcut 对齐与查询校验 — 补充兼容别名、创建默认值、消息上下文定位、文本与 Thread 回复、筛选排序及分页控制,保留原入口;共享消息富化并严格区分空集合、不完整结果与失败,增加资源分段重试、版本校验和原子落盘。下游尚未支持或未实测的身份、消息类型与权限范围单独列明。
-
Contact invite/apply administration — adds
dws contact exclusive-account disable|enablefor enterprise-account status, adws contact org
invite/apply group (invite-switch,invite-audit,invite-info,
invite-list,apply-list,apply-approve,apply-reject,apply-block,
apply-remove), anddws contact dept invite-auditfor department-level
join-request auditing. -
Standalone whiteboards — adds OpenNodes-based
whiteboard create-with-contentand extends
the existingwhiteboard query/whiteboard updateentry points to operate
on standalone boards when--part-idis omitted, while preserving the
document-embedded flow when it is explicitly supplied. Standalone reads
decode the serviceresultJson, and writes enforce revision and stable
request-ID guards with compatible receipt validation and same-type read-back.
Changed
-
CLI auth apply pending page (#1285) — the browser apply flow now lands on a
dedicated approval-pending page that polls and auto-redirects after approval;
duplicate apply requests are idempotent, and all local callback pages and API
responses are served withCache-Control: no-storeto avoid stale state after
a page refresh. -
CLI access denial copy (#1285) — terminal denial reasons are now split by
whether the path is applyable.cli_not_enabledkeeps the apply flow and shows
a personal-scope message ("you do not yet have CLI data access") with the
approver picker relabeled to "select approver"; the inline success message was
replaced by a redirect to the pending page. The non-applyableuser_forbidden
anduser_not_allowedreasons now share a single consolidated terminal message
("this organization has not enabled CLI data access") across the browser page and
both login transports (OAuth browser flow and device flow). -
Chat recent conversations — makes
--startoptional fordws chat +recent-conversations. Omission selects the 24 hours before the effective--end; omitting both boundaries selects the latest 24 hours ending at the current time rounded down to a whole second. Explicit--startretains the existing time formats, whole-second validation, and blank-input rejection. Both effective boundaries stay fixed across pagination and are returned in the result. Non-initial--cursorrequests must explicitly reuse the previous--startand--endto preserve the original query window. -
Chat recent conversations — makes
dws chat +recent-conversationsthe preferred entry and retains+active-conversationsas a hidden executable compatibility entry sharing the same implementation, without deprecation warnings in execution, Help, or Schema. Public Help, Schema primary CLI paths/examples, and Mono/Multi Skills recommend the new name; the stable Schema identitychat.shortcut_active_conversationsand old CLI-path lookup remain supported. Query windows, pagination, and result semantics are unchanged by this rename. -
Runtime context — Refresh the embedded payload to
20260908, verify and materialize owned resources beside the resolved executable with cache fallback, and attach the process context to browser login URLs while keeping terminal links and diagnostics redacted.
Removed
- 移除顶层
dws safechat命令(破坏性变更) — 删除dws safechat selftest与dws safechat decrypt。这两个命令在1.0.62-beta.3(#1051) 交付,但只在显式-tags safechat的源码构建中存在:官方 Release 一直是CGO_ENABLED=0,stub 的newSafeChatCommand()返回nil,因此官方二进制从未包含该命令,受影响的只有自行打 tag 构建并升级的用户。SafeChat 现在是internal/msgcrypto的内部后端,仅通过聊天消息加解密路径暴露,不再提供独立顶层命令。 - 迁移方式 —
dws safechat decrypt的等价入口是dws chat crypto decrypt,它走同一套 SafeChat 后端并按策略解密。dws safechat selftest(真实取码与密钥获取的端到端自检)没有等价命令;需要验证后端可用性时改用dws chat crypto decrypt对一条真实密文做一次解密。
Fixed
-
Contact apply-list safety semantics —
dws contact org apply-listmarks
unread join applications as read on the server; its schema safety effect is
now declared aswrite(risk stayslow, confirmation stays
not_required) and the selection guidance discloses the read-marking side
effect so Agents no longer treat it as a pure read. -
Contact apply-remove safety semantics —
dws contact org apply-remove
deletes organization join application records irreversibly; its schema safety
effect is now declared asdestructive(riskhigh, confirmation
user_required) and the selection guidance discloses that the deletion is
not recoverable so Agents no longer treat it as an ordinary write. -
Contact org list pagination contract —
dws contact org invite-listand
dws contact org apply-listnow declare the unified cursor Pagination contract
(cursorparameter,meta.paginationmetadata) and their result data schemas
no longer leakhasMore/nextCursor. Runtime responses project the server-side
cursor fields intometa.paginationso Agents can resume paging from the
standard contract. -
Chat recent conversations pagination — adds a shared
--total-timeoutbudget (default 300 seconds, range 1–3600) across all requests, retries and page delays in one invocation. A timeout preserves validated pages in the partial-failure result and returns the failed page's input cursor. Cursor continuation remains caller-managed: reuse the same profile, time window and page size, and merge batches by conversation ID. Progress is not persisted to disk; forcibly terminated queries must be restarted. -
Chat conversation categories — treat
im/list_conversations_by_categoryas the declared single-response interface when its explicit conversation array contains no pagination signal, while continuing to fail closed on partial or non-resumable pagination metadata.+category-list-conversationsand+feed-group-query-itemnow publish the resolved pagination mode and source-exhaustion facts instead of rejecting every live response that omitshasMore. -
SafeChat 默认构建与官方产物 — 支持平台的 CGO 构建无需额外 build tag
即包含 SafeChat 后端,官方六平台 Release 固定使用可校验的交叉编译工具链并拒绝
发布 CGO-disabled stub 二进制。 -
本地
make build/make rebuild默认启用 CGO,并保留显式
CGO_ENABLED=0的 stub 构建选择。 -
Linux 官方构建显式使用 glibc 2.17 链接目标,并校验 ELF 符号版本,
防止交叉编译镜像升级隐式提高 Linux 系统要求。 -
install.sh/install-event.sh/install-devapp.sh在下载前识别 musl
发行版(如 Alpine)并明确中止。Linux 产物依赖 glibc 动态加载器,此前这类环境
会安装成功但连dws version都无法启动。判定以ldd --version为准,musl
加载器文件只在ldd不报版本时兜底(Alpine 的 BusyBoxldd仅转发给加载器),
因此额外安装了musl/musl-tools的 glibc 发行版不会被误拒。 -
SafeChat cipher 关闭时会等待进行中的加解密结束,不再与
Close并发访问
vendor client 的初始化状态(go test -race下可复现的数据竞态)。 -
Schema 向后兼容检查 — 允许删除
require_one_of必填组,以支持具备默认值或可自动解析参数的命令;保留新增约束、互斥、参数类型和身份安全检查,并通过基线拥有的两阶段评审机制交付。 -
Skill setup source resolution — accepts an extracted
dws-skills.zip
root for--source/DWS_SKILL_SOURCE, selects itsmonoormulti
subtree by mode, and no longer mistakes the compatibilitymonodirectory
for a single MultiSkill.