Skip to content

ds 0.1.5 — the CLI (downloads)

Latest

Choose a tag to compare

@khanakia khanakia released this 01 Oct 09:44
· 7 commits to main since this release

ds 0.1.5: 81 fixes from a sweep that ran every documented behaviour against the binary, and a seventh secret-resolver plugin.

Read before upgrading

  • ds check --resolve now also needs [resolve] enabled = true in .ds/config.toml, as --run needs [run] enabled. Without it, ds says so on stderr and contacts nothing.
  • Config keys that were accepted and did nothing are refused when the config loads: notify.github_issues, [sources.*], [workspace.id], [workspace.env].
  • The text summary of ds check says ok instead of none, and prints the diff under each finding.
  • Repo-mode copies keep working; ds refresh rewrites their links relative to the page when you next run it.

What changed, briefly

  • Checking: the diff under a finding is taken from the body the citation was acked at, never the wrong old version; a signature change checked without a scan no longer passes stability=api; a changed constant is a value change; output order no longer depends on random id suffixes.
  • ds def: never writes a directive into a .properties/INI/.env value; finds every name a scan records (Holder.Member, Python constants, TypeScript object paths, HCL and TOML tables, shell functions); path:A-B binds that range.
  • Directives: more file types, multi-line directive comments, link-form values with spaces ([text](<ds:…>)) and quoted values, span= in YAML/TOML/HCL, type= and id validation.
  • Commands: render --at uses that commit throughout; rendered links are relative to the page; context --since <commit> works; ds lsp uses the editor's workspace root; github comment --dry-run needs no token.
  • Secrets, URLs, runs: 1Password addresses resolve; Vault addresses resolve; new ds-resolve-env plugin; local=true is checked where its file exists; ds:run honours timeout= and expect=; a link that gets no answer is unverifiable, never cached as dead.
  • Cross-repo and agents: another repository's citation says where to ack it; ds why lists citers in other repositories; a git-hosted index is cloned on first use; MCP acks need a delegate listed in [owners]; ds init --agents registers ds mcp with Cursor, VS Code and Gemini configs where present.
  • Integrations: the Docusaurus plugin builds on Docusaurus 3.10; the Hugo status partial lists only the current page; the GitHub action commits acks made through its label.

The full list, with the fixed bug numbers, is in the changelog. The user guide is now executable: every example in it runs against the binary in the project's gate.

Install

macOS (Apple silicon) and Linux (amd64, arm64):

curl -fsSL https://raw.githubusercontent.com/ubgo/docsync/main/install.sh | sh

Windows (amd64, ARM64), in PowerShell:

irm https://raw.githubusercontent.com/ubgo/docsync/main/install.ps1 | iex

With Go 1.26+ and a C compiler:

go install github.com/ubgo/docsync/cli/cmd/ds@v0.1.5

Every archive holds ds and the six secret-resolver plugins (aws, env, gcp, github, onepassword, vault), with a checksums.txt.