Quantum 0.22.0
Added
quantum test runs an app's *.test.q suites: q:test with test:given, test:as, test:visit, test:submit and test:expect (status, redirect, flash, text, error, var, queries, table, history), each test against a fresh SQLite database built from the migrations, in-process through the real server; the report points at the test line and the page line; exit code 1 on failure (TEST-1…TEST-4). Guide page "Testing an App".*.test.q files next to the pages are never served, and quantum check validates them (ROUTE-4).projects/tarefas and projects/blog have quantum test suites (29 tests), run in CI.q:llm knowledge= takes minRelevance (0–1): chunks less relevant than it are not retrieved, and when none remains found is false and the model is not called. The result has grounded, true when the answer cites a source (IA-9). The docs assistant uses it: it says "The guide says nothing about that" instead of answering from unrelated chunks.
Breaking
q:query mode="rag" is a parse error that points to q:llm knowledge=, which cites its sources and reports found. q:query on knowledge:<name> still searches the chunks (IA-3).- A
q:llm, q:agent or q:team without model= uses QUANTUM_LLM_DEFAULT_MODEL, else llm.model in quantum.config.yaml; with neither it fails with an error that says what to configure. It used to fall back to phi3, which also shadowed the configured model. llm.default_model is still read (IA-1). - A slice with a step (
{xs[::-1]}, {xs[0:10:2]}) is an error (EXPR-13). The step was silently ignored: [1, 2, 3][::-1] returned [1, 2, 3].
Removed
- Breaking: the
qtest: testing engine and <q:application type="testing"> (decision D-T1). It compiled to a pytest + Playwright file, addressed CSS selectors instead of actions and queries, and never ran end to end. Removed with it: quantum/core/features/testing_engine/, quantum/runtime/testing_code_generator.py, testing_builder.py and testing_templates.py, the three examples/*-tests.q, and the grammar/schema entries in quantum-lsp and vscode-quantum. type="testing" and any qtest: tag are now a parse error that names the replacement, quantum test (APP-2).
Fixed
- A
q:loop query="…" over a query with no rows was a 500 ("Query not found") when the loop was a statement of the page; it runs zero times (LOOP-4). install.py --check probed write access with a file of a fixed name, so two checks at once removed each other's probe and failed; the suite hit it now and then under pytest-xdist.
Documented
- A
type="query" knowledge source is shared by every user of the app; there is no per-user filter yet (IA-8).
← 0.21.0 · All versions · 1.0.0 →