New Features (2026-06-19) — Test & Tooling Batch
Three quality-of-life tools, all pure standard library and wired through
the full stack (facade, AC_* executor commands, MCP tools, Script
Builder): seeded synthetic test data, an MCP registry server.json
generator, and risk-based test selection.
Synthetic test data
Generate deterministic fake rows from a tiny field schema — to drive
data-driven runs without shipping real PII. No Faker dependency; the same
seed always yields the same rows:
from je_auto_control import generate_rows, write_dataset
rows = generate_rows({
"name": "name",
"email": {"type": "email", "domain": "acme.test"},
"age": {"type": "int", "min": 18, "max": 65},
"status": {"type": "choice", "choices": ["new", "vip"]},
}, count=100, seed=7)
write_dataset(rows, "people.csv") # or .json
Supported field types: first_name, last_name, name,
username, email, phone, city, company, word,
sentence, uuid, bool, int (min/max), float
(min/max/ndigits), choice (choices), date (start/end).
The AC_generate_data command writes a file (then feed it to
AC_load_data) or returns the rows inline.
MCP registry manifest
Publish a server.json describing this AutoControl MCP server so
MCP-aware agents and IDEs can discover and install it. The manifest is
built from live package metadata, so it never drifts:
from je_auto_control import write_server_manifest
write_server_manifest("server.json", include_tools=True)
include_tools embeds the live tool list under _meta (without
touching the registry-valid core fields). Also exposed as
AC_mcp_manifest and the ac_mcp_manifest MCP tool.
Risk-based test selection
Instead of always running the whole suite, rank flows by how risky they are — recently failing, flaky, stale, or never-run — using the run-history store, then run the riskiest first (or only the top-k):
from je_auto_control import select_flows, rank_flows
ranked = rank_flows(["login", "checkout", "report"])
risky = select_flows(["login", "checkout", "report"], k=2)
The score is 0.5*failure_rate + 0.2*last_failed + 0.2*flakiness +
0.1*staleness; a never-run flow scores 0.8 (untested is risky).
Exposed as AC_rank_tests / AC_select_tests and the
ac_rank_tests / ac_select_tests MCP tools.