Skip to content

v1.0.16

Choose a tag to compare

@github-actions github-actions released this 24 Apr 14:52
· 5118 commits to main since this release
b0c9160

Discovery service abstraction with schema v3 extensions, open-edition helper-subtree restoration, and a defensive device-flow login reset.

Added

  • internal/discovery service abstraction (#156) — encapsulates market registry fetch, MCP runtime negotiation (initialize → tools/list → detail merge), and multi-level cache fallback. EnvironmentLoader now does cache-first startup, with degraded-mode reasons (unauthenticated / market_unreachable / runtime_all_failed) and UpdatedAt-based selective re-discovery.
  • Schema v3 extensions (#156) — positional parameters with typed coercion, Example on --help, flag Default / RuntimeDefault (with $currentUserId / $now etc.), BodyWrapper, MutuallyExclusive / RequireOneOf flag groups, OmitWhen, explicit Type override, and detail-schema default propagation.
  • dws chat message send destination-flag routing (#170) — open edition gains a hardcoded helper that dispatches by --group (→ send_message_as_user) vs --user / --open-dingtalk-id (→ send_direct_message_as_user), mirroring the closed-source overlay so single-chat sends finally work end-to-end.

Changed

  • pickCommands → cmdutil.MergeHardcodedLeaves (#169) — when a top-level product name collides between the dynamic overlay and a helper subtree, helper-only siblings are grafted into the dynamic tree instead of dropped. Restores dws chat message send-by-bot / recall-by-bot / send-by-webhook and dws chat group members add-bot, which had silently vanished from the open edition.
  • OverridePriority / MergeHardcodedLeaves promoted into pkg/cmdutil (#170) — single source of truth for the merge layer; hardcoded leaves can opt into overriding the dynamic envelope via a strictly higher priority.

Fixed

  • Device flow defensively resets credentials before login (#157) — --device login now clears stale credential state and re-fetches clientID from the MCP server, regardless of what previous login methods (OAuth scan, PAT) left in app.json. Fixes the case where a prior OAuth login made --device fall back to direct mode and demand clientSecret.

Changelog

  • bbca507 feat(discovery): MCP discovery service abstraction with positional params, examples, defaults, and schema v3 extensions (#156)
  • ad33a46 fix: device flow defensively resets credentials before login (#155) (#157)
  • 0b544a8 fix(app): graft hardcoded helpers into dynamic tree instead of dropping (#169)
  • b0c9160 fix(chat,cmdutil): route chat message send by destination flag (#170)