Repository navigation
Releases: submilli/submilli-runtime
Releases · submilli/submilli-runtime
Release list
v0.3.0
Submilli 0.3.0
This release adds embedding providers, improves TypeScript compatibility, and moves server Blueprint revisions to SQLite. Helm chart 0.4.0 deploys runtime 0.3.0.
Upgrade notes
- Stop the old server and back up its entire state directory or volume before the first 0.3.0 startup. Blueprint revisions and active selections are imported into SQLite in one transaction, then the old Blueprint directory is archived. Later Blueprint changes live only in SQLite. Rolling back to 0.2.0 requires restoring the pre-upgrade backup. (#114)
- The default database is
$SUBMILLI_HOME/server/db/submilli.db. Persist the whole directory, including SQLite journal and lock files, on local or block-backed storage. The Compose file and chart configure this path on their existing state volume. Sessions, VFS data, secrets, and Packages remain under the server root. - Automatic migration of the old pre-0.2 server directory layout has been removed. Existing legacy state is left untouched. Complete the 0.2.0 layout migration before upgrading an older installation. (#102)
- Embedded Rust callers must accommodate fallible setup APIs and prepare a Blueprint store before calling
AppState::new;serveselects and migrates the store. This is a pre-1.0 minor release with embedding API changes. - Some previously accepted invalid TypeScript is now diagnosed, including mixed
??and||/&&expressions without parentheses, leading-zero number literals, unsupported object-type construct signatures, and comparisons with incompatible operand types.
New capabilities
submilli:embeddingsupports provider-backed embeddings with Blueprint model aliases, capability checks, input bounds, token/request budgets, batching, and response validation. Providers include OpenAI, Google, Voyage, Jina, and Hugging Face. (#142)- Embedders can record permission decisions, runs, calls, and live session events. Run recording is opt-in through the Rust API; this release does not add a public playground UI. (#128, #139)
- Package security review follows transitive Package authority and checks more policy paths. The curated GitHub Package adds scoped research search. Download operations preserve the caller's write policy. (#150, #158, #117, #136)
Language and reliability fixes
- Add TypeScript-compatible bitwise operators, improve generic call inference, control-flow narrowing, mixed array inference, casts, name lookup, and switch-block scoping. (#153, #149, #144, #130, #118)
- Accept
catch (error: unknown)and default omitted RegExp flags to an empty string. (#161, #162) - Correct JSON and Error formatting, function identity, union spreads, and URI decoding behavior. (#124)
- Bound compiler inputs, type-validation traversal, diagnostics, and backtraces; make resolver diagnostics UTF-8 safe and propagate LLM/MCP setup failures. (#151, #163, #127, #152, #106, #111)
Helm chart
After publication:
helm install submilli oci://ghcr.io/submilli/charts/submilli --version 0.4.0 --wait
helm test submilliFor an existing chart 0.3.5 deployment, stop the old workload and snapshot its state before upgrading. Preserve tokens and the secret-store key. Chart 0.4.0 keeps the state volume and uses runtime 0.3.0's SQLite Blueprint storage. Do not roll back the image without restoring the pre-upgrade state.
Documentation
The book includes updated deployment guidance, a reproducible quickstart, generated CLI and built-in references, copyable heading links, and authorship metadata. Curated Packages and a public roadmap are documented.
v0.2.0
What's Changed
- SUB-501: fix Bucket B bugs — casts/spreads of object literals, string-key members, null in console.log/arrays, non-ASCII regex, lexer and caret fixes by @snlamm in #10
- Write the Submilli server chapter (docs 08) by @snlamm in #8
- Write the Deploying chapter (docs 16) by @snlamm in #11
- SUB-501: check the typechecker against tsc on TypeScript's conformance tests by @snlamm in #12
- Teach the skill how to deploy the server (skill v2) by @snlamm in #14
- SUB-937: assignment as a value, true/false types, readonly arrays and tuples, labeled tuples by @snlamm in #13
- SUB-501: a larger TypeScript conformance suite, and loops that narrow every pass by @snlamm in #15
- SUB-501: serialize a present-null optional field, and reject
deleteby name by @snlamm in #16 - Publish agent-readable docs and discovery links (SUB-946) by @somdoron in #17
- SUB-1020: expand TypeScript conformance coverage by @snlamm in #19
- Nested function declarations and inferred callback parameters (SUB-526, SUB-544) by @snlamm in #20
- Add Discord links to docs and README by @ehudfisher in #18
- Carry website dark mode into docs and use shared design tokens by @ehudfisher in #21
- SUB-366: Enforce VFS size_limit; server fuel and stack settings by @somdoron in #22
- SUB-633: bound compiler structure; fallible codegen lowering (items 12-16) by @somdoron in #23
- SUB-633: bound type size and compiler work (item 12 stages 2-3) by @somdoron in #25
- SUB-1114: check capability rules on every HTTP redirect hop by @somdoron in #26
- SUB-1117: make the value check approves the value a package uses by @somdoron in #24
- SUB-950: require API tokens on submilli-server by @somdoron in #28
- SUB-1174, SUB-1132, SUB-1127: void conditionals, GC keeping, memory exhaustion by @somdoron in #29
- SUB-501: conformance coverage map, guardrail and widened suite by @snlamm in #27
- SUB-1131, SUB-1181, SUB-1182, SUB-1183: traps, top-level limits, returns by @somdoron in #31
- SUB-1133–1144: check the values first-party packages send by @somdoron in #32
- SUB-1159, SUB-1155, SUB-1068: fix the High-priority conformance bugs by @snlamm in #30
- SUB-1173: Check discipline tracks globals the caller can rebind by @somdoron in #33
- SUB-1223: Code search works under fs grants narrowed to a workspace by @somdoron in #36
- SUB-1186: Render a frame for top-level failures, closures and methods by @somdoron in #37
- SUB-1220: Advertise submilli:session only when read and write are grantable by @somdoron in #38
- SUB-1215: Stop linting omitted package capabilities; list them on request by @somdoron in #39
- SUB-1146: Bring class method and static capability tags into the schema by @somdoron in #40
- SUB-1163: Refuse dot segments in HTTP paths and url.build by @somdoron in #41
- SUB-501: make sure every TypeScript conformance divergence is understood, and is tracked where appropriate by @snlamm in #35
- SUB-1230: Derive capability filters in the form the runtime checks by @somdoron in #42
- Make package-test credentials and network selection explicit by @somdoron in #43
- SUB-1145: Check class member bodies for returns, reachability, fallthrough by @somdoron in #44
- SUB-1229: Install private GitHub packages with a GitHub token by @somdoron in #47
- SUB-1228, SUB-1235, SUB-1258: add-package keeps operator rules, covers deps; lint flags unreachable rules by @somdoron in #46
- SUB-1138: Check package doc comments for @PARAM and @returns by @somdoron in #48
- SUB-1222: Named volumes and optional mounts; remove persistent mode by @somdoron in #49
- SUB-1268, SUB-163: Speed up host string, byte, and sort paths by @somdoron in #50
- SUB-1265: Remove blueprint seeding and local secret sources by @somdoron in #51
- Validate blueprint packages and complete declaration docs by @somdoron in #52
- SUB-1282: Answer MCP file tool failures as tool results by @somdoron in #53
- SUB-1128: Throw QuotaExceededError for exhausted budgets by @somdoron in #54
- SUB-1147: Make Array.push amortized constant time by @somdoron in #55
- Consolidate agent guidance and reduce repeated review work by @somdoron in #56
- SUB-1283: Lint filters on fields the operation doesn't report by @somdoron in #57
- SUB-1269: Upgrade submilli-wasm to 0.1.7 by @somdoron in #58
- SUB-1291: Bound Map and Set probes and reclaim tombstones by @somdoron in #59
- SUB-940: Lint warns on capability names nothing provides by @somdoron in #61
- SUB-1260: Allow deployment service names for MCP by @somdoron in #60
- SUB-1272: Accept readable fuel and token budget counts by @somdoron in #63
- SUB-1293: Rank capability spelling suggestions by distance by @somdoron in #62
- SUB-1269: Charge fuel for host work by @somdoron in #64
- SUB-1294: Return correctable MCP argument errors as tool results by @somdoron in #65
- SUB-1289, SUB-1290: Validate capability fields at build and registration by @somdoron in #66
- SUB-1269: Read accessors in place instead of copying the receiver by @somdoron in #67
- SUB-1269: Charge the work of each operation and of I/O (land #68 on main) by @somdoron in #69
- Return fatal errors for runtime construction and console failures by @somdoron in #71
- SUB-1129: Open Git repositories in place; budget memory from measurements by @somdoron in #70
- SUB-633: Trap host invariants and check ABI access by @somdoron in #72
- Add volume subPath mounts and blueprint cwd by @somdoron in #73
- Return worker failures and preserve cleanup ownership by @somdoron in #74
- Keep partial backlog PRs separate from parent issues by @somdoron in #75
- Check JSON, MCP and throw emission metadata (items 21, 27) by @somdoron in #76
- Make emitter and codegen setup fallible (items 17–20, 22) by @somdoron in #77
- SUB-1315/SUB-1316: Add configurable server logs and logfmt output by @somdoron in #78
- SUB-1314: Add optional HTTPS and CLI certificate trust by @somdoron in #79
- Make blueprint-store operations fallible by @somdoron in #81
- SUB-1323: Deny warnings in builds, lint and installs by @somdoron in #80
- SUB-1317: Add server audit records by @somdoron in #83
- SUB-1292: Bound host work and align fuel charges by @somdoron in #84
- Make session last-run storage fallible (items 30–31) by @somdoron in #85
- SUB-1310: Filter model listings by candidate permissions by @somdoron in #82
*...
v0.1.6
Fix recursive aliases, callbacks, equality, and switch flow SUB-817: Bound recursive alias comparisons and recognize equivalent nested instantiations without overflowing the compiler stack. SUB-772: Accept value-returning functions in void callback positions while preserving explicit return annotations and result dropping. SUB-949: Check equality overlap symmetrically so nullable values work on either side, preserving enum and literal comparison checks. SUB-913: Simplify overlapping logical result types so inferred strings support template interpolation without changing short-circuit behavior. SUB-852: Share completion analysis across switch fallthrough and return checks, accounting for try, catch, finally, and nested switch transfers. Add 21 regression fixtures covering accepted programs and invalid cases. Integrate upstream literal inference by sharing compound arithmetic rules, preserving literal-field diagnostics, simplifying ternary and nullish result types, and updating affected fixtures and lint formatting. Co-Authored-By: OpenAI Codex <noreply@openai.com>