mirror of
https://github.com/proffesor-for-testing/agentic-qe.git
synced 2026-09-19 08:45:47 +08:00
chore(release): bump version to v3.13.3
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "agentic-qe",
|
||||
"version": "3.13.1",
|
||||
"version": "3.13.3",
|
||||
"description": "Agentic Quality Engineering — AI-powered QE platform with 60 specialized agents, 75+ skills, sublinear coverage analysis, ReasoningBank pattern learning, and deep MCP integration for Claude Code and 11 coding agent platforms",
|
||||
"author": {
|
||||
"name": "Agentic QE Team",
|
||||
|
||||
@@ -940,7 +940,7 @@
|
||||
},
|
||||
"metadata": {
|
||||
"generatedBy": "Agentic QE Fleet",
|
||||
"fleetVersion": "3.13.2",
|
||||
"fleetVersion": "3.13.3",
|
||||
"manifestVersion": "1.4.0",
|
||||
"lastUpdated": "2026-04-13T00:00:00.000Z",
|
||||
"contributors": [
|
||||
|
||||
@@ -5,6 +5,49 @@ All notable changes to the Agentic QE project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [3.13.3] - 2026-07-29
|
||||
|
||||
Two independent quality-of-evidence fixes: learning capture could stop silently
|
||||
for days on a filesystem where WAL is disabled, and QE-Court shipped a default
|
||||
review panel that violated its own anti-collusion rule.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Learning capture no longer stops silently when `AQE_DISABLE_WAL` is set.**
|
||||
With that flag on, AQE tried to switch the database journal mode on *every*
|
||||
writable connection. That switch needs exclusive access, so any other process
|
||||
holding the database open — a stray MCP server, for example — made the attempt
|
||||
fail and take the whole persistence layer down with it. Hooks kept reporting
|
||||
success while nothing was being recorded, which hid the outage for days.
|
||||
|
||||
AQE now only changes the journal mode when it is actually wrong (so normal
|
||||
operation never needs the exclusive lock), refuses to write in a mode you have
|
||||
declared unsafe rather than risking corruption, and — when something really is
|
||||
holding the database — tells you the exact command that finds it instead of
|
||||
guessing which process to blame.
|
||||
|
||||
- **QE-Court's shipped default panel violated `writerIsNeverJuror`** ([#576]).
|
||||
The bundled `config.json` seated the defense and the jury on two tiers of the
|
||||
same vendor, which is exactly what the court's core anti-collusion rule
|
||||
forbids — so a brand-new project got an invalid panel with no user action.
|
||||
Worse, the rule could never have caught it: nothing turned the configured
|
||||
routing into a panel, so validation never ran outside its own unit test, and
|
||||
the config's `options` block was not wired to anything.
|
||||
|
||||
The default panel is now genuinely cross-vendor (and keeps the deeper-review
|
||||
round on a different vendor from the jury, so escalation stays independent),
|
||||
validation is a required step before a court convenes, the `options` block
|
||||
actually takes effect, and the shipped config files are checked in CI so this
|
||||
cannot regress unnoticed. Reported by @pacphi.
|
||||
|
||||
### Changed
|
||||
|
||||
- The bundled statusline refreshes every 60 seconds instead of every 5. It
|
||||
reopened the learning database on every tick, adding constant pressure to the
|
||||
same lock the fix above depends on.
|
||||
|
||||
[#576]: https://github.com/proffesor-for-testing/agentic-qe/issues/576
|
||||
|
||||
## [3.13.2] - 2026-07-24
|
||||
|
||||
Stops short-lived learning hooks from repeatedly producing
|
||||
|
||||
@@ -940,7 +940,7 @@
|
||||
},
|
||||
"metadata": {
|
||||
"generatedBy": "Agentic QE Fleet",
|
||||
"fleetVersion": "3.13.2",
|
||||
"fleetVersion": "3.13.3",
|
||||
"manifestVersion": "1.4.0",
|
||||
"lastUpdated": "2026-04-13T00:00:00.000Z",
|
||||
"contributors": [
|
||||
|
||||
@@ -4,6 +4,7 @@ All Agentic QE release notes organized by version.
|
||||
|
||||
| Version | Date | Highlights |
|
||||
|---------|------|------------|
|
||||
| [v3.13.3](v3.13.3.md) | 2026-07-29 | Learning capture no longer stops silently under `AQE_DISABLE_WAL` (it now refuses to write in an unsafe journal mode and names what is holding the DB), and QE-Court's shipped panel no longer violates its own `writerIsNeverJuror` rule (#576). |
|
||||
| [v3.13.2](v3.13.2.md) | 2026-07-24 | Stops hook-driven `brain.rvf`/`patterns.rvf` corruption loops by closing native stores after every hook and protecting same-process live locks (#574). |
|
||||
| [v3.13.1](v3.13.1.md) | 2026-07-23 | Honesty release: coverage analysis no longer reports numbers it never measured (real `cargo llvm-cov` for Rust; uncollected metrics are `null`, not 0 or 100), `test_generate_enhanced` actually calls your LLM (#567), and a HIGH advisory no longer ships via an optional peer (#565). Adds on-disk per-agent LLM routing (#568) and Codex CLI QE skills. BREAKING: coverage metrics are now `number \| null`. |
|
||||
| [v3.13.0](v3.13.0.md) | 2026-07-18 | QE-Court: adversarial review where a change is prosecuted by independent cross-vendor AI reviewers and a SHIP verdict must survive an escalating deeper review — it reviewed this release and blocked it, catching 3 data-loss/crash bugs. Adds a Codex (GPT) provider, a significance gate for the flywheel, automatic memory.db recovery, per-agent cost tracking, and clears 4 HIGH CVEs from consumer installs (#565). |
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
# v3.13.3 Release Notes
|
||||
|
||||
**Release Date:** 2026-07-29
|
||||
|
||||
## Highlights
|
||||
|
||||
Two fixes about evidence you can trust. Learning capture could stop recording
|
||||
for days without saying so on any project that sets `AQE_DISABLE_WAL`, and
|
||||
QE-Court shipped a default review panel that broke the court's own
|
||||
anti-collusion rule the moment it was created.
|
||||
|
||||
## Fixed
|
||||
|
||||
### Learning capture no longer stops silently under `AQE_DISABLE_WAL`
|
||||
|
||||
`AQE_DISABLE_WAL=1` exists for filesystems where SQLite's WAL journal is unsafe
|
||||
— notably macOS Docker bind mounts, where it has corrupted the learning database
|
||||
before. With the flag set, AQE attempted to switch the journal mode on **every**
|
||||
writable connection.
|
||||
|
||||
Changing a database's journal mode requires exclusive access. Any other process
|
||||
holding the database open makes that attempt fail, and the failure took the
|
||||
whole persistence layer down with it: the memory manager could not initialize,
|
||||
so nothing was recorded. The hooks kept returning success, so from the outside
|
||||
everything looked healthy while no learning was being captured at all. The
|
||||
condition could not clear on its own, because the switch can never succeed while
|
||||
any reader exists.
|
||||
|
||||
What changed:
|
||||
|
||||
- AQE reads the current journal mode first and only attempts a change when it is
|
||||
actually wrong. Normal operation no longer needs the exclusive lock at all, so
|
||||
the one-time migration is out of the everyday path.
|
||||
- Only genuine lock contention is treated as such. Other faults — I/O errors,
|
||||
corruption, permissions — now surface as themselves instead of being
|
||||
misreported as "something else is using the database".
|
||||
- If the journal mode cannot be changed, AQE **refuses to write** rather than
|
||||
continuing in a mode you have declared unsafe. Availability is not worth
|
||||
risking the database you enabled the flag to protect.
|
||||
- The change is verified after it is applied, so a silently ignored switch
|
||||
cannot leave AQE writing in the unsafe mode believing it is safe.
|
||||
- The diagnostic now prints the exact command that lists whatever is holding the
|
||||
database, instead of naming processes it guessed at. The previous guidance
|
||||
pointed at the wrong ones, which is most of why this went unnoticed for days.
|
||||
|
||||
The bundled statusline also now refreshes every 60 seconds rather than every 5.
|
||||
It reopened the learning database on every tick, adding constant pressure to the
|
||||
same lock.
|
||||
|
||||
### QE-Court's shipped panel violated its own `writerIsNeverJuror` rule ([#576])
|
||||
|
||||
The bundled `config.json` — the template copied into every project on first run
|
||||
— seated the defense on `cognitum-low` and the jury on `cognitum-high`. Those
|
||||
are different tiers of the **same vendor**, and QE-Court measures collusion by
|
||||
vendor, not tier. A brand-new project therefore got a panel that failed the
|
||||
court's central rule before anyone had touched it.
|
||||
|
||||
The deeper problem was that the rule could not have caught it. Nothing converted
|
||||
the configured routing into a seated panel, so `validatePanel` was never reached
|
||||
outside its own unit test, and the `options` block in the config was not wired to
|
||||
the validator at all — a rule with no caller is not enforced.
|
||||
|
||||
What changed:
|
||||
|
||||
- The default panel is genuinely cross-vendor. We moved the **defense** rather
|
||||
than the jury: the deeper reviewer already runs on `codex`, so re-seating the
|
||||
jury there would have put the jury and the escalation round on one vendor and
|
||||
weakened the overturn mechanic the court depends on.
|
||||
- `panelFromRouting()` and `validateCourtConfig()` connect the config to the
|
||||
validator, and running the validation is now a required step before a court
|
||||
convenes — an invalid panel stops the run instead of quietly seating.
|
||||
- The `options` block takes effect: `minDistinctVendors` and `writerIsNeverJuror`
|
||||
are read rather than decorative.
|
||||
- A routing map with no jury is now reported as invalid instead of passing.
|
||||
- CI validates the **shipped config files themselves**, so a future routing edit
|
||||
fails the build rather than a user's court.
|
||||
|
||||
Reported by @pacphi.
|
||||
|
||||
## Upgrade notes
|
||||
|
||||
No action required. If you set `AQE_DISABLE_WAL=1` and another process is
|
||||
holding your learning database open, AQE will now refuse that connection with a
|
||||
message naming the command that finds the holder — previously it failed silently.
|
||||
|
||||
If you have already customized `.claude/skills/qe-court/config.json`, your file
|
||||
is untouched; check that your `defense` and `jury` providers are on different
|
||||
vendors, as the court now enforces.
|
||||
|
||||
[#576]: https://github.com/proffesor-for-testing/agentic-qe/issues/576
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "agentic-qe",
|
||||
"version": "3.13.2",
|
||||
"version": "3.13.3",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "agentic-qe",
|
||||
"version": "3.13.2",
|
||||
"version": "3.13.3",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "agentic-qe",
|
||||
"version": "3.13.2",
|
||||
"version": "3.13.3",
|
||||
"description": "Agentic Quality Engineering V3 - Domain-Driven Design Architecture with 13 Bounded Contexts, O(log n) coverage analysis, ReasoningBank learning, 60 specialized QE agents, mathematical Coherence verification, deep Claude Flow integration",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
|
||||
Reference in New Issue
Block a user