Skip to content

Submilli v0.4.3

Choose a tag to compare

@somdoron somdoron released this 22 Oct 11:37
· 29 commits to main since this release

Submilli 0.4.3 ships with Helm chart 0.4.4.

Breaking changes

  • http.request(method, …) is now checked against the http.request capability with an uppercase method field, instead of http.<method>. Update blueprint grants that allowed http.get, http.post and so on for calls made through http.request. #281
  • add-package no longer grants standard-library capabilities such as fs.write. Grant them in the blueprint. #281
  • The firecrawl, sentry, linear and jina packages no longer export their untagged helpers. firecrawl search checks only firecrawl.dev/search. #281, #284
  • Method parameters are compared contravariantly, like function-typed properties. Mutable generic classes such as Map and Set are now invariant: Map<string, number[]> is no longer a Map<string, readonly number[]>. Programs that relied on the old, unsound assignments now fail to compile. #270

Changes

  • Agent documentation is scoped to the blueprint. Discovery over MCP, REST, the CLI's --blueprint and the playground shows only the callables main could be allowed, the types they reach, and the readme regions their capabilities select (<!-- submilli:if … -->). Package agent docs no longer carry setup or secret names. #281, #285
  • Packages can declare install-time configuration in src/config.ts, supplied with --config name=value on builds and local or server installs. Overrides survive upgrades and can be reset. #256
  • Package tests can import their package's internal modules by relative path. Only test builds export them. This also fixes re-exported interfaces and type aliases whose fields consumers couldn't read. #284
  • Compile errors name the Submilli rewrite for code written out of TypeScript and Node.js habit: async/await/Promise, a module used without its import, Node fs names, string + number, unknown in a typed slot, a missing return type, and multi-declarator let. async object methods and for await report one error instead of a cascade, and a broken main no longer also reports a missing main. #283, #287
  • New fs.summary(path) and fs.isEmpty(path), gated by fs.list. #283
  • JSON.stringify of host-backed values such as fs.info(), fs.stat(), Response and URL writes their properties instead of {}. JSON.stringify(map) writes an object of its entries instead of throwing. #289
  • A failed checked cast says what was expected at the failing path and what was found there, and reports the union member that best explains the failure. #288
  • submilli docs, agent docs and editor .d.ts files show a re-exported type by its public name. #287
  • The server records completed host results of a run in ordered SQLite history, the groundwork for durable runs. Public activation and automatic startup recovery follow in a later release. #260
  • submilli playground runs on its own host inside the CLI, and submilli-server no longer carries playground-only code. Sentry reporting for failed server runs is always on when telemetry is enabled. #265, #275, #276
  • ScrapeCreators: subreddit searches accept string subreddit values and expose score and ups. Reddit posts and comments gain a canonical_url to pass to listComments. #277, #288
  • More TypeScript compatibility: equality narrowing of optional chains, enum members and tuple discriminants; inference, pattern defaults and module exports; and syntax and class early errors as tsc reports them. Eight stale ECMA-262 conformance cases are restored from test262. #280, #286, #278, #261
  • Documentation: harness guides gain coding-agent setup and connection checks, the install and Compose guides are clarified and the Compose guide is validated in CI, and examples use the Pied Piper and Hooli names. #233, #267, #269, #272, #266, #268

Upgrade

Stop the old server and back up the whole state directory, including SQLite files and the secret-store key, before upgrading. This release rebuilds the server's run records to add durable run history. The migration is forward-only, and rollback requires restoring the pre-upgrade backup. Review blueprints for the http.request and add-package changes above.

Chart 0.4.4 changes only the runtime it deploys. Its templates and values are unchanged.

helm upgrade --install submilli oci://ghcr.io/submilli/charts/submilli --version 0.4.4 -f values.yaml --wait
helm test submilli

Compose deployments should use compose.yaml from v0.4.3 with SUBMILLI_IMAGE=ghcr.io/submilli/submilli-runtime:0.4.3 and retain their tokens and store key.

Compare v0.4.2…v0.4.3