Skip to content

Release notes

This website page records the current capability baseline and short, user-relevant changes made from now on. It is deliberately not included in the PDF: Git commits, tags, pull requests, and GitHub Releases are the complete historical record.

Read the Unreleased section when it is present, then every release between the version a project uses and the version it will install. An entry is needed only when it adds or changes behaviour that matters to a user, or requires an upgrade action. Defect-by-defect history belongs in GitHub issues and pull requests rather than here.

0.74.0 (2026-10-06)

  • Added pdk_ website macros and variables, retaining old names temporarily with migration warnings during site and PDF builds.
  • Skipped back-of-book index processing for single-page PDFs.
  • Clarified optional Python-alias repair for virtual environments, including Surrey RemoteLabs.

0.73.1 (2026-10-03)

  • Made existing-project Bootstrap continue automatically after verifying its updated environment, without a redundant confirmation prompt.
  • Documented how Surrey RemoteLabs users can bypass the system Python alias in virtual environments and make that change persist.

0.73.0 (2026-09-24)

  • Qualified Zensical 0.0.64 for website and PDF builds and updated the supported dependency floor and build pins.
  • Prevented Bootstrap from downgrading existing projects to historical Prodockit floors while retaining fresh-template pairing.
  • Aligned Surrey Bootstrap URLs with academic-year GitLab groups and warned instead of failing for compatibility-tested Python versions.
  • Diagnosed Jinja controls that split Markdown tables and conflicting legacy PDF settings.
  • Preferred just-in-time MathJax preparation over retired template scripts.
  • Added stag icons and used the compact icon for Surrey RemoteLabs tabs.

0.72.0 (2026-09-23)

  • Moved PDF project-file setup and legacy-setting migration from Adopt to the first pdk pdf run; configured projects remain unchanged.
  • Added a concise installation path with copyable Zensical extension and stylesheet settings, without requiring Adopt.
  • Made pdk pdf --prepare all install PyMuPDF when a back-of-book index is enabled, while leaving index-free projects lightweight.
  • Fixed MathJax SVG rendering in generated PDFs and preserved complete multiline TOML values during Template Sync.
  • Kept text inside compact PDF table cells by wrapping unbreakable words before they overlap adjacent columns.
  • Added unprivileged Surrey RemoteLabs installation guidance.

0.71.0 (2026-09-22)

  • Validated and adopted Zensical 0.0.63, WeasyPrint 70.0, and PyMdown Extensions 12.0.1 without website or PDF regressions.
  • Prevented Template Sync from staging Git-ignored local assets created by Adopt.
  • Aligned Bootstrap's guide and Apply introduction with the current activity inventory.
  • Prevented Mermaid PDF rendering from following output symlinks or writing through a symlinked output directory.
  • Prevented branch detection from opening Git Credential Manager prompts and preserved a matching checkout's SSH origin for non-interactive probes.

0.70.1 (2026-09-21)

  • Aligned manual installation with the optional project-local PDF workflow and supported platform boundaries.
  • Added a concise pip-based installation path for experienced developers before the guided installation choices.
  • Separated template-site PDF installation and generation into optional stages with project-local Pandoc preparation and explicit Windows ARM64 guidance.
  • Added conditional Pandoc and optional full PDF installation steps to the Adopt guidance.

0.70.0 (2026-09-21)

  • Allowed native Windows ARM64 website builds to reuse the verified Windows x64 Pandoc runtime through Windows 11 app emulation.
  • Made PDF prerequisite failures present installation and retry commands as readable steps, and expanded Bootstrap verification to build and check the website and both downloadable PDFs.

0.69.0 (2026-09-20)

  • Made pdk pdf fail safely when any required Mermaid diagram cannot render instead of publishing raw diagram source.
  • Kept PDF table rowspan groups intact across page boundaries so shaded spanning cells retain their full background.
  • Made deferred PDF diagnostics and first-use failures detect missing Pango or Node.js and show the exact platform installation command.
  • Made Bootstrap install and verify the exact Prodockit release paired with the template instead of floating to a release Template Sync immediately reverses.
  • Removed the hidden pdf-legacy command and its undocumented Zensical Python rendering path; run a strict Zensical build before pdk pdf.
  • Made prodockit.tables reject missing separators, stray tokens and unbalanced quotes in supported cell attribute lists with source-line diagnostics.

0.68.0 (2026-09-20)

  • Separated PDF-only Python packages into pdf-requirements.txt; pdk pdf now installs and caches them transparently on first use while Bootstrap and website-only environments remain lightweight.
  • Made PDF prerequisite errors and the template-site guide give concise platform-specific installation instructions.
  • Kept stamped template workflows under Template Sync ownership and stopped inactive Adopt proposals from falsely satisfying Diagnostics.

0.67.1 (2026-09-20)

  • Made pdk pdf --prepare all prepare every runtime supported on the current platform without requesting unavailable providers.
  • Made Windows Node diagnostics retry one transient startup timeout before reporting an accurate persistent failure.
  • Made Bootstrap defer optional PDF prerequisite checks to the first pdk pdf instead of requiring macOS Pango during setup.
  • Made Adopt report clean PDF caches as deferred first-use preparation and removed its obsolete MathJax npm ignore check.
  • Aligned manual installation with the Clean and Update route badges and made project virtual-environment creation explicit.
  • Made diagnostics defer Node and macOS/Linux WeasyPrint prerequisites while their clean project PDF caches await first use.

0.67.0 (2026-09-20)

  • PDF-only settings now live in pdk-pdf.toml; pdk adopt migrates legacy Zensical values while runtime fallback and diagnostics keep upgrades compatible.
  • Bootstrap and Adopt no longer install PDF runtimes, Node, npm, browsers, host fonts, Pango or MSYS2; pdk pdf owns project-local runtime preparation.
  • PDF and bibliography builds now acquire one verified project-local Pandoc runtime; PDF builds also embed verified project-local Inter and JetBrains Mono without host font installation.
  • Mermaid and MathJax renderers are downloaded, verified and cached per project only when used; --prepare can provision them ahead of time.
  • Removed the legacy Mermaid CLI fallback, --swap, and pdf_mmdc_bin; PDF Mermaid rendering now uses only the Python runtime.
  • Windows x64 PDF and source-bundle builds now acquire and reuse the official verified WeasyPrint 70 project runtime without end-user MSYS2/Pango setup.
  • Corrected Mermaid C4 icons, moderate flowcharts and safe click links, and preserved the last healthy renderer cache after a failed update.
  • Corrected cross-page heading links containing inline HTML, nested-container captions and active-content scans around Markdown fences.

0.66.0 (2026-09-16)

  • Made the Python-only Mermaid renderer the PDF default; --swap now selects an externally supplied legacy mermaid-cli renderer.
  • Removed ProDockit-managed Mermaid npm, Puppeteer, browser provisioning, alignment, diagnostics repair, and CI installation while leaving MathJax tooling unchanged.
  • Corrected cross-page PDF references for long-form and Setext headings and repeated fragment destinations.
  • Corrected PDF repository links for non-main branches.
  • Preserved quoted YAML extension keys during adoption.
  • Blocked first-push repair while SSH is unavailable.

0.65.7 (2026-09-15)

  • Made project checks report invalid UTF-8 Markdown, duplicate YAML keys, invalid extension options, missing bibliographies, and unsafe PDF paths directly.
  • Prevented source bundles from following symlinks and made credential redaction case-insensitive.
  • Corrected PDF title metadata, image and included-PDF URLs, colliding page anchors, and selected-page validation.
  • Improved Diagnostics for shallow repositories, quoted Git paths, and indented code while preserving the configured project filename.
  • Made Pandoc replacement tolerate transient Windows locks and made WeasyPrint health checks report unusable installations accurately.
  • Added a behavior-preserving Mermaid renderer boundary so a standalone renderer can be introduced independently in a later release.

0.65.6 (2026-09-14)

  • Clarify the clean-install, Surrey GitLab, GitHub, and GitLab publishing steps in the installation guide, including how to find the published Pages site.

0.65.5 (2026-09-13)

  • Getting started now gives University of Surrey readers the Surrey GitLab route through installation and troubleshooting, while the public guide retains its GitHub and GitLab choices.

0.65.4 (2026-09-13)

  • Rename the opening documentation page to gettingstarted.md. Update navigation, internal links, and the single-page PDF action so all point to the new /gettingstarted/ route. Existing bookmarks to /introduction/ should be updated.

0.65.3 (2026-09-13)

  • PDF table headers now default to left alignment, matching the website. Explicit column and cell alignment is respected, including captioned tables and merged headers.
  • PDF generation checks that the included website pages actually render their maths and Mermaid diagrams, rather than accepting missing or broken output. Failures point to diagnostics and repair commands; quoted examples and comments are not mistaken for active notation.
  • MathJax typesets correctly after instant navigation between website pages. Refresh the generated website assets with pdk init-mathjax after upgrading, then rebuild the website before generating its PDF.

0.65.2 (2026-09-12)

  • Raise the coordinated supported Zensical version to 0.0.61. Upgrade the template's requirements, publishing pins and toolchain record together so Adopt and diagnostics retain the selected version.

Zensical 0.0.61 validates plugin options more strictly, and table-reader paths must remain inside the project. Review custom configurations before upgrading. Page and heading redirects are available as optional website features; they do not automatically create PDF aliases. The upstream Mike version_selector option regression remains a documented limitation: configurations using that option are not qualified for this upgrade. See the compatibility guidance.

  • Pin MathJax's XML dependency to the patched @xmldom/xmldom 0.9.12 while retaining MathJax 3.2.2. Adopt updates the managed renderer files and dependencies.
  • Improve Windows MSYS2 recovery across installation tools and preserve the authenticated terminal when installers need administrator approval.
  • Diagnostics audits managed MathJax production dependencies, and template syncing selects the newest reachable release in mirrored Git histories.
  • Installation commands check TOML and YAML syntax before editing configuration, stop with actionable error locations, and allow you to correct the file and rerun. Configuration checks also reject invalid setting types and ignore authoring examples inside HTML comments.
  • Bootstrap stops when a new environment must be activated before continuing, rather than running subsequent activities in the wrong environment.
  • Citation-style installation validates existing files and retries transient download failures. Template settings retrieval respects GitHub rate limits and uses validated cached settings when available.
  • Consolidate clean and existing-site instructions under Adopt prodockit, with updated diagrams, file-change guidance, installation buttons and completion links.
  • Website PDF actions appear only for pages with their own generated PDF. Page-specific download paths prevent different documents with the same filename from sharing the wrong PDF, and deployment checks verify the links.

0.65.1 (2026-09-11)

  • Adopt preserves customised build workflows and supplies separate, inactive workflow proposals for manual merging. It replaces a stock Zensical workflow only when its SHA-256 matches a trusted baseline.
  • Optional repository setup has clearer activity headings and authentication recovery guidance, and verifies uncertain remote-creation results before continuing without automatically retrying creation or pushing files.
  • Simplify the installation guide with separate clean and update paths, shorter steps, navigation badges and explicit review of Adopt's file changes.
  • PDF repository links now use URL-encoded project-relative paths rather than the builder's checkout path. Pages excluded from the PDF link to their Markdown source; links to included pages remain internal destinations.

0.65.0 (2026-09-10)

  • Adopt previews now show a concise plan with software actions, supported versions, configuration changes and genuine blockers. Use --verbose for the detailed activity walkthrough.
  • Apply shows the plan first and asks whether to continue, defaulting to No. Each component group still requires its own approval before changes are made.
  • Guided repository configuration replaces commented repo_url and repo_name examples in place, preserving saved values without duplicates. edit_uri is left unchanged.
  • Expand the installation guide for clean and existing Zensical sites, with distinct path badges, optional steps, command explanations, clearer Pages setup and diagnostic guidance moved into Troubleshooting.

0.64.0 (2026-09-10)

  • Adopt now offers a final, optional guided setup for website and repository details. It prompts for missing starter settings and updates TOML configuration while preserving existing values and comments.
  • Opt-in GitHub or GitLab repository setup checks for Git and the appropriate command-line client, offers installation and authentication, and can initialise the local repository, set local commit identity, and connect or create a remote repository. Commits, pushes and Pages publication remain separate actions.
  • Diagnostics now flags unfinished website details, repository mismatches, generated-file ignore problems and common publishing-workflow omissions. Correction messages group problems by the command needed to address them.
  • Installer progress identifies the software or operation being performed, rather than repeatedly naming Python, Bash or the package manager.
  • Update the first-site guide for guided Adopt setup, separate preview and apply commands, and optional GitHub/GitLab publishing instructions.

0.63.0 (2026-09-09)

  • Bootstrap distinguishes verified, missing and unverified PDF fonts. Shared fontconfig family checks inspect the renderer's actual selection, including system and per-user fonts, and reject fallback families. An unavailable inspection tool produces an actionable warning rather than a verified pass.
  • Bootstrap's macOS and Ubuntu PDF recipes explicitly include fontconfig. Adopt uses the same font-family verification.
  • Bootstrap's captured installers now share Adopt's process-group/tree cleanup and conservative failure classification. An exited installer with surviving children, an unverified cleanup or a timeout cannot trigger an automatic retry. Existing package-manager recovery and post-install health checks remain in place.
  • Complete the first-site guide with an optional command-line GitHub publishing stage, including commit identity, file review, Pages enablement and deployment checks.
  • Make sync-repo support fresh Zensical configurations: create missing TOML tables, prompt for starter website details, accept explicit title/URL options, and optionally create a README. Missing READMEs no longer prevent syncing.
  • Adopt now supplies baseline Git ignore rules and repairs the stock Zensical GitHub workflow to install project dependencies and restore optional MathJax assets. Custom dependency-install commands are preserved.
  • Recognise Puppeteer's asynchronously reported browser path so Adopt reuses a downloaded browser rather than reporting that installation failed.
  • Add an explicit environment-refresh step after Adopt and before diagnostics and builds in the first-site and existing-site installation instructions.

0.62.0 (2026-09-09)

  • Adopt now prepares the document-building runtime on Windows, Ubuntu and macOS, without installing Git, SSH or editor tools. Homebrew remains a manual prerequisite on macOS; Windows can provision missing WinGet support.
  • Repair and align installed Python dependencies and selected renderers to the running Prodockit release, including upgrades and downgrades. Projects requiring a newer Prodockit release are rejected before changes are made.
  • Explain proposed changes in plain language, highlight blockers and recovery actions, and move routine file paths and commands to --verbose output.
  • Refresh saved Windows runtime paths before assessment, so subsequent and offline runs recognise installed PDF libraries and fonts. Show explicit environment-refresh instructions before follow-up checks.
  • Support source bundles for standalone documentation projects without Git.

  • Provision Mermaid's browser explicitly, using Ubuntu's architecture-matched Chromium or the installed Puppeteer CLI on macOS/Windows. Disable hidden npm browser downloads; preserve explicit browser overrides and verify SVG rendering.

  • Added native PDF library and font provisioning through Bootstrap's platform recipes, preserving Adopt's exact Pandoc pin. Verify with PDF generation and font matching, and persist macOS's library path in the active environment.
  • Added a Node.js/npm runtime activity for selected renderers, reusing Bootstrap's platform installation, upgrade and repair policy with explicit administrator approval, bounded retries, PATH refresh and post-install verification.
  • Align selected renderer manifests, lockfiles and helper scripts with the installed release, keeping recoverable backups before replacement. Renderer readiness now rejects working but mismatched Mermaid and MathJax versions.
  • Retry temporary template-setting download failures twice with coloured recovery notices before falling back to a compatible cache; permanent errors are not retried.
  • Added a template-setting review ledger for TOML adoption. New unknown settings are commented for review, excluded template branding is omitted, and existing values are preserved. Deleting .prodockit-adopt.toml resets the review without disabling software checks. Supports a compatible cached or local template source.
  • Replaced Adopt's text-based TOML editing with TOML Kit, preserving comments and validating the result with tomllib. Fixed recognition of the template's nested pymdownx.blocks.caption configuration.

  • Made optional Mermaid and maths renderers default off when a fresh project has no .prodockit-components.toml; Zensical's capable starter configuration is no longer mistaken for an author choice. Template projects retain both choices through their committed component file.

  • Detect existing project-local renderer scaffolds when no component choices are saved, including incomplete installations that need repair.
  • Add caption types and reusable website/PDF defaults during adoption without replacing author settings. Configuration and shared-asset updates use atomic file replacement; identical files are left untouched on a repeat run.
  • Honour the configured documentation directory when installing MathJax's website bundle, configuration and licence. Interactive adoption now reports incomplete work instead of unconditionally announcing success.
  • Added explicit renderer-configuration guidance to the first-site installation route; Adopt installs the Node.js runtime when selected renderers require it.

0.61.6 (2026-09-08)

  • Made Adopt and its readiness checks recognise cache-versioned stylesheet and JavaScript references as the configured asset, preserving query strings such as MathJax cache keys instead of adding a second unversioned registration.

0.61.5 (2026-09-08)

  • Made Adopt extend existing dotted project.extra.* TOML settings without appending a conflicting [project.extra] table.
  • Made Adopt install and register the complete stylesheet cascade: managed pdk.css and pdk-pdf.css, followed by user-managed extra.css and print.css. Missing user-managed files are created without replacing existing author CSS, and an existing template layer remains between the managed defaults and author overrides.
  • Moved the standard external-link behaviour into managed pdk.js. Adopt installs it before the optional MathJax files and an empty user-managed extra.js, preserving existing project JavaScript.

0.61.4 (2026-09-08)

  • Made Adopt fetch, validate and cache the configured standard Harvard CSL file when it is missing, reuse a validated cached copy offline, preserve existing citation styles, and give explicit guidance for author-owned custom styles.
  • Made Adopt and Diagnostics install Mermaid CLI with its required Puppeteer peer dependency on current Node.js and npm releases, including npm 11, and added the required Tailwind peer entry to the packaged lockfile.

0.61.3 (2026-09-08)

  • Moved Bootstrap's preserved template history into a dedicated sibling .pdk-template-backups directory, so hidden recovery data no longer competes with the project during PowerShell path completion. Interrupted runs still recognise recovery directories created by older releases.
  • Made Adopt identify a missing project-local environment even when another virtual environment is active, and report missing Node.js or npm before a selected Mermaid or MathJax activity can leave installation half-finished.
  • Standardised lifecycle output on phases containing activities, while the installation guides use stages containing steps.
  • Reorganised installation guidance around four distinct routes, adding a complete manual-build route and a troubleshooting guide for common setup, environment, download, renderer, and repository problems.

0.61.2 (2026-09-07)

  • Made Diagnostics stop after detecting that another virtual environment is active, avoiding misleading renderer and dependency failures from the wrong Python. Its correction now gives the activation command for macOS, Ubuntu, or Windows and asks the reader to rerun the complete report.
  • Made Diagnostics and Adopt reject a directory that contains project repositories rather than being a project itself. The error names the child repositories so a reader can change into the intended project directory.
  • Consolidated the Bootstrap and template setup guidance, moved the Windows terminal restart into the point where it is needed, and added a guided route for starting with Zensical before adopting Prodockit, configuring PDF and source-bundle outputs, and running the first checks.
  • Recorded successful current-release Bootstrap and existing-repository tests for Surrey GitLab on Windows, Ubuntu, and macOS.

0.61.1 (2026-09-06)

  • Made Bootstrap install and verify Pandoc 3.10.1 inside each project's virtual environment on macOS, Windows, and Ubuntu. A different system or Homebrew Pandoc can remain installed without changing local or published output.
  • Added environment safeguards across lifecycle commands: Diagnostics and Template Sync reject a project's inactive .venv; Adopt rejects a different active environment and warns when no virtual environment is active; Pins warns when its tested defaults come from another environment.
  • Made Template Sync recover Windows installer environment changes where possible and display a prominent terminal-restart instruction when a fresh PowerShell is required. Bootstrap now presents the same post-install restart and project-environment checks.
  • Prevented Git's normal LF-to-CRLF checkout conversion from being reported as managed stylesheet drift while retaining detection of real content changes.
  • Clarified operating-system installation commands and the two Bootstrap activations: the setup environment in the parent directory, followed by the repository's own environment before Diagnostics and Template Sync.

0.61.0 (2026-09-06)

  • Added template-sync --review-all to select every protected template file for one interactive review. Each full diff now offers overwrite, new, or skip, with skip as the safe default; targeted --force FILE-PATH remains available for single-file reviews.
  • Renamed the diagnostics repair action to pdk diag --apply and its selector to --apply-check for consistency with the other lifecycle commands. The previous --fix and --fix-check spellings remain hidden compatibility aliases.
  • Added consistent short forms for common command modes: -a for --apply, -n for --dry-run, -v for --verbose, and -o for --online wherever the corresponding long option is available. -h opens help for the main command and every subcommand. Specialised and higher-risk options remain long-only.
  • Made Template Sync fetch the public GitHub template over HTTPS, including for GitLab-hosted projects, so students do not need a GitHub account, SSH key, or interactive GitHub host-key decision to check for an update.
  • Changed command warnings from yellow to the colour-blind-safe amber #E69F00, retaining explicit warning labels so redirected and monochrome output carries the same meaning.
  • Added task-oriented lifecycle guidance and a top-level command reference for Bootstrap, Adopt, Diagnostics, Pins, Template Sync, PDF and the supporting commands. Each reference identifies its working directory, wrong-directory result, options, effects, and related commands.
  • Added a shared guide to reading phase-and-stage output, with labelled, theme-aware figures placed beside the relevant task steps and command output sections. The figures can be selected to enlarge through Zensical's native GLightbox integration and retain numbered captions in website and PDF output.

0.60.4 (2026-09-06)

  • Made Template Sync highlight actionable changes in purple and warnings in yellow, while keeping its diagnostic log plain text. Adopt stage file names are now displayed relative to the project root.
  • Changed template-sync --force FILE-PATH into an interactive review: it shows the complete diff and asks whether to overwrite the project file or save the incoming template copy as FILE-PATH.new, with .new as the safe default.
  • Corrected Windows Pango selection on ARM64 hosts running x64 Python. Both Bootstrap and Diagnostics now select and verify native libraries from the Python executable's PE architecture, and Bootstrap cannot accept an unrelated pango-view from another MSYS2 environment.
  • Prevented online diagnostics from displaying an interactive SSH host-key prompt while checking for template updates; the public GitHub template is queried over HTTPS and any remaining SSH probe is strictly non-interactive.
  • Made Adopt retry replacement of pandoc.exe when Windows briefly retains a file handle during a supported-version upgrade or downgrade.
  • Made Bootstrap reuse an existing valid MSYS2 installation before asking WinGet to install it, avoiding installer failures when only Pango is missing.

0.60.3 (2026-09-05)

  • Preserved an existing project's choice between bibliography-backed and inline citation definitions during Adopt and Template Sync instead of enabling both implementations.
  • Separated the saved component choices from standard authoring configuration in Adopt plans. Diagnostics and Template Sync now identify a missing .prodockit-components.toml directly and name only the extensions or shared website inputs that actually need attention.

0.60.2 (2026-09-05)

  • Prevented the Adopt-readiness diagnostic from treating a valid CI setup-python environment without VIRTUAL_ENV as an Adopt integration failure. Interpreter validity remains covered by the dedicated environment checks; readiness now compares only the project integration stages shared with Template Sync.

0.60.1 (2026-09-05)

  • Preserved established Mermaid and maths selections when an older project has no .prodockit-components.toml. Adopt now labels choices inferred from the Zensical configuration and saves the project-owned record on apply, while diagnostics and Template Sync use the same resolution.
  • Made Diagnostics detect a project .venv containing launchers from different Python installations before package symptoms obscure the cause. On macOS and Linux, pdk diag --apply can explicitly archive and rebuild the environment from project requirements; Adopt refuses to mutate a mixed environment first. Diagnostic recovery directories are ignored by Git.
  • Made pdk diag reuse Adopt's own local readiness assessment, so missing supported-toolchain declarations or standard authoring integration are reported before template-sync reports the same prerequisite work.
  • Clarified that unresolved edited template files stop a normal template-sync --apply without writing anything; only the explicit --local-only review route writes adjacent .new copies.

0.60.0 (2026-09-05)

  • Made Bootstrap fall back from exhausted transient VS Code Marketplace failures to exact reviewed Open VSX extension releases. Fallback archives are identity/version/licence checked and cached by extension, release and platform, with the selected source and cache result shown in apply output.
  • Added architecture-aware Windows Pango integrity checks and conditional repair for Bootstrap and pdk diag --apply. ARM64 uses CLANGARM64 and x64 uses UCRT64; both verify the expected DLL, pacman package, persistent and current environment, and a fresh-process native-library load without a restart.
  • Reorganised the installation guide around a single Python and virtual- environment preparation path, with benefit-led guidance for choosing installation routes, authoring features and lifecycle tools.
  • Made Bootstrap record Mermaid and maths component choices so pdk adopt can later repair the selected toolchain without asking for initial configuration. Diagnostics now identifies when a different project's virtual environment is active, runs Mermaid browser checks explicitly headless, and accepts a successful render with Mermaid's bundled browser without requiring a separate Chrome or Chromium installation.
  • Made Bootstrap configure the VS Code code command automatically on macOS by adding the application-owned command directory to the user's shell profile. Existing working commands and profile content are preserved, and the change is idempotent across reruns.

0.59.0 (2026-09-05)

  • Raised the supported Zensical floor to 0.0.59 after comparing the generated Extensions website and PDF with the previous supported release.

  • Preserved Zensical's syntax-token markup through the Pandoc conversion so highlighted code blocks in PDFs use its light-theme palette, with darker name text for print contrast, without losing line breaks or guessing the source language.

  • Changed PDF code from a fixed point size to Zensical's relative 0.85em scale, so code follows changes to the surrounding text size, increased its character weight to medium for print clarity, and reduced its background from about 13% to 4% shading. Inline code is optically aligned with body text.
  • Gave complete website content-tab groups a persistent table-style border and theme-aware hover shadow, 3% selected-tab shading and balanced content spacing, and made PDF tab panels use subtler 5%/1% header and content shading with matching rounded outside corners. Copy-to-clipboard controls are now visible before hover as well.
  • Changed prodockit pins so every standard interactive suggestion uses the complete software combination tested by the installed Prodockit release, including Zensical, WeasyPrint, Markdown, PyMdown Extensions, Pandoc, and Python. Newer PyPI releases remain visible and can still be selected explicitly with typed input or --latest; accepting the defaults restores a project to the supported combination even offline.
  • Made pdk diag warn when declared tool versions do not match that supported combination and direct the author to pdk pins. Diagnostics reports this as manual remediation and does not offer it as a pdk diag --apply action.
  • Made prodockit adopt install, upgrade or downgrade its active Python packages and project-local Pandoc to the exact combination carried by the installed release. Adopt now aligns complete project declarations without a template dependency, blocks safely under the wrong Python before mutation, exposes commands and files in --dry-run, verifies the result, and supports bounded retries, configured mirrors, validated caches and explicit offline operation. Separate six-platform installed-wheel jobs exercise genuine upgrades from unmodified previous PyPI packages and Pandoc, plus genuine Pandoc downgrades from the adjacent newer release. The harness never changes installed metadata or substitutes fixture code. Existing managed Python packages are replaced directly without re-resolving unchanged dependencies, avoiding unavailable optional transitive wheels such as Brotli on Windows ARM64; genuinely missing packages retain normal dependency resolution.
  • Made Bootstrap refresh managed shared files from the running candidate release rather than allowing an older template environment to restore stale copies during first-time setup.
  • Made prodockit template-sync --apply align the active environment to the exact Prodockit release paired with the selected template, continue safely in a fresh process, and run Adopt before changing template files. Package and Adopt changes have separate default-No confirmations; explicit flags support deliberately unattended and offline runs, and failed prerequisites leave the template update untouched and resumable.

Implemented functionality

  • Authoring: Markdown extensions provide numbered headings, references, citations, glossaries, bibliographies, tables, numbered steps, directory trees, captions, acronyms, and a generated index.
  • Website integration: Zensical macros, shared styles, configurable heading numbering, and optional Mermaid and MathJax support integrate the components into an existing or template-based documentation website.
  • PDF output: prodockit pdf consumes a completed Zensical website and creates a styled PDF with chapters, cross-page links, figures, tables, references, headers, footers, and an optional index.
  • Project setup: prodockit adopt adds components to an existing Zensical or Zensical project, including one that retains a compatible MkDocs configuration filename; prodockit bootstrap automates a complete template environment.
  • Project maintenance: read-only environment/project diagnostics, template sync, repository metadata sync, version pin checks, shared-file checks, source bundles, and built-output tests keep projects reproducible.
  • Publishing: the maintained template supplies reviewed GitHub Pages and GitLab Pages workflows for the website and PDF.

0.58.0 (2026-09-04)

  • Made Adopt's installed-wheel checks tolerate one classified transient npm or Mermaid failure without hiding deterministic regressions. Mermaid health probes now use the PDF renderer's browser sandbox settings and a less brittle timeout, failed checks retain a structured report, and repeated scenarios no longer reinstall identical renderer combinations unnecessarily.
  • Added a repair-disposition registry and read-only pdk diag --dry-run preview. It lists every bounded repair option, warning, affected path, recovery boundary, and command that could be used without choosing or executing one. Independent project repairs prefer Adoption and the existing focused Prodockit commands; no diagnostic fix depends on prodockit-template. Diagnostic JSON schema version 2 exposes the same policy and unselected choices for automation.
  • Added the generic diagnostic repair transaction and adapted stale distribution metadata to it. Interactive pdk diag --apply now prints its complete plan, repeats warnings, and requires an exact default-No confirmation for each supported mutation. Confirmed actions receive an atomic recovery manifest with hashes; verification failures roll back, redirected input is refused, and JSON mode keeps prompts off stdout.
  • Added Stage 3 diagnostic repairs for individually declared shared files and inconsistent pins. Shared files can be reviewed, created, or restored from the installed release; pins can only align to an already detected bounded version. Each decision remains separate from its exact-y confirmation, uses the existing typed service, is atomically written and verified, and is independently recoverable without consulting a template. Repair output now uses bootstrap's phase boundaries, stage headings, and warning/failure colours.
  • Added Stage 4 locked renderer recovery. With explicit --online and two default-No decisions, diagnostics can rebuild project-local Mermaid or MathJax dependencies using immutable npm ci, regenerate MathJax website assets, verify a real render, and roll back on failure. Custom paths, partial or unpinned manifests, author lifecycle scripts, and symlinks are refused.
  • Added Stage 5 narrowly lossless zensical.toml repairs for uniquely suggested Prodockit spellings, obsolete index settings, extensions proved necessary by author syntax, and recognized existing Prodockit assets. Each edit preserves unrelated formatting and comments, verifies the parsed result, and remains independent of prodockit-template.
  • Completed Stage 6 with Ubuntu, Windows, and macOS diagnostic-repair acceptance coverage for fully repairable, mixed, and ambiguous projects; renderer rollback and MathJax regeneration tests; UTF-8, CRLF, and paths containing spaces; and complete author, recovery, JSON compatibility, and template-sync preflight guidance.

0.57.0 (2026-09-03)

  • Added an explicit pdk diag --apply repair for unambiguous stale Prodockit and Zensical distribution metadata in the active virtual environment. The repair quarantines recoverable entries, refuses ambiguous or external environments, and makes template-sync --apply stop with targeted guidance when metadata must be repaired first.
  • Made template-sync --apply copy the template's complete managed dependency pins non-interactively, preserving version operators and extras so an adopted project receives the same reviewed toolchain as the template.

0.56.0 (2026-09-03)

  • Made template-sync repair missing or outdated stylesheet and JavaScript configuration while preserving author additions, seed absent author-owned assets without replacing existing content, and refresh managed PDK styles. pdk diag now reports local CSS and JavaScript omitted from zensical.toml.

0.55.0 (2026-09-02)

  • Added {{ applied_release }} so a template-derived site and PDF can show the last prodockit-template release successfully applied, independently of the student's own repository tags. Bootstrap records the initial release and template-sync --apply advances it only with a successful update.
  • Replaced Prodockit's duplicate site_name and release variables with Zensical's native {{ config.site_name }} and {{ git.short_tag }} values.
  • Made prodockit pdf stop with actionable guidance when it detects a stale or mismatched Python environment, before rendering can produce misleading failures or incomplete output.

0.54.1 (2026-09-01)

  • Made Bootstrap retry transient package-service failures, including Snapcraft HTTP 408 responses, and made the native release tests validate, cache, and switch between compatible sources for immutable downloads.
  • Made Adoption without Mermaid or maths agree with project diagnostics: unused Zensical Markdown defaults no longer require the optional PDF renderers.
  • Made Adoption, Bootstrap, and project diagnostics exercise Mermaid rendering and MathJax module loading instead of accepting incomplete npm installations because their shim, script, or package directory exists. Browser diagnostics now execute Chrome/Chromium, and index diagnostics verify PyMuPDF can import.

0.54.0 (2026-09-01)

  • Added read-only pdk diag environment and project health reports, with verbose, online, stable JSON, and author remediation for every check.
  • Kept paired captioned PDF images centred at their authored width.

0.53.0 (2026-08-31)

  • Kept .web-only images hidden inside captioned PDF figures, preventing paired website and PDF diagram variants from both appearing in the PDF.
  • Added top, middle, and bottom vertical alignment for individual table cells, with top alignment as the website and PDF default.

0.52.0 (2026-08-31)

  • Made Adoption write valid YAML callbacks, repair legacy callback strings, and recommend strict builds using the project's discovered configuration file.
  • Extended table widths to promoted header rows and grouped column headers, distributing grouped widths according to their columns' content.
  • Simplified the canonical analytics consent dialog and made accepting optional analytics reliably enable measurement.

0.51.4 (2026-08-30)

  • Made Bootstrap safely upgrade unsupported prerequisites and resume after inconclusive installers; made Adoption refresh its version floor and managed pdk.css.

0.51.3 (2026-08-30)

  • Added Bootstrap acceptance coverage for Surrey GitLab and public GitHub, using new and existing repositories across supported operating-system and processor combinations.

0.51.2 (2026-08-30)

  • Made template-sync --apply create its review branch and GitLab merge request, while aligning build-input declarations and refreshing declared shared files.

0.51.1 (2026-08-29)

  • Made template-sync fetch the released template selected for the project's host instead of silently using a nearby checkout. Surrey projects use the Surrey GitLab template and other supported projects use the canonical GitHub template; a local checkout now requires explicit --template-path.

0.51.0 (2026-08-29)

  • Promoted the tested machine and template setup workflow to the public prodockit bootstrap command, also available as pdk boot. The preview pdkboot executable has been removed; existing .pdkboot.toml configuration files remain valid.
  • Improved Bootstrap progress and failure messages, prerequisite ordering, repository handling, and verification of the exact published Pages site.
  • Expanded adoption to preserve both string and mapping extension configurations, configure tree icons, and install shared diagram styles without copying the Prodockit website's own branding.
  • Made generated table-caption anchors local to each page so captions in different Markdown files remain distinct.

0.50.1 (2026-08-29)

  • Made website figure captions use the rendered figure width instead of the theme's narrower default caption measure.