Tiny multi-key JSON value database over a 4D sudoku lattice (1..215 cells per axis, 81 by default), with a SQL surface and sudoku digit constraints.

| You call | You get back | Shape |
|---|---|---|
| @tesseract.lattice_of(side) | the shape, or the rule that refused it | Result[Lattice, String] |
| @tesseract.execute(db, "SELECT …") | the rows that matched, with the status of the statement | DBResponse |
| @tesseract.all_lines(lattice) | the lattice's lines | Array[Array[Coords]] |
| @tesseract_memory.new_memory(capacity) | a store | Memory |
| @tesseract_memory.Memory::search(query, limit) | the hits, best first | Array[Hit] |
| @tesseract_memory.Memory::entries() | everything the store holds | Array[Entry] |
| @tesseract_memory_db.open(path, config) | a durable store, or the reason there is none | Result[DurableMemory, String] |
| @tesseract_memory_index.open(path) | the index | Result[MemoryIndex, String] |
| @tesseract_sa.parse(text) | the findings of a scan | Result[ScanReport, String] |
moon add riantr/tesseract@0.1.15import {
"riantr/tesseract@0.1.15",
}///|
import {
"riantr/tesseract/src/tesseract",
}Cannot find import 'riantr/tesseract/src/tesseract@0.1.15' in my/app/src/thing@0.1.0///|
import {
"riantr/tesseract/src/tesseract_memory" @tm,
}| Package | Kind | Native | Wasm | Wasm-GC | JS |
|---|---|---|---|---|---|
| riantr/tesseract/src/tesseract | library | yes | yes | yes | yes |
| riantr/tesseract/src/tesseract_memory | library | yes | yes | yes | yes |
| riantr/tesseract/src/tesseract_memory_cli | library | yes | yes | yes | yes |
| riantr/tesseract/src/tesseract_memory_db | library | yes | yes | — | — |
| riantr/tesseract/src/tesseract_memory_index | library | yes | yes | — | — |
| riantr/tesseract/src/tesseract_dgp | library | yes | yes | yes | yes |
| riantr/tesseract/src/tesseract_sqlite | library | yes | yes | — | — |
| riantr/tesseract/src/tesseract_sa | library | yes | yes | — | — |
| cmd/main | executable | yes | yes | yes | yes |
| cmd/memory | executable | yes | yes | yes | yes |
| cmd/memory_db | executable | yes | yes | — | — |
| cmd/persist | executable | yes | yes | — | — |
| cmd/sa | executable | yes | yes | — | — |
| cmd/gui | executable | yes | — | — | — |
| C# original | this version | |
|---|---|---|
| shape | flat 9-cell ring shown as 3x3 | 3x3x3x3 lattice, 81 cells (default) |
| addressing | grid_position 1..9 | grid_position 1..81, or (x,y,z,w) |
| sudoku | none | digits 1..3, one set per axis-parallel line |
| structure | 9 rows / 1 box | 4 axes x 27 lines = 108 lines, 12 slabs |
| side = 3 (default) | side = 4 | |
|---|---|---|
| cells | 81 | 256 |
| digit domain | 1..3 | 1..4 |
| lines | 108 | 256 |
| slabs (each) | 12 of 27 cells | 16 of 64 cells |
| peers per cell | 8 | 12 |
moon run cmd/main -- --side 4 .status
moon run cmd/main -- --side 4 .solve .verifyposition = 1 + x*side^3 + y*side^2 + z*side + w (row-major, x slowest)digit(x,y,z,w) = (x + y + z + w) mod 3 + 1src/tesseract/
text.mbt ASCII helpers: trim, case folding, integer parse, split/join, characters
coords.mbt the lattice: coordinates, positions, neighbours, shares_line
lattice.mbt lines, slabs, planes, peers
sudoku.mbt digits, the line rule, slab balance, backtracking solver
txn.mbt transactions: the undo journal, savepoints, statement atomicity
types.mbt GridCell, Record, Computed, DBResponse, DBStatus, formatting
logger.mbt bounded log ring (100 entries, matching the C# logger)
clock.mbt the injected clock and its ISO-8601 rendering
db.mbt the store, and the in-place resize between shapes
lexer.mbt the SQL tokenizer
ast.mbt the parsed shape of a statement
parser.mbt recursive descent, precedence climbing
exec.mbt the executor: expressions, aggregates, ordering, transactions
jsonpath.mbt the JSON path: parsing it, walking it, reading a number from text
serialize.mbt .tsr JSON, .md table, .sql dump, lattice rendering
src/tesseract_memory/
memory.mbt the memory: put, get, capacity, the statistics
scope.mbt the scopes: partitions of one keyspace, one budget, one clock
spec.mbt the spec of an entry: its lifetime, its weight, its labels
entry.mbt one remembered thing, and when its time is up
metadata.mbt the labels of an entry, and the filters that select them
ttl.mbt Never / Absolute / Sliding, and the deadline arithmetic
clock.mbt the injected clock, system or manual
evict.mbt LRU, LFU, soonest-expiry, oldest
similar.mbt the similarity policies and the recency weight
score.mbt tokenising, the four similarities, JSON leaf paths
search.mbt top-k over the live entries, filtered or not
size.mbt the UTF-8 size of a text, in bytes
src/tesseract_memory_index/
index.mbt the SQL index: an inverted index of the entries' words
src/tesseract_memory_db/
format.mbt the checkpoint container: the lattice that holds the entries
store.mbt the durable memory: open, checkpoint, reload
src/tesseract_memory_cli/
cli.mbt the command layer, shared by cmd/memory and cmd/memory_db
cmd/main/ command line front end
cmd/memory/ the short-term memory, from a shell
cmd/memory_db/ the durable memory, from a shell, with the index behind it
cmd/gui/ the proton desktop window
main.mbt the App: entry point, page asset, command registration
state.mbt the store the window drives, and its JSON projections
commands.mbt the seven typed commands the page can call
web/index.html the page itself - inline CSS and JS, no build step
proton.project.json bundle identity, backend package, packaging settings
gui-smoke.mjs end-to-end smoke test driven through Chromium DevTools| operation | what it does |
|---|---|
| app:state | occupancy, cursor, digit count, the current side × side plane, sudoku health, log tail |
| app:lattice | change side; rebuilds the store in place and reports kept/dropped |
| app:write | insert / update / delete / clear / cursor, plus solve and demo |
| app:query | one SQL statement, returning rows and a repaint |
| app:geometry | line / slab / peers around a cell, with the covered positions |
| app:export | .tsr, .md, .sql, or the ASCII lattice |
| app:import | load a .tsr, .md or .sql dump back in |

| before | now | |
|---|---|---|
| WHERE key='a' AND key='b' | 1 row — the last conjunct overwrote the first | 0 rows |
| WHERE key='a' OR key='b' | INVALID_SYNTAX | 2 rows |
| LIMIT 1 | 3 rows | 1 row |
| ORDER BY key DESC | insertion order | sorted |
| WHERE digit=1+1 | INVALID_SYNTAX | evaluates |
| Area | Supported |
|---|---|
| statements | CREATE DATABASE, INSERT, UPDATE, DELETE, SELECT, transaction control |
| columns | key value position grid_position digit timestamp x y z w side |
| expressions | arithmetic, comparison, AND / OR / NOT, LIKE, parentheses |
| functions | length upper lower abs coords digits json_extract; geometry line slab peers; aggregates count sum min max avg |
| clauses | WHERE GROUP BY ORDER BY LIMIT OFFSET DISTINCT |
| three-valued logic | null is unknown; only WHERE folds it to false, everything else carries it |
| not supported | joins, subqueries, window functions, UNION, CTEs, and DDL beyond CREATE DATABASE |
CREATE DATABASE tesseract;
INSERT INTO tesseract (key, value) VALUES ('user_001', '{"age": 25}');
SELECT * FROM tesseract WHERE key = 'user_001';
SELECT * FROM tesseract WHERE value LIKE '%age%';
UPDATE tesseract SET value = '{"age": 26}' WHERE key = 'user_001';
DELETE FROM tesseract WHERE key = 'user_001';-- explicit address, as a position or as coordinates
INSERT INTO tesseract (key, value) VALUES ('k', 'v') AT 42;
INSERT INTO tesseract (key, value) VALUES ('k', 'v') AT (1,2,0,2);
-- sudoku digits, enforced against the lines through the cell
INSERT INTO tesseract (key, value, digit) VALUES ('k', 'v', 2);
UPDATE tesseract SET value = 'v', digit = 3 WHERE grid_position = 42;
-- coordinate predicates
SELECT * FROM tesseract WHERE x = 1 AND y = 2;
SELECT * FROM tesseract WHERE digit = 1;
-- geometry
SELECT * FROM tesseract WHERE line(42, 0); -- the 3-cell axis-parallel line
SELECT * FROM tesseract WHERE slab(42, 1); -- the 27-cell slab
SELECT * FROM tesseract WHERE peers(42); -- the 8 cells sharing a lineSELECT * FROM tesseract WHERE peers(42) AND key = 'user_001';OR < AND < NOT < = <> != < <= > >= LIKE IN IS NULL
< + - < * / % < unary - < literals, columns, ( ), functionsSELECT * FROM tesseract WHERE key = 'a' OR key = 'b';
SELECT * FROM tesseract WHERE digit = 1 + 1;
SELECT * FROM tesseract WHERE key IN ('a', 'b', 'c');
SELECT * FROM tesseract WHERE NOT (x = 1 AND y = 2);SELECT json_extract(value, '$.name') FROM tesseract WHERE key = 'user_001';
SELECT key FROM tesseract WHERE json_extract(value, '$.age') > 30;
SELECT sum(json_extract(value, '$.amount')) FROM tesseract;$ the whole document
$.name a key
$.a.b a key inside a key
$.tags[1] the second element of an array
$["a b"] a key that is not an identifier| lands on | answers |
|---|---|
| a whole number | the integer, at full 64-bit width |
| a number that is not a whole number | its own text, unrounded — 2.5 stays 2.5 |
| a string | the string |
| true / false | 1 / 0 |
| null | null |
| an object or an array | its JSON text, so it can be fed back in |
| nothing there | null |
-- matched every row that mentioned the word, including one with no such key
SELECT key FROM tesseract WHERE value LIKE '%name%';
-- matched the rows that have the key
SELECT key FROM tesseract WHERE json_extract(value, '$.name') IS NOT NULL;SELECT digit, count(*) FROM tesseract GROUP BY digit;
SELECT sum(digit) FROM tesseract WHERE digit > 0;
SELECT key FROM tesseract ORDER BY key DESC, digit ASC;
SELECT key FROM tesseract ORDER BY key LIMIT 10 OFFSET 20;
SELECT DISTINCT value FROM tesseract;BEGIN;
INSERT INTO tesseract (key, value) VALUES ('a', '1') AT 1;
SAVEPOINT sp;
INSERT INTO tesseract (key, value) VALUES ('b', '2') AT 2;
ROLLBACK TO sp; -- the 'b' insert goes; the transaction stays open
COMMIT;
ROLLBACK; -- or undo the whole thing///|
import {
"riantr/tesseract/src/tesseract_memory",
}moon run cmd/memory -- "put greeting hello world" "get greeting"
moon run cmd/memory -- --capacity 3 "put a 1" "put b 2" "put c 3" "put d 4" "keys"
moon run cmd/memory -- --max-bytes 10 "put a 12345" "put b 12345" "put c 12345" "stats"
moon run cmd/memory -- --manual-clock "put a x --ttl 1000" "advance 1000" "get a"
moon run cmd/memory -- "put a x --meta kind=note" "entries --where kind=note"
moon run cmd/memory -- --capacity 2 "put keep kept --pinned" "put other dropped" "put new new" "keys"
moon run cmd/memory -- demo| expires | |
|---|---|
| ttl_absolute(ms) | ms after it was written |
| ttl_sliding(ms) | ms after it was last read |
| ttl_never() | never |
| policy | evicts |
|---|---|
| evict_lru() | the entry nobody has touched for longest |
| evict_lfu() | the entry nobody has read |
| evict_soonest_expiry() | the entry closest to expiring — an entry that never expires goes last |
| evict_oldest() | the entry written longest ago |
| evict_largest() | the entry that takes the most room |
///|
let m = @tesseract_memory.new_memory(100)
ignore(
m.put_spec(
"keep",
"the thing that must not be lost",
@tesseract_memory.default_spec().with_pinned(true),
),
)| with_pinned(true) | write an entry that is never evicted |
| Memory::pin(key) / unpin(key) | change the pin of an entry that is there |
| Scope::pin(key) / unpin(key) | the same, in one scope |
| Entry::pinned() | whether the entry is pinned |
///|
let m = @tesseract_memory.new_memory_with(
@tesseract_memory.default_config().with_capacity(100).with_max_bytes(65536L), // 64 KiB of values
)///|
let m = @tesseract_memory.new_memory(100)
let work = m.scope("work")
ignore(work.put("todo", "ship 0.1.15"))
ignore(m.scope("notes").put("todo", "buy milk"))
// Two entries, one key.
assert_eq(work.get("todo"), Some("ship 0.1.15"))
assert_eq(m.scope("notes").get("todo"), Some("buy milk"))| addresses | |
|---|---|
| Memory::put, put_with_ttl, get, contains, touch, delete, entry | the default scope |
| Memory::keys, entries, search, search_keys | the default scope |
| Memory::size, size_bytes | the whole store — the limits are the store's |
| Memory::scopes | the scopes that hold something |
| Memory::search_all, search_all_keys | the whole store |
| Memory::clear | the whole store |
| Memory::sweep, stats, now, advance, capacity, max_bytes | the whole store |
moon run cmd/memory -- --scope work "put todo ship 0.1.15" "keys"
moon run cmd/memory -- "put a the cat sat" "scope work" "put a the cat sat on the mat" "scopes"
moon run cmd/memory -- "put a the cat sat" "scope work" "put a the cat sat on the mat" "search-all cat"///|
if !config.is_valid() {
// the memory will not hold this
}| policy | asks |
|---|---|
| similarity_jaccard() | how much they share, as a share of their whole vocabulary |
| similarity_cosine() | how similar they are as documents — a repeated word counts more |
| similarity_containment() | how much of the query the entry covers |
| similarity_structure() | whether two JSON documents have the same shape |
///|
let m = @tesseract_memory.new_memory_with(
@tesseract_memory.default_config()
.with_capacity(100)
.with_recency(@tesseract_memory.recency_decay(3600000L)), // one hour
)| weight | range | from |
|---|---|---|
| similarity | 0.0..1.0 | the store's similarity policy |
| recency | 0.0..1.0 | the store's recency policy |
| importance | (0.0, 1.0] | the entry itself |
///|
let m = @tesseract_memory.new_memory(100)
ignore(m.put("trivia", "the cat sat on the mat"))
ignore(
m.put_spec(
"important",
"the cat",
@tesseract_memory.default_spec().with_importance(0.2),
),
)
// "the cat" is the better match on its own, and the importance is what
// turns the order over.| default_spec() | never expires, counts fully, carries no labels, is not pinned |
| with_ttl(ttl) | the lifetime |
| with_importance(n) | how much it counts |
| with_metadata(m) | the labels it carries |
| with_pinned(true) | that it is never evicted |
| put_spec(key, value, spec) | the write |
///|
let m = @tesseract_memory.new_memory(100)
ignore(
m.put_spec(
"deploy",
"the deploy failed",
@tesseract_memory.default_spec()
.with_metadata(@tesseract_memory.new_metadata([("kind", "deploy")])),
),
)| filter | asks for |
|---|---|
| filter_has(k) | the label k, with any value |
| filter_lacks(k) | the label k to be absent |
| filter_equals(k, v) | the label k with the value v |
| filter_not_equals(k, v) | the label k not to carry the value v |
| filter_all([...]) | every one of them to hold |
| filter_any([...]) | at least one of them to hold |
///|
let hits = m.search_filtered(
"deploy",
3,
@tesseract_memory.filter_equals("kind", "deploy"),
)| Memory::search_filtered | the default scope, the entries the filter admits |
| Memory::search_all_filtered | every scope, the entries the filter admits |
| Memory::search_filtered_keys | the same, without the values |
| Memory::search_all_filtered_keys | the same, over every scope |
| Memory::entries_filtered | the entries the filter admits, by their labels alone |
| Scope::search_filtered | one scope |
| Scope::search_filtered_keys | one scope, without the values |
| Scope::entries_filtered | one scope, by their labels alone |
///|
let m = @tesseract_memory.new_memory(100)
ignore(
m.put_spec(
"todo",
"ship 0.1.15",
@tesseract_memory.default_spec()
.with_metadata(@tesseract_memory.no_metadata().with_kind("task")),
),
)
assert_eq(m.entry("todo").unwrap().kind(), Some("task"))
assert_eq(m.kinds()[0].0, "task")| Memory::kinds | the kinds the store holds, and how many entries of each |
| Memory::entries_of_kind | the entries of one kind, in every scope |
| Scope::kinds | the same, for one scope |
| Scope::entries_of_kind | the entries of one kind, in one scope |
| Entry::kind | what kind an entry is, or nothing |
moon run cmd/memory -- "put todo ship 0.1.15 --kind task" "put note the cat sat --kind note" "kinds"
moon run cmd/memory -- "put todo ship 0.1.15 --kind task" "entries --kind task"///|
import {
"riantr/tesseract/src/tesseract_memory" @tm,
"riantr/tesseract/src/tesseract_memory_db" @tmdb,
}
let store = @tmdb.open("notes.db", @tm.default_config())
ignore(store.put("greeting", "hello"))SELECT scope, key FROM tesseract_memory_index WHERE token = 'cat';///|
import {
"riantr/tesseract/src/tesseract_memory" @tm,
"riantr/tesseract/src/tesseract_memory_index" @tmi,
}
let m = @tm.new_memory(100)
ignore(m.put("note", "the cat sat"))
let index = @tmi.open("notes.idx").unwrap()
let report = index.rebuild(m).unwrap()
println(report.describe())index notes.idx: 9 rows, 3 entries, 0 changed, 0 rows added, 0 rows removedmoon run cmd/memory_db --target native -- --file notes.db --index notes.idx "index"
moon run cmd/memory_db --target native -- --file notes.db --index notes.idx "index-find cat"moon check --target all # type-check every backend
moon test # 422 tests
moon fmt --check # canonical formatting
node cli-smoke.mjs # the CLIs, as real processes (builds them first)
node gui-smoke.mjs # the window, over CDP (needs `proton_cli dev` running)
moon run cmd/main -- .help
moon run cmd/main -- .status
moon run cmd/main -- .demo
moon run cmd/main -- .solve .verify
moon run cmd/main -- "INSERT INTO tesseract (key,value) VALUES ('a','1') AT 5;" "SELECT * FROM tesseract;"
moon run cmd/main -- .export tsr > dump.tsr
# the short-term memory
moon run cmd/memory -- .help
moon run cmd/memory -- "put greeting hello world" "get greeting"
moon run cmd/memory -- --scope work "put todo ship 0.1.15" "keys" "scopes"
moon run cmd/memory -- "put a x --meta kind=note" "search x --where kind=note"
moon run cmd/memory -- "put todo ship 0.1.15 --kind task" "kinds"
moon run cmd/memory -- "put a x --pinned" "pin a" "unpin a"
moon run cmd/memory -- demo
# the durable memory: the same commands, and a file behind them
moon run cmd/memory_db --target native -- --file notes.db "put greeting hello world"
moon run cmd/memory_db --target native -- --file notes.db "get greeting"
moon run cmd/memory_db --target native -- --file notes.db --manual-clock "put a x --ttl 1000" "advance 1000" "get a"
# the SQL index of the same store: rebuild it, then look a word up in it
moon run cmd/memory_db --target native -- --file notes.db --index notes.idx "index"
moon run cmd/memory_db --target native -- --file notes.db --index notes.idx "index-find cat"
# 256 cells, digits 1..4
moon run cmd/main -- --side 4 .status
moon run cmd/main -- --side 4 .solve .verify$ moon run cmd/main -- --side 999 .status
--side side 999 is above the maximum 215 (cells are stored in one flat array indexed by a 32-bit Int)moon run cmd/persist --target native -- .open sudoku.db \
"INSERT INTO tesseract (key,value,digit) VALUES ('user_001','{\"age\": 25}',1) AT 1;" \
.save .status .verify
# a second process reads the same file back
moon run cmd/persist --target native -- .open sudoku.db .status| command | effect |
|---|---|
| .open <path> | replace the store with the file's contents |
| .save [path] | write the store out, to <path> or to the last .open |
| .status | occupancy, digits, cursor, and the file in use |
| .verify | line and slab check over the digits in the store |
while read -r line; do moon run cmd/main -- "$line"; donemoon run cmd/memory_db --target native -- --file notes.db "put greeting hello world"
moon run cmd/memory_db --target native -- --file notes.db "get greeting"
# a second process reads the same file back
moon run cmd/memory_db --target native -- --file notes.db "keys"
# the file holds what is live, and the clock comes back with it
moon run cmd/memory_db --target native -- --file notes.db --manual-clock \
"put soon x --ttl 1000" "advance 1000" "keys"moonx riantr/moonbit_static_analysis@0.4.1 . > scan.tsv
moon run cmd/sa --target native -- store scan.tsv scan.db
moon run cmd/sa --target native -- runs scan.db
moon run cmd/sa --target native -- show scan.db
moon run cmd/sa --target native -- files scan.db
moon run cmd/sa --target native -- unparsed scan.db| table | holds |
|---|---|
| sa_runs | one row per scan: coverage, counts, target |
| sa_files | each file the analyzer reported on, with outcome, defects, notices, shown |
| sa_findings | the findings that were actually rendered |
| sa_by_kind | the per-.mbt/.mbti/.mbt.md rollup the tool prints |
| sa_unparsed | per reason: how many files, and up to three example paths |
moon update # refresh the registry index
moon install moonbit-community/proton_cli@0.6.0 # match the library version
proton_cli cef setup # CEF runtime + subprocess helper
proton_cli doctor # identity, toolchain and runtime
proton_cli dev # run the window
proton_cli build # native build
proton_cli package --dry-run # check the packaging plan
proton_cli package # produce dist/"resources": [ "cmd/gui/web" ]node gui-smoke.mjs| Command | Result |
|---|---|
| moon fmt --check | exit 0 |
| moon check --target wasm --deny-warn | exit 0 |
| moon check --target js --deny-warn | exit 0 |
| moon check --target native --deny-warn | exit 0 |
| moon check --target wasm-gc --deny-warn | exit 0 |
| moon test --target wasm --deny-warn | 422 passed, 0 failed |
| moon build --target wasm | exit 0 |
| typos (v1.50.3 — the version the workflow pins) | exit 0 |
| node cli-smoke.mjs | 103 passed, 0 failed |
| node gui-smoke.mjs | 45 passed, 0 failed |
| format | role |
|---|---|
| .tsr | JSON, the native save format; round-trips key, value, position, digit and timestamp losslessly |
| .md | Markdown table, human-readable and diffable |
| .sql | SQL dump this package's own parser re-imports |
moon add riantr/tesseractmoon test # Total tests: 422, passed: 422, failed: 0.
moon run cmd/main -- .demo # a store, a statement, a report
moon run cmd/main -- .solve .verify # the sudoku solver, and the check
moon run cmd/memory -- demo # the short-term memory
moon run cmd/memory_db --target native -- --file notes.db "put greeting hello world" "get greeting"
moon run cmd/persist --target native -- .open sudoku.db "INSERT INTO tesseract (key,value) VALUES ('a','1') AT 1;" .save .status
moon run cmd/sa --target native -- store scan.tsv scan.db// The lattice: four axes, 81 cells by default, up to 215 per axis
let lat = @tesseract.lattice_of(3).unwrap()
let cells : Int64 = @tesseract.Lattice::total(lat) // 81
let lines : Int64 = @tesseract.sudoku_line_count(lat) // 108 (4 · side³)
// The SQL surface: its own lexer, parser, AST and executor
let db = @tesseract.new_db("demo", lat, @tesseract.new_logger("demo"))
let put = @tesseract.execute(db, "INSERT INTO tesseract (key,value) VALUES ('a','1') AT 5;")
let got = @tesseract.execute(db, "SELECT * FROM tesseract WHERE key = 'a';")
// The memory: TTL, a byte budget, scopes, labels, and an exact similarity
let mem = @tesseract_memory.new_memory(100)
let work = @tesseract_memory.Memory::scope(mem, "work")
ignore(work.put("todo", "ship 0.1.15"))
let hits : Array[@tesseract_memory.Hit] = @tesseract_memory.Memory::search(mem, "todo", 10)
// The durable memory: the same store, with a checkpoint file behind it
let dur = @tesseract_memory_db.open("notes.db", @tesseract_memory.default_config()).unwrap()
ignore(@tesseract_memory_db.DurableMemory::put(dur, "greeting", "hello world"))| Detector | Catches |
|---|---|
| node qa/sast.mjs | the rules the compiler cannot know: an unwrap nobody proved safe, a SQL statement built by concatenation, an Int64 narrowed into a 32-bit Int |
| node qa/dast.mjs | a binary that falls over on hostile arguments instead of refusing them — the malformed, the oversized, the path-traversing |
| node qa/deps.mjs | a pin that does not resolve to the version it names, a yanked dependency, an NVD advisory that is actually reachable from this tree |
| node qa/integration.mjs | a package boundary that no in-tree test crosses — an edge declared in a moon.pkg and exercised only from outside the package that owns it |
| node qa/api.mjs | a public surface that does not keep its promises: a value whose public fields a caller can build by hand, a symbol nothing holds in place, a naming that does not conform, a waiver that has gone stale |
| node qa/contract.mjs | the published artifact drifting from the tree: a symbol the registry advertises and the source does not have, a checkpoint the contract names and the code does not implement |
| node qa/e2e.mjs | a command no layer exercises — the map from the 72 commands the CLIs accept onto the four layers that implement them |
| node qa/gherkin.mjs | a feature file whose steps describe something the CLI does not do |
| node qa/dup.mjs | the same block of code in two places, which is one bug waiting to happen twice |
| node qa/coverage.mjs | a coverage number that cannot be checked, because it lives only in a terminal scrollback |
| node qa/perf.mjs | a cost that grows faster than the work does — an exponent above 1 where there should be none |
| Detector | Catches |
|---|---|
| cd qa/contract_probe && moon test --target native | a release that broke a consumer: the probe calls the published accessors and the published checkpoint, and its 9 tests are what found the four checkpoint defects in the published 0.1.13 artifact |
| cd qa/fuzz && moon test --target native | a statement the parser accepts and the executor does not apply: 6 properties × 3000 rounds, and the error vocabulary has to stay closed |
Install
Download zipTiny multi-key JSON value database over a 4D sudoku lattice (1..215 cells per axis, 81 by default), with a SQL surface and sudoku digit constraints.