You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added explicit QA knowledge authority (team-policy, repository-contract, or qamap-inference) and harness test classes (golden, regression, or edge) to human reports, agent handoffs, and the additive v1 schema.
Added a working-tree-only current delta that isolates uncommitted files and changed test contracts from older branch history.
Added an evidence-gated validation-recovery compiler. When a diff-backed form timing change connects to a route, validated input, visible error, submit action, and visible success result, QAMap now compiles both a valid submission path and an invalid-input, correction, and stale-error recovery scenario.
Added a third seeded-regression execution contract that requires the byte-identical generated browser artifact to fail when corrected input leaves stale validation feedback and pass when first-touch revalidation is restored.
Added native Codex and Claude Code plugin manifests that expose the existing vendor-neutral qamap-pr-qa skill without duplicating the local analysis engine.
Added Codex skill presentation metadata and a plugin contract test that keeps both host manifests, the npm package, and the shared skill version aligned.
Added multi-commit benchmark fixtures: a target can declare ordered commits overlays instead of a single head/ snapshot, and a mustNamePrimaryIntent expectation pins which intent must rank first. A new cleanup-tip fixture materializes a feature commit followed by fix: minor refactor and requires the feature to stay in the headline, flow title, and draft filename.
Added restored to the visible success-outcome vocabulary so standard "restored to defaults" confirmations qualify as diff-anchored success signals, matching the existing completed-state words such as updated and archived.
Changed
Newer independent change intents and current local test commands now rank ahead of stale branch history, while the complete branch remains available for wider impact analysis.
Latest-commit diff evidence is reserved before the bounded branch-wide scan, preventing a large accumulated PR from hiding the current behavior and its test contracts.
Agent payload compaction preserves current-delta evidence and authority metadata on retained flows while remaining below the 4KB contract.
Form validation timing detection now reads the changed hunk and uses word-bounded form context, preserving framework-neutral React and Vue cases without treating unrelated format-mode vocabulary as product validation QA.
The agent skill now converts route.nextAction into exactly one immediate action and reports later command execution separately from QAMap's static not-run receipt.
qamap init --agent now installs the complete skill bundle, including optional host metadata, while continuing to preserve locally modified skill files unless --force is explicit.
QA handoffs now prefer test contracts changed by the current PR over broader historical filename or keyword matches, while keeping unrelated changed tests out of individual flow evidence.
Safely recognized npm, pnpm, and Yarn workspaces now place one behavior-linked changed-test command per affected package before the unchanged package suites. Ambiguous custom pipelines remain suite-wide.
Automatically selected package commands now include the package directory, so copied commands execute from the workspace root instead of depending on an unstated working directory.
Unrelated feature tests no longer attach to a flow merely because both paths contain generic structural words, and standalone nested packages with their own lockfile can route changed contracts to their package suite.
Changed-test contract extraction now ignores test-like source strings embedded inside fixture builders instead of reporting them as executable repository tests.
Compact agent handoffs now retain one repository test-evidence path for secondary affected flows instead of dropping that trace during the 4KB payload reduction.
Fixed
Symbol-derived lifecycle labels now read behaviorally instead of exposing raw identifiers. Setter-derived state changes phrase the target ("Update the form error state." instead of "Update state through form.setError."), and side effects, outcomes, and other calls that cannot be phrased naturally mark the identifier as code with backticks ("Invoke fetch."). Exact symbols remain on each stage and its evidence, and implementation-stage classification now keys on the structural symbol instead of parsing the label text.
Issue-tracker tags such as [ABC-123] in commit subjects now survive exactly once, in the intent title, instead of repeating through every derived lifecycle label, assertion, and success signal. Subjects that lead with a tag ([ABC-123] fix: …) now also parse as conventional commits instead of falling back to raw-subject heuristics.
Two-letter all-lowercase directory segments (ee, ui, db) keep their acronym form in derived flow, domain, and test-plan names instead of producing labels like "Ee". Longer segments are untouched because three-letter directories are often plain words.
Success signals no longer restate the flow title as their own proof. When no diff-anchored observable outcome exists, the flow says so explicitly ("no diff-anchored observable outcome was extracted from this change — define the expected user-visible result manually"), the review question asks what the outcome should be, fallback draft steps ask to define the signal instead of asserting the gap statement, and the machine-readable brief carries successSignalUnresolved: true. Concrete diff-anchored signals are unchanged.
Compacted agent payloads no longer emit partial identifier values. Draft paths, changed files, existing evidence, selectors, entry hints, and commands stay whole at every compaction stage; an oversized payload drops whole optional values — disclosed through the existing omitted counts — instead of truncating a path the consuming agent could not open. base, head, and manifest stay whole up to 256 characters. The previously undocumented floor and hardLimit compaction flags are now part of the documented schema.
qamap qa --format agent now writes the pre-compaction summary to a temp file and discloses it as compaction.fullReport (additive v1 field), so an agent can recover omitted traces, scenarios, and flows without re-running the analysis. The analyzed repository stays untouched; the library export formatAgentQaFullReport produces the same document.
Fixed change-intent review ranking so a cleanup-shaped tip commit (for example fix: minor refactor or fix: tidy up and add tests) no longer displaces the branch's substantive intent from the headline, scenario names, and generated draft filenames. Cleanup-only intents are demoted below substantive intents but never dropped, and pure-cleanup branches keep their newest intent first. Observed on real public PR branches, where review-feedback commits routinely close a branch.