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
Copy file name to clipboardExpand all lines: CHANGELOG.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,9 @@ All notable changes to this project are documented in this file.
21
21
- Added provider-driven `componentFlows` plus richer `applyMocks(...)` context so generated React/Next adapters can emit async behavioral flow contracts with mocked fetch/timer control.
22
22
- Added provider preset wrappers for router, React Query, Zustand, and Redux-style app patterns in `themis.generate.js` / `themis.generate.cjs`, plus richer inferred async input/submit/loading/success component flows.
23
23
- Added an incremental `themis migrate <jest|vitest>` scaffold and runtime compatibility imports for `@jest/globals`, `vitest`, and `@testing-library/react`.
24
+
- Added a zero-IPC `--isolation in-process` test mode plus `--cache` for faster local rerun loops and in-process watch execution.
25
+
- Deepened provider/app adapter presets with Next navigation and auth/session wrapper metadata alongside the existing router, React Query, Zustand, and Redux presets.
26
+
- Strengthened failure-to-fix automation with richer `.themis/fix-handoff.json` entries (`repairStrategy`, `candidateFiles`, `autofixCommand`) and added `.themis/migration-report.json` for migration inventories and next actions.
24
27
- Added config-level `testIgnore` discovery patterns so repos can keep generated output, fixture sandboxes, and other local test noise out of default suite runs deterministically.
25
28
- Added an in-repo VS Code extension scaffold for artifact-driven result viewing, reruns, and HTML report opening.
26
29
- Expanded the VS Code extension scaffold with generated-review navigation for source/test/hint mappings and unresolved generation backlog.
@@ -119,7 +119,7 @@ Generated files land under `tests/generated` by default. Each generated test:
119
119
120
120
Themis also supports per-file generation hints with sidecars like `src/components/Button.themis.json` so humans and agents can provide props, component flows, args, route requests, and route context. When those sidecars do not exist yet, `--write-hints` can scaffold them automatically from the current source analysis.
121
121
122
-
For repo-wide generation defaults, add `themis.generate.js` or `themis.generate.cjs` at the project root. Providers in that file can match source paths, supply shared props/args/flow plans, register runtime mocks for generated UI scenarios, and wrap generated component renders so generated DOM contracts run inside the same provider shells humans use in app tests. Providers can also declare preset wrapper metadata for router, React Query, Zustand, and Redux-style app state patterns.
122
+
For repo-wide generation defaults, add `themis.generate.js` or `themis.generate.cjs` at the project root. Providers in that file can match source paths, supply shared props/args/flow plans, register runtime mocks for generated UI scenarios, and wrap generated component renders so generated DOM contracts run inside the same provider shells humans use in app tests. Providers can also declare preset wrapper metadata for router, Next navigation, auth/session shells, React Query, Zustand, and Redux-style app state patterns.
123
123
124
124
For CI and agent loops, Themis can also enforce generation quality instead of only writing files. Strict runs emit a structured backlog, fail on unresolved scan debt, and hand back exact remediation commands.
125
125
@@ -148,9 +148,19 @@ Every generation run also writes:
148
148
-`.themis/generate-handoff.json`: a compact agent handoff artifact with prompt-ready next actions
149
149
-`.themis/generate-backlog.json`: unresolved skips, conflicts, and confidence debt with suggested fixes
150
150
151
+
Local test loops can also opt into a zero-IPC execution path:
152
+
153
+
-`npx themis test --isolation in-process`: executes suites in-process instead of worker mode
154
+
-`npx themis test --watch --isolation in-process --cache`: keeps a fast local rerun loop with file-level result caching
155
+
-`npx themis test --isolation worker`: keeps process isolation for CI or global-heavy suites
156
+
151
157
When generated tests fail, Themis also writes:
152
158
153
-
-`.themis/fix-handoff.json`: a deduped failure-to-fix artifact that maps generated failures back to source files, categories, and remediation commands
159
+
-`.themis/fix-handoff.json`: a deduped failure-to-fix artifact that maps generated failures back to source files, categories, repair strategies, candidate files, and remediation commands
160
+
161
+
Migration scaffolds also write:
162
+
163
+
-`.themis/migration-report.json`: a machine-readable inventory of detected Jest/Vitest compatibility imports and recommended next actions
154
164
155
165
## Why Themis
156
166
@@ -201,7 +211,10 @@ See [`docs/why-themis.md`](docs/why-themis.md) for positioning, differentiators,
201
211
-`npx themis test --reporter html`: generates a next-gen HTML report file.
202
212
-`npx themis test --reporter html --html-output reports/themis.html`: writes HTML report to a custom path.
203
213
-`npx themis test --watch`: reruns the suite when watched project files change.
214
+
-`npx themis test --watch --isolation in-process --cache`: runs a zero-IPC cached local loop for fast edit/rerun cycles.
204
215
-`npx themis test --workers 8`: overrides worker count (positive integer).
216
+
-`npx themis test --isolation in-process`: runs test files in-process instead of worker processes.
217
+
-`npx themis test --cache`: enables file-level result caching for in-process local loops.
205
218
-`npx themis test --environment jsdom`: runs tests in a browser-like DOM environment.
206
219
-`npx themis test --stability 3`: runs the suite three times and classifies each test as `stable_pass`, `stable_fail`, or `unstable`.
207
220
-`npx themis test --match "intent DSL"`: runs only tests whose full name matches regex.
@@ -224,9 +237,10 @@ Each run writes artifacts to `.themis/`:
224
237
-`run-diff.json`: diff against the previous run, including new and resolved failures.
225
238
-`run-history.json`: rolling recent-run history for agent comparison loops.
226
239
-`fix-handoff.json`: source-oriented repair handoff for generated test failures.
240
+
-`migration-report.json`: compatibility inventory and next actions for migrated Jest/Vitest suites.
227
241
-`report.html`: interactive HTML verdict report.
228
242
229
-
`--agent` output includes deterministic failure fingerprints, grouped `analysis.failureClusters`, stability classifications, previous-run comparison data, and a direct pointer to `.themis/fix-handoff.json` so AI agents can jump from generated failures to exact regeneration commands.
243
+
`--agent` output includes deterministic failure fingerprints, grouped `analysis.failureClusters`, stability classifications, previous-run comparison data, and a direct pointer to `.themis/fix-handoff.json` so AI agents can jump from generated failures to exact regeneration commands. Fix handoff entries also carry repair strategies, candidate files, and autofix commands for tighter failure-to-fix loops.
230
244
231
245
Machine-facing reporters intentionally emit compact JSON. Agents and tooling should parse the payloads rather than depend on whitespace formatting.
Copy file name to clipboardExpand all lines: docs/api.md
+19-1Lines changed: 19 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,7 +35,7 @@ Default behavior:
35
35
- React and Next component adapters also emit direct DOM-state contract assertions that capture visible text, inferred roles, non-event attributes, and interaction-driven UI changes
36
36
- React and Next component adapters can also emit async behavioral flow contracts when `componentFlows` are inferred or supplied, including richer inferred input/submit/loading/success flows for common async forms
37
37
- project-level providers from `themis.generate.js` / `themis.generate.cjs` can match source files, inject shared fixture data, register runtime mocks, and wrap generated component renders for provider-aware DOM contracts and behavioral flow coverage
38
-
- provider presets can declare router, React Query, Zustand, and Redux-style wrapper metadata without hand-writing every wrapper shell
38
+
- provider presets can declare router, Next navigation, auth/session, React Query, Zustand, and Redux-style wrapper metadata without hand-writing every wrapper shell
39
39
-`.themis/generate-map.json` records source-to-generated-test mappings plus scenario metadata
40
40
-`.themis/generate-last.json` stores the full machine-readable generate payload
41
41
-`.themis/generate-handoff.json` stores a compact prompt-ready handoff payload for agents
@@ -87,6 +87,8 @@ Project-level provider modules are supported via `themis.generate.js` or `themis
- any of the same static fixture keys as sidecars (`componentProps`, `componentInteractions`, `componentFlows`, `hookArgs`, `hookInteractions`, `serviceArgs`, `routeRequests`, `routeContext`, `scenarios`)
0 commit comments