0.21.x¶
0.21.0¶
- Released:
19.02.2026
This release consolidates all changes from the 0.20.x pre-release series (0.20.0b1 - 0.20.6b1).
✨ New Features¶
Comprehensive schema validation
Need extra options and links are now validated against JSON Schema during indexing, with support for typed fields (string, bool, int, float, list variants), custom
needs.fieldsdefinitions, andneeds.schema_definitions_from_jsonontology rules. Real-time LSP diagnostics cover a broad set of JSON Schema constraints. Also available via theubc schema validateCLI command.Dead link validation
Outgoing links targeting non-existent need IDs or part IDs now emit
needs.dead_linkdiagnostics, with incremental re-checking and per-link-type opt-out viaallow_dead_links.Fine-grained lint suppression
New
lint.per-file-ignoresandlint.message-ignoresoptions allow targeted suppression of diagnostics by file glob pattern, code, or message substring.needs.links dict-based configuration
A new dict-based
[needs.links]format for defining link types, aligning with the upcoming sphinx-needs v7 release.Model Context Protocol (MCP) server
Built-in MCP server in the VS Code extension provides programmatic access to project needs and metadata for external tools and AI systems.
Enhanced graph view
Need graph visualization with configurable depth, toolbar controls, back/forward navigation, zoom, and “Go to Source” action.
Project comparison with ubc diff
CLI command for comparing schemas and needs between projects or Git revisions, with HTML export and
--deny-externalsoption.Advanced filtering and querying
Regex matching (
=~/search()), variable-to-variable comparisons,len(var)expressions,filter_datacustom variables, anddocnameavailability inglobal_optionsandneedextendfilters.Variant options configuration
needs.variant_optionsfor defining variant-specific need option sets, with improved variant syntax parsing from sphinx-needs.RST preview enhancements
Click-to-source navigation, scroll sync toggle, and modernized toolbar.
Needs Index tree view improvements
Grouping by type/status/tags, optimized server calls, and better performance.
CLI improvements
-c/--configoverride option,ubc license config-filecommand, and--config-namesupport.Missing image/figure warnings
The indexer now emits
image.not_founddiagnostics for missing image or figure files.Source follow links configuration
New
source.follow_linksoption to control source file link resolution.
👌 Improvements¶
Sphinx-needs v6 type safety: full type validation for need extra options with
schemadefinitions.Schema validation aligned with sphinx-needs (
docname,is_external,is_importfields; all link fields included).Deterministic diagnostic ordering (sorted by ID).
Improved diagnostic location reporting for
needs.statusesandneeds.tags.Extra links
copykey now supported.Improved JSON import/export with better type handling and error reporting.
Improved RST autocompletion for need directive options.
Extension version displayed in VS Code home tree view.
‼️ Breaking Changes¶
Removed deprecated Kuzu database support
The
ubc build json-to-kuzucommand,kuzuformat option, and related Python bindings have been removed. Migrate toparquetorjsonformats instead.
🐛 Fixes¶
Fixed
parse_variants = trueon core fields being incorrectly rejected.Fixed race conditions in Windows cache directory creation and
openNeedViewcommand.Fixed edge-case “ID already registered” errors from duplicate links in LSP endpoints.
Fixed
needextendunknown variable diagnostics not being emitted.Fixed MCP server crash when
query_needswas called by Claude model.Fixed needs graph view “Focus on main need” button and zoom behavior.
Fixed missing VS Code configuration options not being registered.
Fixed deployment issue with incorrect platform binaries (0.20.1b1).
Fixed machine code handling for recent Windows 11 versions.