> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atconseil.info/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> What shipped in TestPulse, version by version.

<Note>Recent releases are detailed below. The full history since the very first version lives in the [repository changelog](https://github.com/AlexThibaud1976/TFS_Reporter_Addon/blob/main/docs/CHANGELOG.md).</Note>

<Update label="v2.40.0" description="2026-07-27">
  **A brand-new visual identity, unified across every tab.**

  TestPulse gets an identity of its own: a **teal palette**, **Public Sans** and **JetBrains Mono** typography, and eight tabs that are finally visually consistent. The fonts are **bundled into the extension** — the interface renders identically even on an air-gapped on-premises instance, with no external font download. This is a **purely visual refresh**: behaviour, navigation, data and Azure DevOps calls are strictly unchanged. A dark theme is prepared under the hood but not yet enabled.
</Update>

<Update label="v2.39.0" description="2026-07-27">
  **Repository — generate an Azure DevOps test plan from a folder.**

  Turn any Repository folder into real ADO plan and suites, the way Xray's context actions do. Three destinations: a **new plan** (with Area and Iteration Path, optionally mirroring the folder tree into static suites), an **existing plan**, or an **existing static suite** — its suite tree loads on demand, and requirement-based suites are shown but not selectable since they populate by query. Nothing is written until you confirm a **counted preview**: plans and suites to create, suites reused by name, cases to add after de-duplication, duplicates skipped. The result is a **snapshot, not a mirror** — no later resync. This is the first Repository capability that **writes to Azure DevOps**, always explicit and previewed; it reuses the already-declared plan-creation permission, with no new scope.
</Update>

<Update label="v2.38.0" description="2026-07-25">
  **Repository, now usable at scale.**

  * **Auto-seed the folder tree** from your **Area Paths** or your **plan/suite hierarchy** — additive and idempotent (existing folders reused by name, nothing renamed or moved), with a counted preview before any change.
  * **Bulk operations**: tick cases by row, "select all" bounded to the visible filtered results, then assign or remove a whole batch in a single atomic write with an exact report.
  * **Readability**: descendant-inclusive case counts per folder, a **flat view** listing every filed case with its full folder path, and the ADO-orphans node renamed **"Not in any plan"** to avoid confusion with "unfiled".
  * **Manual ordering**: reorder cases within a folder by drag & drop or keyboard; sort by id, title or manual — a manual order is never overwritten silently.
</Update>

<Update label="v2.37.2" description="2026-07-23">
  **Repository — field fixes (cloud).**

  A genuine WIQL failure now surfaces an **error banner** instead of a silent empty screen; the tree no longer looks like it vanished when the test-case universe read fails (the two reads are now independent); and WIT URL resolution falls back to an already-resolved base on the cloud organizations where it could otherwise fail with no recourse.
</Update>

<Update label="v2.37.0" description="2026-07-23">
  **Repository — reliability fixes + atomic storage.**

  Fixes the empty tree on-premises, the re-scan error on cloud, the WIQL 403 / empty tab on cloud, and hidden read failures that now surface as an error banner. Storage moves to a **single atomic document** (one read, one write per change), and existing repositories are **migrated automatically and without loss** on first load.
</Update>

<Update label="v2.36.0" description="2026-07-22">
  **A new "Repository" tab.**

  Organize and find your Azure DevOps test cases in a **free, project-shared folder tree**, Xray-style, **without ever modifying ADO data** — the Repository stores references, never copies. Create, rename, move and delete folders at any depth (native drag & drop), file a case with "Move to…" (keyboard equivalent throughout), and search by title, id or tag across the whole project. An **"Unfiled"** node is the set of cases not yet filed, always recomputed. Expand a case to see **"Used in N location(s)"** (plan › suite), and run an **explicit orphan scan** — never automatic — to surface cases that live in no plan. **Read-only, no new permission, no new dependency.**
</Update>

<Update label="v2.35.0" description="2026-07-21">
  **Exploratory sessions — reliable close + PDF report.**

  Closing a session is now reliable — no more sessions stuck "active" after a restore, and Azure DevOps errors are shown clearly instead of a raw object. A finished session can be exported as a **signed PDF report** (charter, full timeline, created work items, embedded screenshots, tester signature on every page) in French or English; a second button exports **all closed sessions of a story** in a single PDF. Screenshots are embedded when possible and gracefully listed by name otherwise — the report never breaks.
</Update>

<Update label="v2.34.1" description="2026-07-20">
  **Work-item links open correctly on-premises.**

  On the **Test coverage** and **Explore** tabs, external links (run, test case, bug, plan) no longer open a blank page on ADO Server 2022.1 — they now go through the host navigation service. The "Last run" column keeps a single link per row, and plan navigation stays at the Scope level, now suite-aware so it never lands on an empty plan page. No new scope, no write.
</Update>

<Update label="v2.34.0" description="2026-07-18">
  **Configuration-aware coverage & change detail on the work item.**

  * **The "Last run" now follows the story's own configuration.** When one test case covers several sibling stories that differ only by test configuration (Italy / Singapore / Korea…), the [Test coverage tab](/en/work-item/test-coverage-tab) no longer shows a sibling's more recent run: it resolves the last execution from **this story's own requirement-based suite**. The "Last run" links open the **exact result**, and each row can open the **exact executed suite** instead of a blank plan page. Scope options are labelled **plan · configuration** when a configuration is known. Stories without a requirement-based suite keep the previous behaviour.
  * **"Modified after last run" now shows what changed.** The badge gains a **Show detail** button: expanding it lists the **business fields** changed since that run — Acceptance criteria, Description, State, Priority, Iteration, Tags, Title — as *before → after*, with added wording highlighted on rich fields, a *feeds depth analysis* marker on Acceptance criteria / Description, and any attachments added or removed. The revision read is **lazy and opt-in** — nothing is fetched until you expand.

  Read-only throughout.
</Update>

<Update label="v2.33.0" description="2026-07-16">
  **Exploratory sessions — a new "Explore" tab on the work item.**

  Run an exploratory testing session from the user story itself: a pre-filled charter, timestamped notes, and **Ctrl+V** to paste a capture of any screen or application (desktop apps included). Each capture opens in an **annotation editor** — arrow, rectangle, text, highlighter and **blur** to mask sensitive data — and is attached to Azure DevOps only when you validate it. From the session, **create a bug, task or test case** with repro steps generated from your notes; **ending the session archives it as a Task** tagged `exploratory-session`, carrying the full report and every relation, natively queryable. Resilient by design: debounced autosave, automatic restore, non-destructive retry. Requires the new **work-items write permission** — an administrator must re-approve the extension after this update.
</Update>

<Update label="v2.31.0" description="2026-07-08">
  **Suite × configuration grid in exports: now opt-in.**

  The grid shipped in v2.30.0 was rendered in PDF and Word exports with no way to turn it off. It is now a first-class export section, **disabled by default**: enable it under **Settings → Report sections → Suite × configuration grid**. The toggle is independent from the *Results table* section, and the grid still auto-hides when the plan declares no configurations — even when enabled. The Report tab, its badge and the summary alert are unchanged. [Learn more](/en/reports/suite-configuration-matrix).
</Update>

<Update label="v2.30.0" description="2026-07-04">
  **Insights pack.** Four deterministic signals, each in its host screen — no new screen, no new permission.

  * **Stale coverage** ([Requirement Drift](/en/quality/requirement-drift)) — requirements modified after the last run of their linked tests, with the plain-spoken counter *"N Passed no longer prove anything"*, the changed field, filter chips and a project option to ignore title-only changes. A *"Modified after last run"* badge on the work item tab, a *Stale* column in the PDF/Word traceability.
  * **What to run today** ([Cockpit](/en/cockpit/execution-cockpit)) — the remaining points ranked by a transparent weighted score, three fixed profiles (Strict / Standard / Onboarding) stored at project level, a per-row score breakdown and one-click execute links.
  * **[Suite × Configuration matrix](/en/reports/suite-configuration-matrix)** (Report) — the full suites × configurations grid with assumed gaps, gap nudges that only appear when gaps exist, shared reversible *not applicable* markings, and the grid in PDF/Word exports.
  * **Remaining effort** (Cockpit) — tester-days from the median of observed durations (P25–P75 range, per-suite medians), working-days finish date, two simulation sliders, assumptions always displayed — an estimate, not a commitment.
</Update>

<Update label="v2.29.5" description="2026-07-03">
  * **Coverage plan insights & execute links** — with the Planning scan on, the [Coverage Builder](/en/coverage-builder/overview) shows per requirement where its tests are planned (Plans column), expandable to each plan/suite with a *Run in Azure DevOps* link and a lazily-fetched n/m execution progress. No extra API call at table load.
  * Every application plan link now opens the **execute** view instead of the composition view.
  * **Cockpit — readable & honest burndown** — dated axis, legend and markers; the projection pauses after 14 days without execution; the progress panel always shows suites and configs; honest states replace any blank chart.
</Update>

<Update label="v2.29.4" description="2026-07-02">
  * **Cockpit on-premises fixes** — execution dates are now resolved on servers that don't expose them through the newer API (with a read-only fallback), and a completed campaign shows its real finish date instead of an empty chart. Also improves the *Last run* column and freshness signals on-premises.
</Update>

<Update label="v2.29.3" description="2026-07-02">
  * **Coverage Builder — under-counted coverage fixed** — *Tested By* links are now resolved in both directions, so a story visibly linked to several test cases no longer shows as a false gap on Azure DevOps Server.
</Update>

<Update label="v2.29.2" description="2026-07-02">
  * **Coverage Builder — Planning scan no longer loops on large repositories** — the scan resolves planning **per test case** (bounded, deduplicated, with short timeouts) instead of enumerating every plan and suite of the collection. Same semantics, usable at enterprise scale.
</Update>

<Update label="v2.29.1" description="2026-07-02">
  * Link to this online documentation added to the extension footer and docs badge.
</Update>

<Update label="v2.29.0" description="2026-07-02">
  * **[Execution Cockpit](/en/cockpit/execution-cockpit)** — a new hub tab: a per-plan execution burndown in test points (actual from daily snapshots, rebased ideal, pace projection), an honestly tracked moving perimeter, behind-pace suites/configs, a local target when the plan has no end date, and a closing nudge for stalled campaigns. Read-only; snapshots live in Extension Data — nothing leaves your tenant.
</Update>

<Update label="v2.28.0" description="2026-07-02">
  * **Test coverage tab — navigable** — all five columns sort (persisted per work item), the *Last run* cell links to the run, and a scoped plan links straight to its execution view.
</Update>

<Update label="v2.27.2" description="2026-07-01">
  * **Test coverage tab** — the scope selector shows whenever the story is covered, and each test case ID is clickable.
</Update>

<Update label="v2.26.1" description="2026-07-01">
  * **On-premises fix** — results on the Test coverage tab resolved correctly on Azure DevOps Server (tests no longer all shown as *Not run*).
</Update>

<Update label="v2.26.0" description="2026-07-01">
  * **[Execution verdict banner](/en/work-item/test-coverage-tab)** on the Test coverage tab — Passed / Not OK / Not Run / Not covered, with strict precedence, recomputed instantly with the scope.
</Update>

<Update label="v2.25.0" description="2026-07-01">
  * **[Coverage scope selector](/en/work-item/test-coverage-tab)** on the Test coverage tab — frame the pass/fail on *Latest (all plans)* or a specific plan, remembered per work item, switched in memory with no new read.
</Update>

<Update label="Earlier versions">
  Report generation and the five exports, Epic→US→TC→Bug traceability, the Quality Gate (A–E grade, GO/NO-GO verdict, profiles and risk-based weighting), the dashboard widget, Requirement Drift, the Coverage Builder, coverage depth, imports, notifications, scheduling and much more — see the [full changelog on GitHub](https://github.com/AlexThibaud1976/TFS_Reporter_Addon/blob/main/docs/CHANGELOG.md).
</Update>
