0.29.x

0.29.3

Released:

20.05.2026

This release promotes the 0.29.x pre-release series to a stable release. See the pre-release entries below for details:

🐛 Fixes

  • Stabilized changelog anchors for pre-release versions in the documentation.

0.29.2b1

Released:

13.05.2026

pre-release:

✨ New Features

  • Free-text filter in the Needs Index view

    The VS Code Needs Index now offers a free text filter type that searches across the textual fields id, title, and content of each need in one go.

    Free-text filter in the Needs Index view

👌 Improvements

  • Need content available via the MCP query_needs tool

    The MCP server’s query_needs tool now exposes the content field alongside the other need attributes, matching the get_data_for_single_need endpoint and the build artefacts. AI assistants and other MCP clients can retrieve and filter on the directive body text directly, without a follow-up per-need lookup.

  • Opt out of need content in build artefacts

    The ubc build needs command gained a --no-content / --content toggle controlling whether the directive body text (the content field introduced in 0.29.1b1) is emitted into the build artefacts. Use --no-content to keep generated JSON / Parquet output compact when downstream tooling does not consume the body text.

0.29.1b1

Released:

30.04.2026

pre-release:

✨ New Features

  • content field on need items

    Need items now carry an optional content field that stores the raw body text of the directive. Content is included in JSON and Parquet exports, queryable in filter expressions (e.g. "keyword" in content), returned by the MCP single-need endpoint, and checked in ubc diff. Content is preserved through directive, import, and external need sources.

  • follow_links configuration for codelinks source discovery

    A new follow_links option in [codelinks.projects.*.source_discover] controls whether symbolic links are followed during codelinks file discovery. See codelinks configuration for more details.

👌 Improvements

  • Aligned codelinks file discovery behaviour with sphinx-codelinks, improving consistency between the IDE tooling and the Sphinx extension. The C/C++ recognised file extensions were updated (now .c, .ci, .cpp, .cc, .cxx, .h, .hpp, .hxx, .hh, .ihl).

🐛 Fixes

  • Fixed mermaid diagram labels in the VS Code RST preview being clipped mid-word.

0.29.0b1

Released:

23.04.2026

pre-release:

✨ New Features

  • Source code traceability with codelinks

    ubCode now supports tracing requirements directly in source code comments, creating a live bidirectional link between documentation and code. This implements the sphinx-codelinks marker format natively in the IDE. Embed standardised markers in C++, Python, Rust, C#, or YAML comments and ubCode extracts them into need objects automatically.

    One-line need definitions let you create a new need from a single comment:

    # @Function Bar, IMPL_4, impl, [SPEC_1]
    def bar():
        ...
    

    Note

    Need-ID references (@need-ids:) are not yet supported and are planned for a future release.

    The .. src-trace:: RST directive includes traced needs in your documentation, scoped by project, file, or directory.

    IDE features delivered through the language server:

    • Real-time diagnostics for malformed one-line markers (source: ubcode-codelinks; codes include too_few_fields, too_many_fields, missing_square_brackets, etc.)

    • Hover on markers shows a rich card with the need’s type, ID, title, metadata fields, and link targets

    • Find References from a source code marker navigates to all RST documents that backlink via field values or :need: roles

    • Autocomplete for the :project: option in .. src-trace:: directives, populated from [codelinks.projects.*] keys in ubproject.toml

    Parsing is implemented in Rust (via tree-sitter) and runs incrementally — only changed files are re-parsed, keeping the feedback loop fast.

    See Tracing source code with Codelinks for the full usage guide and Codelinks (source code tracing) for the configuration reference.

  • ubc build list-documents --codelinks CLI option

    The ubc build list-documents command now supports listing files from configured codelinks projects: --codelinks / --no-codelinks to include codelinks source files, --codelinks-project <name> to filter to a specific project, and --source-documents / --no-source-documents to toggle RST/MD source documents. These can be combined, e.g. --codelinks --no-source-documents to list only codelinks files.

  • Configuration redirect with ubproject.redirect.toml

    A new redirect file mechanism lets ubCode find the ubproject.toml for files that live outside the documentation folder (e.g. source code files traced via codelinks). Place a ubproject.redirect.toml containing path = "../docs" in your source directory and ubCode follows the redirect during its configuration file search. Circular redirects are detected and handled gracefully.

    See Configuration redirect with ubproject.redirect.toml for details.

👌 Improvements

  • Labels on diagnostic source locations

    Diagnostics in the ubCode Issues panel now annotate each source location with a descriptive label (e.g. needimport-source, external-source), making it easier to understand the role of each location when a diagnostic spans multiple files, such as link constraint violations.

  • Expanded and reorganised the user documentation, including new configuration examples and a codelinks usage guide.