graceful embedded server startup errors
I changed an embedded server with an occupied port to return a useful startup error instead of panicking. The JavaScript callers now handle that failure explicitly and keep the host process alive.
I changed an embedded server with an occupied port to return a useful startup error instead of panicking. The JavaScript callers now handle that failure explicitly and keep the host process alive.
I added tests for correlated ExistsRel policies during UPDATE operations and the reverse SELECT path. The coverage makes sure both directions of the relationship are exercised.
I added coverage for correlated ExistsRel INSERT policies. The tests check both denied and allowed writes, including policy evaluation for optimistic writes.
I fixed nested EXISTS policy conversion so a shared condition is applied to every branch of an OR expression. This prevents a branch from accidentally skipping the ownership check.
I made authentication state and its transport credentials change together as one committed transition. Observers now see only a complete authentication mode, rather than a temporary mismatch between the two.
I fixed a problem where aggregate aliases could collide and make output columns ambiguous. Now validation rejects exact, case-sensitive aggregate output collisions before normalization or lowering.
I fixed a problem where every non-array object was treated as operators. Now direct timestamp, byte-array, JSON-object and array values lower to one typed Eq condition.
I fixed a problem where backend JWKS discovery could cross an untrusted transport boundary or accept an insecure redirect. Now jWKS discovery is admitted only through the trusted backend transport contract and redirect policy fails closed.
I fixed a problem where dropped initialised streaming uploads could retain staged large-value claims, and wrapper or database close could discard shared state before cleanup ran. Now binding-private owner and view lifecycle code queues non-blocking drop cleanup.
I updated Jazz so equivalent Vue config replacements retain the pending or ready client, avoiding unnecessary shutdown and fallback flicker.
I fixed a problem where a provider could recreate or dispose a client for an equivalent or in-place configuration change, disrupting the consumer during a handover. Now the provider compares configuration semantics, preserves equivalent clients, and transfers ownership safely when authentication or storage configuration changes.
I fixed a problem where production starter servers could return a missing page for a client-side route that was not the root path. Now the four affected starters return the SPA shell for valid client-side deep links while preserving API and asset responses.
I fixed a problem where jazz enumerated logical per-table history families and metered each independently. Now groove owns logical-to-physical aggregation behind the concrete Database interface.
I updated Jazz so concurrent authentication requests share one server JWKS refresh rather than independently fetching the same public keys.
I fixed a problem where session range expressions compiled in TypeScript despite core accepting only equality and inequality, then failed later during schema conversion. Now defined session ranges throw a targeted synchronous DSL error.
I fixed a problem where a browser worker or follower could be used before readiness was established, and reset or terminal paths could leave lifecycle ownership outstanding. Now worker connections establish readiness before use, unresponsive followers fail through the lifecycle error path, and reset/shutdown release leases and pending ownership deterministically.
I fixed a problem where wASM tracing could be unavailable when hooks were absent, and multiple runtime contexts could race over collector ownership or retain telemetry after disposal. Now wASM hooks are exposed where available, compatible contexts share one collector lease, endpoint mismatches fail safely, and disposal drains and releases telemetry without disrupting surviving contexts.
I fixed a problem where recursive policy join hydration could use a comparison different from the one declared by the query, changing which recursive rows entered the closure. Now hydration carries and applies the declared comparison through recursive join evaluation.
I fixed a problem where a malformed record header could point a variable-field span into the fixed header area and reach lookup logic with an invalid payload boundary. Now record validation rejects the impossible span before variable-field lookup, matching the full decoder's safety boundary.
I fixed a problem where writeStream truncated 1,000 / rate to whole milliseconds. Now each timestamp is floor(index × 1,000 / rate).