Releases: salan70/docbridge
Releases · salan70/docbridge
Release list
v0.8.0
Added
- The VS Code-compatible extension
salan70.docbridgeis published on Visual
Studio Marketplace. - Packaged user docs now cover linking workflow and semantic link review
(docbridge docs show linking-workflow,docbridge docs show link-review),
plus supported and unsupported@docdeclaration forms, the heading-anchor
algorithm, and named link-authoring diagnostic codes. - Human-readable
docbridge checkoutput ends with a pointer to
docbridge docs show troubleshooting.check --jsonis unchanged.
Changed
docbridge initanddocbridge init-with-agentinstall one skill,
docbridge, instead of the five companion skills. The skill routes adopt,
discover-and-link, annotate, review, and sync work; facts about the binary
come fromdocbridge docs show.
Fixed
just package-vsixbundlesvscode-languageclientinto the editor client.
Packaging with--no-dependenciespreviously omitted the module, so the
installed VSIX failed to activate.docs/user/annotations.mdno longer claims GitHub-style numeric suffixes for
duplicate headings. Duplicate anchors in one file areduplicate_doc_anchor.
Upgrading
- Existing installs keep the five legacy skill directories
(docbridge-adopt,docbridge-annotate,docbridge-link,
docbridge-review,docbridge-sync) untildocbridge init --forceis run.
Review locally edited copies first. Symlinked skill directories are reported
and left untouched.
v0.7.0
Added
- Rust is a first-party code language. Configure
include.code.rust, place
@docin//////!//** */comments on modules, structs, enums, free
functions, and inherentimplmethods, and check links with the bundled
docbridge-rust-scannerworker (same platforms as Swift/Dart). Default
visibility ispubonly; setvisibilityto includeprivatefor
non-pubitems. Canonical IDs use Rust path style (Type::method). docbridge docs list [--json]anddocbridge docs show <name>provide six
task-oriented, version-matched guides from the installed npm package, with
packed-package smoke coverage under Node.js and Bun.- CLI invocation errors now list valid commands, suggest close command names,
and include runnable command-specific recovery guidance. Missing check
configuration also points todocbridge initanddocbridge init-with-agent. - TypeScript type members can be link endpoints, closing the last functional
asymmetry with Swift and Dart.@docon a class method, property, getter,
setter, constructor, or static member, on an interface member, or on a member
of a type alias written directly as an object type literal resolves to a
type-qualified endpoint such asAuthService.login. Canonical IDs carry no
parameter signatures: overload groups and getter/setter pairs each describe
one member and collapse to one endpoint, and a collision — including a static
and an instance member of the same name — reportsduplicate_code_symbol.
Only identifier-named members qualify, because a link target is
file#fragmentwith one#and no whitespace. include.code.typescript.visibilityacceptspublic,protected, and
private, defaulting topublicandprotected. It scopes type members
only; top-level declarations remain scoped byexport.
Changed
- Scanner worker request and response payloads now have a published JSON Schema,
and malformed nested worker output fails explicitly instead of degrading into
incomplete scan data. Graph and context output schemas share their diagnostic
definitions and are checked against real CLI output. The configuration schema
now matches the CLI's per-language suffix and visibility rules. docbridge contextanddocbridge graph --include-contentstrip the common
leading indentation from an extracted declaration, so a type member reads at
its own level. Output for top-level declarations is unchanged.- A
@docon a TypeScript type member was previously collected by nothing and
silently ignored. It is now a real annotation, so an existing one can surface
link diagnostics —invalid_link_target,doc_file_not_found,
doc_anchor_not_found,doc_backlink_not_found— that were always latent,
and an annotation on aprivatemember becomesunsupported_declaration.
check --auditoutput is unchanged: members never count as
undocumented_symbol. docbridge check --auditreportsunlinked_doc_section, a warning for
in-scope documentation sections that carry no@codeannotation. It is the
documentation-side counterpart toundocumented_symbol, so the audit now
covers both directions of the link graph. Reporting is rolled up over the
heading tree: only the topmost heading of a fully unannotated subtree is
reported, and a heading is treated as annotated whenever a@codecomment is
attached to it, even if that annotation fails to parse or resolve. Empty
headings create no anchor and are never reported, but they still close the
section before them, so a deeper heading following one is a separate region
rather than a suppressed descendant. Runs
without--auditare unaffected, and the diagnostic is a warning, so exit
codes do not change.
Fixed
- Swift and Dart scanners now report malformed and duplicate
@doctargets as
invalid_link_targetandduplicate_link, matching TypeScript instead of
silently accepting or discarding the annotations. docbridge graph --include-contentno longer truncates a signature at an
object type. It cut the rendered text at the first{, which for
login(options: { verbose: boolean })producedlogin(options: {}. A
signatureRangealready ends where the implementation body begins in every
language, so no body has to be cut out of it.- The VS Code extension manifest is version-aligned with the npm package again
(0.4.1had drifted from0.6.1), so a checkout ofmainis a valid input
tojust package-vsix. Release Prepare now bumps both manifests through
scripts/set-release-version.tsand stages both in the release commit, so a
CLI release can no longer leave the extension version behind. just package-vsixbundles the server the VSIX ships with--target node,
matching the npm build. The Bun-targeted bundle it built before still carried
a#!/usr/bin/env nodeshebang and crashed with__require is not a function
when the packaging flow's ownverify-diststep executed it.
Removed
- The agent-hook integration is gone from the product surface: the copyable
scripts underexamples/hooks/and the hook recipes in
docs/integrations/claude-code.mdanddocs/integrations/codex.mdno longer
ship. Wiring DocBridge into an agent'sPostToolUse/Stophooks covered only
the agents that read those configuration files; the documented guardrail is
now a Gitpre-commithook, which applies to every contributor and every
tool. Both integration documents survive as skill-installation guides,
docbridge contextanddocbridge related --gateare unchanged, and
docbridge docs show agent-integrationdescribes the Git-hook shape instead.
Copies already installed in adopters' repositories keep working.
v0.6.1
Changed
- The related-gate CI recipe in
docs/integrations/ci.mdnow derives the PR
changed-file list from the checkout (git diff BASE...HEADwith
fetch-depth: 0) and falls back to a retried GitHub API call. Outcomes are
reported asclean,violation, orinfra-error, and the sticky comment
updates on every outcome (including infrastructure failure). Adopters who
copied the previous recipe must re-copy it and setfetch-depth: 0on the
checkout step; a shallow checkout breaks the new primary path. - Shipped Swift and Dart scanner executables are now named
docbridge-swift-scanneranddocbridge_dart_scanner. Paths under
dist/bin/<platform>/speclink-*no longer exist; deletechmod +x
workarounds that hard-coded those names rather than updating the paths.
Fixed
- Bundled Swift and Dart scanner binaries no longer have to be executable at
install time. Installers do not reliably preserve the executable bit on files
underdist/bin/, which madedocbridge checkfail on every Swift or Dart
project; DocBridge now restores the bit on its own bundled scanners when the
current process cannot execute them. Consumers can removechmod +x
workarounds from their build recipes. When the bit cannot be restored, or when
the binary is executable but the filesystem refuses to execute it as a
noexecmount does,code_scanner_unavailablenow names the cause and the
remedy instead of surfacing a bare spawn error.
v0.6.0
Added
- The npm package now runs on Node.js (>= 22) in addition to Bun: the CLI is
built for the Node target with a#!/usr/bin/env nodeshebang, so
npx docbridgeworks without installing Bun. Packaging smoke tests exercise
the CLI under both runtimes.
v0.5.2
Fixed
- Linux x64 release packages now build the Dart scanner with the official Dart
SDK on Ubuntu 22.04, avoiding Nix store paths and newer glibc requirements
that made the scanner unavailable on plain Linux hosts.
v0.5.1
Removed
- Removed Open VSX from the editor delivery scope and deleted its unused manual
publishing command; the supported registry target is VS Code Marketplace.
v0.5.0
Added
- VS Code-compatible extension packaging and manual publishing support:
release VSIX generation, VSIX verification, Marketplace/Open VSX publish
commands, Swift/Dart document activation, and bundleddocbridge lsp
startup from the extension package.
Fixed
- The release publish workflow now restores executable bits on downloaded
Swift and Dart scanner artifacts before packing the npm tarball, and
smoke-tests the installed tarball before publishing.
Changed
- Clarified the current editor delivery state in the English and Japanese
READMEs, including local VSIX installation and the remaining first-publication
work for VS Code Marketplace and Open VSX.
v0.4.1
Added
docbridge initfor CLI-driven first-time setup: repository scope discovery,
safedocbridge.config.jsoncreation, and DocBridge agent skill installation.docbridge init-with-agentfor agent-guided adoption: installs
docbridge-adoptand prints one-shot setup commands without launching an
agent process.docbridge-adoptnow installs the companion DocBridge skills after adoption
scope is confirmed.
v0.4.0
Added
- npm distribution support for the Bun-only
speclinkpackage, including
dist/index.jsas the package binary, a runtime package allowlist, dist
verification, packed-package smoke testing, and release workflow publishing. - Platform-staged Swift and Dart scanner binary layout under
dist/bin/<platform>/, with initial npm scanner support fordarwin-arm64
andlinux-x64. - Dart scanner worker support, including analyzer-based
@docextraction,
type/member canonical IDs (without parameter signatures, since Dart has no
overloading), public-by-naming visibility, and Dart end-to-end
check/context/graph/LSP integration. The Dart toolchain is provided by the Nix
dev shell. - Swift scanner worker support for SwiftPM source checkouts, including
SwiftSyntax-based@docextraction, type/member canonical IDs, visibility
filtering, and Swift end-to-end check/context/graph/LSP integration. - Worker-backed scanner protocol foundation for Swift and Dart adapters,
including stdin/stdout JSON invocation and scanner availability/failure
diagnostics. speclink graph: prints the resolved link graph as human-readable output or
as JSON followingschemas/graph-output.schema.json, including resolvable
one-way links, pair completeness, optional lightweight node content, and
diagnostics that do not prevent graph construction.- Distributable adoption skills under
templates/skills/:speclink-adopt
for existing-project setup,speclink-linkfor docs-first annotation
candidate confirmation, andspeclink-reviewfor whole-graph semantic
review usingspeclink graph --json --include-content.
Changed
speclink contextandspeclink graph --jsonnow carry code language
metadata for code blocks/nodes so Swift endpoints render and serialize as
Swift.- SpecLink's distributable skills are now dogfooded from
.agents/skills/and
.claude/skills/as symlinks to the canonicaltemplates/skills/entries. - TypeScript scanner endpoints now include
signatureRangein addition to the
existing fulldeclarationRange, allowing graph consumers to read the
public JSDoc/signature surface without implementation bodies.
Fixed
- Worker-backed scanner responses now fail when the returned file list does not
exactly match the requested files, and worker failures suppress derived link
diagnostics for the failed file. - The npm-distributed CLI now resolves its bundled
dist/bin/<platform>Swift
and Dart scanner binaries when launched through thenode_modules/.bin
symlink, which previously resolved to the wrong directory on Linux and
reported the scanner as unavailable.
v0.3.0
Added
speclink context: prints the content of the counterparts linked from a set
of input files (positional arguments or newline-separated stdin via
--stdin) — full Markdown sections for doc counterparts, full declarations
including JSDoc for code counterparts. Default output is Markdown suitable
for direct injection into an agent prompt;--jsonemits a machine-readable
report followingschemas/context-output.schema.json. Extraction is
best-effort: check diagnostics located in the input files are reported on
stderr (or in thediagnosticsfield) without affecting the exit code.- TypeScript scanner: records a
declarationRangecovering each supported
declaration including its JSDoc block, backingcontextcontent extraction. just context: prints the linked counterpart content of the uncommitted
changes.- AI integration recipes under
docs/integrations/: on-edit counterpart
awareness and gate triage for Claude Code and Codex, and a CI recipe for
gating the PR change set and reporting counterpart content. - Copyable agent hook scripts under
examples/hooks/: aPostToolUsehook
that surfaces linked counterpart content on edit, and aStophook that
reportsrelated --gatefindings with the flagged counterparts' content as
StopadditionalContext. - Distributable agent skills under
templates/skills/:speclink-annotate
(create@doc/@codelink pairs and verify them withspeclink check) and
speclink-sync(triagerelated --gatefindings usingspeclink context).
Both are also installed in this repository's.claude/skills/.
Changed
- Markdown section extraction moved from the LSP layer into
src/core/and is
now shared by LSP hover andspeclink context(no behavior change).