Changelog
Release notes for covdbg.
v1.4.0
Measures code in shared libraries: DLLs your tests link against or load at run time. Signing in now picks the team your runs are licensed for.
Highlights
- Shared library coverage: select DLLs under
modulesin.covdbg.yaml, with the same patterns asfiles, matched against the DLL's path. covdbg instruments a selected library as soon as Windows maps it, before any of its code runs, whether the executable imports it or loads it later withLoadLibrary. A library unloaded before the process exits keeps its coverage, and each library is written to the output database as a module of its own. Target-specificextendandoverrideapply tomodulestoo, and withfollow_childrenthe selection covers every followed process. See Shared Library Patterns. - Sign in for one team:
covdbg loginends with a team step in the browser, or takes the team up front with--team <slug>(--team personalfor personal use). It printsSigned in as <email> for <team>.covdbg whoamiasks the service who the machine is signed in as and for which team, falls back to the stored sign-in when the service cannot be reached and says so, andcovdbg whoami --jsonprints the answer as one object for scripts and tools. See the sign-in commands.
Changes
- Libraries are opt-in: without
modules.include, covdbg measures only the executable, as before. - When libraries are selected, an executable with nothing of its own to measure, such as a test host or
python.exe, runs unmeasured instead of stopping the run with "no functions to track". A run that measures nothing at all fails with "Nothing was measured". - List a DLL under
baselineto have it reported at 0% when no test loads it; when a run does measure it, its hits are merged into the same module. - The
covdbg mcpguide has a newlibrariestopic. - A seat licenses your runs in the team you signed in for. To use another team, run
covdbg login --team <slug>. - A refused run names the sign-in it was decided for, as in "signed in as
for ". When the account holds no seat in that team, the console shows the service's explanation.
Fixes
- covdbg no longer leaks a file handle for every DLL the target loads.
- A sign-in or project token the license service rejects is now refused, with a message to run
covdbg login, instead of running on the offline grant. An unreachable service still uses the cached decision as before.
Read the 1.4.0 announcement for examples and upgrade steps.
v1.3.0
Adds coverage tools for AI coding agents, portable HTML reports, child-process coverage, and a new sign-in and seat-based licensing system.
Highlights
- MCP server:
covdbg mcplets coding agents discover executables, start and monitor coverage runs, merge results, rank uncovered files, read source context, and query coverage with read-only SQL. The built-in guide helps configure a useful measurement. The agent makes test edits with its own tools; coverage success does not mean the tests passed. See MCP setup. - HTML reports:
covdbg convert -i coverage.covdb -f HTML -o coverage-htmlexports a report you can open locally or publish to a static host. Browse files and functions, inspect execution counts, and navigate uncovered lines in light or dark mode. Assets are bundled, and readable file pages remain available without JavaScript. See HTML reports. - Child-process coverage: opt in with
--follow-children,COVDBG_FOLLOW_CHILDREN, orsettings.follow_childrenin.covdbg.yaml. Coverage from instrumented descendants is merged into the same output database. Target-specific settings let you enable it only for the test runners that need it. - Sign-in replaces license files: use
covdbg login,covdbg whoami, andcovdbg logoutfor local development. CI usesCOVDBG_PROJECT_TOKEN. Sign-in credentials and cached licensing decisions are stored in Windows Credential Manager. See licensing and migration guidance.
Changes
- Signed-in developers can measure public repositories for free and use one private repository at a time under personal use. A team seat covers local work across repositories; the team's CI project token covers commit authors with seats in that team. Cached decisions can keep runs working while the license service is temporarily unavailable, until the decision expires.
- A run without
--outputnow writes.covdbg/coverage.covdbin the working directory. Application data and logs also use that directory. - The console keeps the target program's output, a start line, and the coverage summary. covdbg errors go to stderr.
--log-levelcontrols the categorized log file, withDEBUGas the default andNONEto disable it. Gated reports explicitly identify the restriction to the ten most-hit files. - Configuration discovery checks the working directory before the target executable's directory. If no
.covdbg.yamlis found, the error lists the searched locations. - The Windows installer installs for the current user without requiring administrator rights.
- Run telemetry reports version, Windows version, duration, and exit code for the account dashboard. Set
COVDBG_TELEMETRY=offorsettings.telemetry: falseto disable it. Telemetry service failures do not affect a run.
Fixes
- Corrected repository detection for Git worktrees and CI attribution to the commit author, including pull-request merge checkouts.
- Fixed launching relative executable paths containing forward slashes and passing target arguments that share names with covdbg options.
- Fixed lost trailing output from fast-exiting targets and coverage loss when a target crashes. Handled exceptions no longer terminate the target prematurely.
- Failed database saves now report failure instead of success. Incompatible database schemas are rejected explicitly, and stored coverage summaries remain consistent after gating or clearing coverage.
- Reduced repeated source-file pattern matching when analyzing functions, improving runs that follow child processes.
Removed options and migration
- Removed
--license,--license-file,--fetch-license,--demo,--plugin-name, and--plugin-ver, plusCOVDBG_LICENSE,COVDBG_LICENSE_FILE,COVDBG_ACTIONS_TOKEN, andCOVDBG_ACCOUNT. Update scripts to usecovdbg loginlocally orCOVDBG_PROJECT_TOKENin CI. - Removed
--appdata,COVDBG_APPDATA, andlicense_status.json. Application data stays in the working directory's.covdbgfolder; usecovdbg whoamito check sign-in. - Removed the
--dlloverride and the EntrypointPatch injector. Run mode uses the bundled agent DLL and APC injection.
Read the 1.3.0 announcement for examples and upgrade steps.
v1.2.0 - April 24, 2026
Added baseline coverage support in .covdbg.yaml for both global settings and target-specific overrides.
Highlights
- Run mode can analyze baseline executables before the main target and merge those zero-hit baselines into the final
.covdboutput. - Target-specific
baselineentries now support bothextendandoverridebehavior. - Baseline configuration is documented in the CLI and configuration reference, with integration coverage for the new flow.
v1.1.0 - April 6, 2026
Expanded licensing and local demo workflows for the VS Code extension integration.
Highlights
- Added
--demosupport for auto-fetching plugin demo licenses, plus--plugin-nameand--plugin-vermetadata options. - Extended license fetch and validation metadata to support richer demo and plugin scenarios.
v1.0.0 - February 17, 2026
Initial public release of covdbg with full Windows support.
Known Limitations
- x64 architecture only (ARM64 planned)