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 --resolvenow also needs[resolve] enabled = truein.ds/config.toml, as--runneeds[run] enabled. Without it,dssays 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 checksaysokinstead ofnone, and prints the diff under each finding. - Repo-mode copies keep working;
ds refreshrewrites 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 avaluechange; output order no longer depends on random id suffixes. ds def: never writes a directive into a.properties/INI/.envvalue; finds every name a scan records (Holder.Member, Python constants, TypeScript object paths, HCL and TOML tables, shell functions);path:A-Bbinds 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 --atuses that commit throughout; rendered links are relative to the page;context --since <commit>works;ds lspuses the editor's workspace root;github comment --dry-runneeds no token. - Secrets, URLs, runs: 1Password addresses resolve; Vault addresses resolve; new
ds-resolve-envplugin;local=trueis checked where its file exists;ds:runhonourstimeout=andexpect=; a link that gets no answer isunverifiable, never cached as dead. - Cross-repo and agents: another repository's citation says where to ack it;
ds whylists citers in other repositories; a git-hosted index is cloned on first use; MCP acks need a delegate listed in[owners];ds init --agentsregistersds mcpwith 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 | shWindows (amd64, ARM64), in PowerShell:
irm https://raw.githubusercontent.com/ubgo/docsync/main/install.ps1 | iexWith Go 1.26+ and a C compiler:
go install github.com/ubgo/docsync/cli/cmd/ds@v0.1.5Every archive holds ds and the six secret-resolver plugins (aws, env, gcp, github, onepassword, vault), with a checksums.txt.