Skip to main content

Changelog

v1.31.1 — 2026-06-29

Bilingual Gherkin keywords (EPIC U)
  • French Gherkin scenarios are no longer blocked at push: TestForge now recognises both English keywords (Given/When/Then/And/But) and their French equivalents (Soit/Étant donné/Quand/Lorsque/Alors/Et/Mais) when deriving the ADO steps. Only a scenario with no recognised keyword in either language still blocks.
  • Generation keeps the structural keywords in English (BDD grammar) while the step text follows the user story language; the validation label is localised from the story language (Vérifier : for French stories, Verify: otherwise).
  • Fixes a latent regression of mono-format Gherkin (v1.31.0), where the parser recognised English keywords only and the classic-steps fallback had been removed.

v1.31.0 — 2026-06-28

Mono-format manual test generation (EPIC U)
  • Choose the manual test format — Classic steps or Gherkin BDDupfront, before generating; TestForge produces a single, editable representation instead of parallel steps plus a read-only Gherkin view.
  • The Gherkin scenario is now editable, and the push derives the ADO steps from your edited scenario — blocked with an actionable message if it is no longer derivable (no silent push of an empty Test Case).
  • The Steps/Gherkin view toggle and the separate push-format toggle are gone — one source of truth.
  • Cucumber generation now requires Gherkin mode: cases generated as Classic steps prompt an explicit “regenerate in Gherkin mode” message (no extra LLM call, no mechanical conversion).
  • Fixes the “Gherkin scenario not available” gap on negative and edge cases — every case now carries a scenario, with the failure expressed in the Then.

v1.30.0 — 2026-06-24

Harmonised buttons across every screen (EPIC T)
  • Every interactive control now goes through the design-system Button, so the look stays consistent and theme-aware (light/dark) on every screen — no raw buttons left anywhere.
  • A clear action hierarchy signals intent at a glance: the Cockpit Generate is teal (the product’s happy path), screen-level primary actions (Save, Test connection, Generate code, Push, Attach, Rewrite) are navy, secondary/remediation actions (Improve, Score, Re-score, Re-evaluate, Cancel/Confirm) are outlined, toggles are pills, and discreet links are ghost.
  • Keyboard users get an accessible :focus-visible ring. A guard test locks the invariant so a raw <button> can’t silently creep back into a screen.

v1.29.0 — 2026-06-23

The Quality Cockpit remembers your scope (EPIC S)
  • The Cockpit now remembers the last area path + iteration you used and restores them when you come back, per project. The preference is personal (stored in your User scope, never shared with the team) and restored defensively — if a remembered area or iteration no longer exists, it’s simply ignored, with no query against a phantom scope.

v1.28.0 — 2026-06-23

Automated tests reach parity with manual (EPIC S)
  • The Automated tests tab now offers the same generation controls as the manual screen: opt-in linked work-item context, attachments and a pasted spec excerpt, and test count per typology — all wired into code generation (enriched context + a best-effort per-typology count directive, filtered to the selected typologies).

v1.27.0 — 2026-06-23

Redesigned Quality Cockpit (hybrid)
  • The Cockpit opens with a funnel (backlog → scored → ready) and a “Recommended action” card that tells you what to do next for the current scope.
  • Stories are grouped into four DoR sections — Ready, Needs improvement, Stale score, Not scored — each with one primary action. A ready story has a single Generate button that opens a Manual / Automated menu; other states show their remediation with generation locked (🔒).
  • A compliant-but-stale story now sits in Stale score (not Ready) and can’t be generated until re-evaluated, enforcing the single-entry-point gate.

v1.26.0 — 2026-06-22

The Quality Cockpit is the single entry point to generation (EPIC S)
  • The Manual and Automated tests screens no longer carry their own user-story list. You pick a ready story (DoR-compliant and up to date) in the Cockpit and choose Generate → Manual / Automated; the screen opens with the story preselected. With no preselection, the screen shows an explicit empty state with a “Go to Cockpit” button.
  • “Analyze (INVEST)” is removed from the generation screens — scoring stays centralised in the Cockpit; the PO panel keeps its INVEST analysis.

v1.25.1 — 2026-06-22

Contextual typology selector
  • The test-typology chips now appear only on Manual tests and Automated tests (hidden on Quality / Config / Help). Your selection stays shared and single — it governs both manual and automated generation and persists when you switch tabs.

v1.25.0 — 2026-06-21

A DoR change flags your whole backlog — re-synced in one click, no LLM (EPIC R)
  • Changing your Definition of Ready now flags all previously scored stories as “Re-check compliance — the DoR changed”, including those scored before this feature existed (a one-shot migration).
  • A new “Re-evaluate whole iteration” action recomputes compliance cold across the iteration with no LLM call, touching only the affected stories. Progress is reported n/N; a save failure is non-blocking.

v1.24.0 — 2026-06-20

Fine-grained staleness — a DoR change no longer re-runs the LLM (EPIC R)
  • TestForge now tells apart the story changed from the Definition of Ready changed. A story edit still triggers a full re-score (LLM); a DoR threshold/rule change instead flags the affected stories “Re-check compliance” and offers a “Re-evaluate compliance” button that recomputes conformity cold, with no LLM call (the INVEST score is independent of the threshold). If both changed, the re-score wins. DoR saves now record updatedAt / updatedBy.

v1.23.1 — 2026-06-19

Idempotent quality writes (EPIC R)
  • Re-scoring an already-scored story (alone or in a burst), or re-running an iteration analysis, no longer fails with a version error. Quality writes are now idempotent: each save reads the current document version and carries it, retrying transparently on a concurrent-write conflict (multiple tabs, “Analyze all”). A genuine save failure now shows a distinct message, separate from a scoring/LLM error.

v1.23.0 — 2026-06-18

Quality Cockpit (EPIC P)
  • New Quality tab as the hub entry point: backlog stories grouped by Definition-of-Ready status, with area-path and iteration selectors.
  • On-demand and batch INVEST scoring: score a single story, or run “Analyze all” across an iteration — token estimate shown upfront, a hard cap with confirmation, non-blocking failures, and bounded retry on rate limits.
  • Persisted scores: results are stored in your own Azure DevOps tenant (never the story content — scores and analysis metadata only) and flagged as stale when the story changes, with one-click re-score.
  • Iteration average and trend: the average score of scored stories, plus a forward-only trend sparkline once at least two iterations are captured.
  • Product Owner panel detail: the work item panel shows the persisted score read-only, with an expandable INVEST breakdown (status, rationale and suggestions per criterion).

v1.22.0 — 2026-06-17

Universal Foundry model compatibility (EPIC Q)
  • Any OpenAI-style deployment now works by name, including reasoning models (GPT-5.x, o-series, DeepSeek-R1) that reject max_tokens or a non-default temperature. A shared sender adapts parameters at runtime on HTTP 400 (max_tokensmax_completion_tokens, drops temperature / response_format) and retries — with no per-model setup.
  • “Test connection” now exercises the same parameter contract as real calls and surfaces the exact error body instead of a generic message.
  • Optional “Reasoning model” toggle in Advanced Settings skips the discovery round-trip; Claude-on-Foundry and Gemini keep their dedicated providers.

v1.20.1 — 2026-06-16

Fix — saving the Definition of Ready
  • Project Administrators can now save the per-project Definition of Ready configuration (score threshold, gate on/off, mandatory criteria). The Project Admin check now runs against the Azure DevOps permissions API using your existing session — no extra extension permission is requested — and only when the Definition of Ready screen is opened.

v1.19.0 — 2026-06-13

Unified on-demand INVEST score + hub icon Work item panel (PO / BA)
  • Unified INVEST score (0–100): the score is now derived deterministically from the 6 LLM-evaluated criteria — the same source as the I/N/V/E/S/T grid. No more contradictory dual grid.
  • On demand, never automatic: the score only appears after clicking “Analyse (INVEST)”. No LLM call fires on panel open.
  • Before → after score: after “Rewrite in ADO”, the panel re-reads the server fields (GET REST — not the form cache, which caused a frozen score) and resets the analysis. Click “Analyse (INVEST)” again to compute the after score and compare improvement.
  • Actionable failure message: when no LLM is configured or the endpoint is unreachable, a descriptive message with a link to the Config tab is shown — no phantom score is displayed.
Hub
  • Hub navigation icon: the TestForge icon now appears in the ADO vertical navigation bar (iconAsset added to testforge-hub).
Definition of Ready
  • The DoR gate now uses the real INVEST LLM score and criterion statuses. Without a prior analysis, generation remains available — no automatic blocking without a score.

v1.18.0 — 2026-06-09

8 frameworks live + exhaustive Definition of Ready gate Automated test generation
  • All 8 frameworks now generate end-to-end. Cypress (JavaScript), Playwright (Python) and Playwright (.NET / C#) appeared in the framework selector but raised a “framework not supported” error at generation time because their prompt modules were missing — the three are now fully operational, with idiomatic Page Object structure and conformant file layout.
  • Added — Cucumber (Java): step definitions for io.cucumber.java, with .steps.java / .feature files.
  • Added — Cucumber (Python): pytest-bdd runner, with _steps.py / .feature files.
Quality Gate
  • The gate now covers every generation surface. When a User Story does not meet the Definition of Ready, both the manual and the automated test-generation buttons are disabled — the automated tab can no longer be used to bypass the gate.
  • Clearer feedback: a disabled generation button now shows the current score and the configured threshold (e.g. “score 52, threshold 70”) and links straight to the Product Owner panel so the story can be improved first.
  • Required INVEST criteria are now enforced: a mandatory criterion that is weak or missing blocks generation when an INVEST analysis is available; the offline, score-only check is unchanged.
  • The gate can be switched off without losing its configuration, via a new toggle in the Definition of Ready settings.

v1.16.0 — 2026-06-06

Real US ID traceability + Next Steps guide
  • Traceability annotations: generated tests now reference the real work item ID (@us-1234) instead of a placeholder.
  • Quality score — traceability dimension: placeholder and unknown IDs no longer count as a valid annotation; only real work item IDs are accepted.
  • “How to use this code” accordion: shown inline after each generation — install command, directory structure and run command for the selected framework.
  • “Full setup guide →” link: a direct link to the framework section in the documentation.

v1.15.1 — 2026-06-06

Hotfix — QA Hub loading
  • Fixed an infinite loading spinner when opening the QA Hub. Admin-role detection now runs fully offline, with no network call at load time.

v1.15.0 — 2026-06-06

Quality Gate & Definition of Ready
  • Configurable Definition of Ready: a per-project INVEST threshold (0–100, default 70) plus individual INVEST criteria marked required or optional, with organisation → project inheritance. Editing is restricted to Azure DevOps Project Admins.
  • Enforcement (levels 1 & 2): a warning banner appears in the Product Owner panel when a story is non-compliant, and the “Generate tests” button is disabled in the QA Hub when the story is below threshold or missing a required criterion. The gate runs on the offline heuristic score — no LLM required.
  • Backlog Quality dashboard: a new tab in the QA Hub listing the sprint’s stories with their heuristic score, Definition-of-Ready status and failing criteria. Recomputed on the fly, with no stored data.

v1.14.0 — 2026-06-06

Test count control
  • New TestCountPanel in the QA Hub Manual Tests tab.
  • Simple mode: global slider 2–32 with live distribution pills (e.g. 3 Nominal · 4 Boundary · 2 Equivalence · 2 Negative).
  • Advanced mode: individual sliders per typology (1–8 each), running total displayed.
  • Preferences persisted to ADO user account (test-count-config-v1).
  • generateTestCasesByTypology() accepts optional testCountConfig — fully backwards-compatible.

v1.13.0 — 2026-06-06

Polish & accessibility
  • ⚙️ Config button in work item panel now navigates correctly to the Hub Config tab.
  • Accent teal button contrast fixed: #1D9E75 + white text — contrast ratio 4.8:1 (WCAG AA).
  • Inline code blocks in Help tab: --surface-hover background — contrast ratio 15:1 (WCAG AAA).
  • All inline buttons migrated to Button design system (primary, ghost-blue, pill-on, pill-off).

v1.12.0 — 2026-06-05

Design System Refresh — Direction B “SaaS Arc”
  • Typography: Space Grotesk replaces Segoe UI.
  • Palette: marine #042C53 for hero surfaces, teal accent #22d3a5 for active states.
  • HeuristicScoreCard: hero card with 42px score, coloured level badge.
  • QaHubView: marine topbar with active provider badge.
  • New Card variants: hero and accent. Visual regression guard T-DS-16.

v1.11.0 — 2026-06-05

Branding, documentation, unified config
  • Marketplace icon (static/icon.png 128×128) and new overview.md.
  • Help tab in QA Hub: user documentation bundled as Markdown (zero network, offline-ready).
  • Unified configuration: work item panel no longer embeds a ConfigScreen.

v1.9.0 — 2026-06-05

Gherkin export, inline INVEST suggestions, AC format toggle
  • InvestSuggestion.criterion: suggestions linked to their INVEST criterion. Click a criterion cell to expand inline.
  • Export format toggle (Classic / Gherkin BDD).
  • Steps/Gherkin pills in TestCaseList: global toggle for all cases in the current US.
  • AC format toggle (Bullet list / Gherkin per AC): persisted per user.

v1.6.0 — 2026-06-04

Providers, Gherkin, code quality
  • 6 LLM providers: OpenAI, Mistral, Gemini (browser-direct) + Anthropic (client proxy).
  • Gherkin on manual tests: gherkinScenario field, pushed to System.Description.
  • 8 test frameworks: Cypress JS, Playwright Python/.NET, Cucumber JS/Java/Python added.
  • Code quality score: 5-dimension local score with warnings and Regenerate button.
  • stripHtml fix for ADO rich-text fields.

For the full commit history, see the GitHub repository.