Skip to content

v1.0.59-beta.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Aug 09:20
Immutable release. Only release title and notes can be modified.
97fc783

Added

  • Drive list type/time filtering (#942) — dws drive list gains --type file|folder, --start, and --end for client-side filtering by node type
    and modification time on both the pan and workspace routes. Filtering runs
    a bounded full scan of the target directory (2000-entry cap, reported via
    truncated=true), composes with --latest/--pattern/--depth, and is
    mutually exclusive with --versions/--cursor/--order-by/--order/
    --limit. Time values accept relative forms (24h/7d/2w), RFC 3339,
    zone-less ISO 8601 (Asia/Shanghai), or a plain date.

  • Drive folder synchronization — adds dws drive status, dws drive pull,
    dws drive push, and dws drive sync for file-level comparison and transfer
    between a local folder and a Drive folder. Differences come from exact MD5 by
    default or from modification time with --quick; status is read-only, pull
    and push are one-directional with --if-exists skip|smart|overwrite, and
    sync is bidirectional with --on-conflict remote-wins|local-wins|keep-both|ask.
    Only regular files are transferred — online documents and shortcuts are skipped,
    neither side deletes extra files, downloads are staged through a temporary file
    and committed with an atomic rename, and remote names that would escape
    --local-folder are reported as failures instead of being written. Every command
    prints a structured summary on stdout and exits non-zero when any item fails.

  • International DingTalk region support — adds .io login and MCP routing, pre-release endpoint overrides, and profile-aware gateway selection while preserving the existing .com flow.

Changed

  • Chat identity routing — validates explicit openDingTalkId inputs and improves name, userId, and openDingTalkId routing for message shortcuts.

Fixed

  • Drive --latest refuses incomplete Top-N (#899) — dws drive list --latest used to
    exit 0 with a "Top-N" computed over a partially scanned tree whenever a directory read
    failed mid-recursion (permission denied, API error), letting an incomplete set pose as the
    globally newest files. Truncation at the 2000-item scan cap and mid-recursion directory
    failures now both fail closed (LATEST_SCAN_TRUNCATED / LATEST_SCAN_INCOMPLETE), report
    the first failing folder with its depth and reason, and emit a recovery command that
    reproduces the original candidate set — query domain, --folder, --pattern, --type,
    --start and --end are all carried over. On POSIX shells each user-supplied value is
    quoted so a URL query string or a shell metacharacter cannot change how the copied command
    parses. On Windows no quoting form is safe for both cmd.exe and PowerShell, so values
    containing metacharacters are not inlined at all: the command carries a placeholder and the
    original value is shown on a separate line marked as data rather than an executable command.
    Unrecoverable errors under --latest return the root cause instead of a partial result.
    Remote-controlled folder names and server error text are stripped of ANSI escapes and
    control characters before they reach the plain-text stderr message. The internal sortTime
    sort key no longer leaks into drive list --depth output on any path.

  • Drive list pattern filtering (#942) — dws drive list --pattern on the
    single-layer pan route now filters the returned page by name pattern; the
    flag was previously accepted but silently ignored.

  • Drive list --type folder --latest composition (#942) — --latest now
    ranks the filtered entries (folders included when --type folder is set)
    instead of unconditionally dropping folders, so the documented combination
    returns the most recently modified folders rather than an empty list.

  • Chat message time defaults (#973) — default omitted chat message list-all time bounds in Asia/Shanghai when emitting timezone-less yyyy-MM-dd HH:mm:ss values, matching parsing semantics and rejecting reversed windows.

  • Doc and Drive parameter aliases — normalizes reviewed identifier, pagination, path, version, and role synonyms while blocking ambiguous values before dispatch.