Repository navigation
Lagrange v0.3.0
Lagrange 0.3.0 — 2026-10-29 (experimental / alpha).
Phase 0.3 Queryable Core release delivering explicit typed partition boundary
ordering across split, merge, and routing paths, SQL-first local and compound
index DDL and planner selection, PostgreSQL locking reads (SELECT ... FOR UPDATE and SELECT ... FOR SHARE with NOWAIT), partition-independent Global
Secondary Indexes (CREATE INDEX ... GLOBAL) with online backfill and
point-read routing, and generic push-driven live queries over table CDC without
polling (epic release-0-3-queryable-core):
Formation health at cut time: formation health: 0/20 passed (0%), 0 with a starved seed.
Added
- Typed partition boundary ordering and representation (
partition-key-ordering-owner-completion,A1–A4):
Canonicalpartition-boundary-representation.jsandsplit-key-comparator.js
enforce explicitpartition_key_type(INTEGER,REAL,TEXT,BLOB)
ordering acrossCREATE TABLE,PartitionResolver,ManagedSplitWorkflow,
andManagedMergeWorkflowwith zero text-to-number coercion or untyped
fallback. - SQL-first local and compound secondary index DDL and planner selection (
A5–A6):
SQLQueryEngineroutesCREATE [UNIQUE] INDEX [IF NOT EXISTS]and
DROP INDEX [IF EXISTS]throughIndexServiceand replicates local index
DDL across table partitions;DistributedQueryPlannerandQueryOptimizer
enforce strict leftmost-prefix matching for single-column and compound
indexes. - PostgreSQL locking reads (
SELECT ... FOR UPDATE/FOR SHARE,B1–B5):
Canonical AST normalization (lockingRead: {strength, waitPolicy, ofTables}),
explicit transaction-block admission (25P01outsideBEGIN), Fail-Fast /
NOWAITconflict rejection (SQLSTATE 55P03), and participant row-lock
reservations that block conflicting concurrentUPDATE/DELETE/INSERTand
release deterministically onCOMMIT,ROLLBACK, and session teardown. - Global Secondary Indexes (
CREATE INDEX ... GLOBAL,C1–C5):
Catalog metadata contract (scope: 'GLOBAL', lifecycle state machine
WRITE_ONLY->BACKFILLING->PUBLIC->DROPPING), independent global
index dataset and Raft partition provisioning, idempotent online backfill
coordinator, synchronous write-path index maintenance acrossINSERT,
UPDATE, andDELETE, and two-hop point-read routing whenPUBLIC. - Generic push-driven live-query data plane (
D0–D6):
LiveQueryService,LiveQueryManager, andLiveQueryGroupsubscribe
active SQL queries directly toCDCManagertable events and re-evaluate and
push delta updates (added,modified,removed) to WebSocket subscribers
without polling timers. - Solver parallelization and home lab placement (
scripts/solve/*,scripts/lab/probe.js):
solve.js landsynthesizes a candidate commit from the staged index for
remote lab test placement, routesselect-change-tests.jsthrough
runPlacedClassifiedTestFiles(), deduplicates.githooks/pre-commit, and
serializes concurrent worktree landings via a cross-worktree lock.
Docker images (linux/amd64, distroless):
docker.io/psvensson/lagrange:0.3.0(Docker Hub)
Full history: CHANGELOG.md · process: RELEASE.md