Progress

Live delivery snapshot, updated by hand as merges land — last refresh 2026-06-21 (TFactory v0.9.3, shipped). Recent milestones and the dated historical record are kept below. Full detail per release in the changelog.

Current status — v0.9.3 (shipped)

TFactory is in production as a governed node in the Factory line: PFactory plans, AIFactory builds, TFactory verifies, CFactory watches. It generates, runs, evaluates, and triages tests against the code AIFactory ships, then reports back up the spine.

What is live today:

v0.9.x — Factory PARR node (current, shipped)
  ████████████████████████████  governed pickup · RFC-0001 event · Backstage · Nix browser lane

v0.5.0 — Bidirectional AIFactory ↔ TFactory integration   (2026-06-03)
  ████████████████████████████  epic #182 — 7 phases shipped + #108 live-fix

v0.4.0 — Visual Inspection Run + SaaS connector targets    (2026-06-03)
  ████████████████████████████  epic #170 (P1/P2/P4/P5) · #111 · #107

v0.3.0 — Cloud testing (AWS/GCP/Azure) + platform + portal (2026-06-03)
  ████████████████████████████  epic #133 · #74 #73 #71 #85 #108 #109 #107 #138

v0.2.0 — Enterprise Test Framework Spine                   (2026-05-29)
  ████████████████████████████  16 of 16 tasks (#16–#32) + evidence-links

Releases:  https://github.com/olafkfreund/TFactory/releases
Backend tests: 531 (v0.1) → 1225 (v0.2) → 2803 (v0.5)

Recent milestones

Week of 2026-06-15 → 06-21 — verdict honesty + the verify-Job rollout

Factory PARR spine (shipped, v0.9.x)

TFactory became a verified node in the Factory line rather than a standalone tool:

v0.5.0 — Bidirectional AIFactory ↔ TFactory integration (2026-06-03)

The reverse of the handover: when TFactory’s tests find problems, it hands a correction back to AIFactory’s QA Fixer, then re-tests — bounded so it can’t run away. Epic #182, seven phases shipped.

Phase What Issue
P1 source.json records the AIFactory hand-back target #183
P2 agents/handback/ correction builder + renderer (pure) #184
P3 AIFactory receiver: apply-correction REST + MCP + QA Fixer AIFactory#317
P4 dry-run-first sender + Triager completion hook #185
P5 /handback-to-aifactory skill + companion + CLI #186
P6 bounded closed loop + /tfactory-fixloop #187
Docs guides/aifactory-handback.md + round-trip updates #188

Also this cycle: #108 — the Kubernetes port-forward dispatch was live-verified against a real kind cluster, fixing two defects the mocked tests masked (a missing port_forward attribute; an IPv4-only readiness parse that hung on kubectl’s [::1] line). Design: docs/plans/2026-06-03-aifactory-tfactory-handback-design.md.

v0.4.0 — Visual Inspection Run + SaaS connectors (2026-06-03)

v0.3.0 — Cloud testing + platform foundations + portal redesign (2026-06-03)

v0.2.0 — task-by-task (historical record)

The 16-task enterprise spine that v0.3+ builds on. Kept for provenance.

# Task Merge Tests added
#16 Task 0: Lane spine rename (functional / sast / dast / fuzz / mutation → unit / browser / api / integration / mutation) 1ae97f9 + 4 prior commits +25 alias coverage
#17 Task 1: Framework descriptor registry (pytest + Jest + Playwright at MVP) 1c92280 (7 commits) +45
#18 Task 2: .tfactory.yml schema + parser + validator (http / k8s / docker_compose / feature_flag targets) 6359590 +69
#19 Task 3: .tfactory/tests-catalog.json schema + 3-step AC-match lookup 51fcebd (6 commits) +50
#20 Task 4: Snapshotter extension — lifts .tfactory.yml + tests-catalog into workspace context 7b2fc8b (4 commits) +9
#21 Task 5: Planner per-subtask polyglot (language / framework / target_name / intent) 43e9ac1 (6 commits) +52
#22 Task 6: Gen-Functional generic — descriptor.context_block injection; v0.1 prompt preserved as legacy 4c006fb (6 commits) +25
#23 Task 7: Per-framework Docker runner images (pytest / jest / playwright) f3f88dd (5 commits) +6 (skipped when no daemon)
#24 Task 8: Browser-lane AppRuntime — docker-compose lifecycle + HTTP health-poll d2aa2ae (6 commits) +25
#25 Task 9: TypeScript Evaluator primitives (tsc / ESLint / Stryker) fde90ef (6 commits) +100
#26 Task 10: Evaluator coverage adapter — null-not-zero for Browser lane (Decision 11) 4ef9a51 (4 commits) +21
#28 Task 12: 15 starter test templates (5 each for Playwright / Jest / pytest) e58adfd (5 commits) +48
#29 Task 13: Skills + slash commands (/tfactory-init · /tfactory-add-test · /tfactory-from-template + handover update) 782259f (5 commits) +36
#30 Task 14: Portal endpoints — frameworks / templates / skills / catalog 94e711b (6 commits) +35 effective (43 declared; 8 hit the pre-existing starlette shim path)
#27 Task 11: Triager update-vs-create + catalog mutation (3-step lookup_by_ac decides UPDATE-in-place / CREATE-new / SKIP-locked) cd5396b (5 commits) +24
#31 Task 15: LaneStatusGrid full reskin (5 independently lit lanes) + tfactory init / tfactory migrate v0_1_catalog CLIs f4eb9aa (5 commits) +21 backend + 27 frontend
#32 Task 16: Test evidence capture (screenshots / video / trace / HAR) + retention enforcer + portal endpoint + frontend Evidence tab 654e77a (5 commits; commit 4 deferred for follow-up PR) +86

v0.2.0 — released 2026-05-29

All 16 v0.2 tasks merged to main and the Task 16 deferred commit 4 follow-up (Triager PR-comment evidence-links, 5d8f588) landed immediately afterwards. Annotated tag v0.2.0 pushed; GitHub Release live at https://github.com/olafkfreund/TFactory/releases/tag/v0.2.0. Release body mirrors the v0.2.0 CHANGELOG section.

The Triager follow-up was the only piece held back during the parallel batch (it block-waited on Task 11). It now ships portal evidence links per accepted/flagged candidate in triage_report.md so PR reviewers click straight from the comment to screenshots / video / trace.zip / network.har.

Test totals

Snapshot Backend tests Δ vs prior Notes
v0.1.0-mvp baseline (2026-05-28) 531 Walking skeleton — Python + pytest only
v0.2 in progress (post-batch-1, 2026-05-29) 1039 (7 skipped) +508 After 14 of 16 v0.2 tasks
v0.2 release candidate (post-batch-2, 2026-05-29) 1170 (7 skipped) +131 After all 16 v0.2 tasks — exceeded the +~110 forecast
v0.2.0 released (5d8f588, 2026-05-29) 1177 (7 skipped) +7 After Triager evidence-links follow-up
v0.2 post-release (HEAD bcc5c7d, 2026-05-29) 1225 (7 skipped) +48 Starlette .content.body shim sweep + showcase + iframe demo
v0.3.0 (Cloud + Credential Broker + portal, 2026-06-03) ~2200 +~975 Cloud assessment, secrets backends, WIF, sandbox injection, portal redesign
v0.4.0 (Visual Inspection + connectors, 2026-06-03) ~2400 +~200 agents/visual_inspection/, connector registry, storageState scaffold
v0.5.0 (Hand-back loop + #108, 2026-06-03) 2803 +~400 agents/handback/ (request/render/send/trigger/loop), k8s live-fix

The docker-runner smoke tests (#23) require a live daemon and gracefully skip when none is present.

Pipeline status

  Planner ─► Gen-Functional ─► Executor ─► Evaluator ─► Triager
  (polyglot   (generic via      (DockerRunner    (5 signals;     (catalog-aware
   per #21)    descriptor #22)   + AppRuntime     null coverage;  + completion
                                  + Nix Job for   TS primitives)  event +
                                  Browser lane)                   evidence-links)

The full pipeline runs end-to-end in production across all five lanes. The historical v0.2.0 showcase — five Playwright tests generated from a five-AC user story, with evidence captured — remains published at /showcase/ running against olafkfreund/tfactory-demo.

v0.2.0 demo + showcase

A live end-to-end run published at /showcase/:

Health signals

Test counts below are the last recorded snapshot (through v0.5.0); the suite has continued to grow through v0.9.x. See the changelog for current per-release figures.

Cross-references