Skip to content

Release digest: September 7 - 14, 2026 (Week 37)

RepositoryPrevious versionCurrent version
AIv0.10.0v2.0.10
Arcv22.10.5v22.14.0
Arc.KotlinFirst releasev5.0.0
AuthProxyv2.22.0v2.22.2
Chroniclev17.0.4v18.2.0
Chronicle.Elixirv2.3.0v3.0.0
Chronicle.Kotlinv4.0.0v5.0.0
Chronicle.TypeScriptv4.0.0v5.0.0
cliv2.19.1v3.1.6
Componentsv4.1.1v4.4.0
Fundamentalsv7.18.4v7.19.2
Narratorv2.0.0v3.0.2
Prompterv0.2.2v0.2.3
release-actionv1.3.0v1.3.1
Scenev3.2.0v3.3.1
Specificationsv4.1.0v4.1.1
Stagev3.11.0v3.15.1
Synopsisv1.1.2v1.1.3
  • Components (Release v4.4.0): useGrouping on NumberInput and NumberInputField, disabling the locale grouping separator while keeping locale-specific decimal handling (#271)
  • Components (Release v4.3.0): NumberInput — a locale-aware numeric input with grouping separators, configurable fraction digits, min/max clamping, keyboard stepping and accessible spinbutton semantics (#175)
  • Components (Release v4.3.0): NumberInputField — the CommandForm adapter binding NumberInput to a numeric command property (#175)
  • Components (Release v4.3.0): Inline prefix and suffix decorations that sit beside the value and are never folded into it, so a unit label stays distinct from the number itself (#175)
  • Components (Release v4.3.0): null as a first-class empty value, kept distinct from 0 across the public boundary (#175)
  • Components (Release v4.3.0): eventTimelineRegion, readModelSnapshotRegion and relatedEventsRegion labels on TimeMachineLabels (#268)
  • Stage (Release v3.15.0): A played event model that declares no screens now gets the screens it implies — one per slice, showing what the slice’s read model holds and what its command does — so playing a model authored on Studio’s canvas renders a working application instead of an empty page.
  • Stage (Release v3.15.0): The played frontend reads a read model through the query the Stage registered for it and submits a command from a form built off its schema, showing the validation results or errors the application returned.
  • Stage (Release v3.13.0): Allow a Stage container to start warm and accept one Screenplay handoff without restarting its Chronicle kernel. (Cratis/StudioIssues#336)
  • Chronicle (Release v18.2.0): Integration specifications cover empty event-sequence, job, failed-partition, webhook, and event-store-subscription results.
  • cli (Release v3.1.0): Add cratis ai install, update, status, and uninstall with manifest-driven profile, language, and harness selection.
  • cli (Release v3.1.0): Configure complete Claude Code, Codex, Copilot, Pi, Cursor, and OpenCode integrations against .cratis/ai.
  • cli (Release v3.1.0): Preserve user-owned paths, hash managed content and integrations, stop safely on modifications, and limit --force to content already recorded as managed.
  • cli (Release v3.1.0): Preserve skill frontmatter while marking managed files, use comment syntax appropriate to each file type, report available updates, and record the source Git revision.
  • cli (Release v3.1.0): Debug and Release builds: zero warnings and errors
  • cli (Release v3.1.0): Full specification suite: 1,093 passed
  • cli (Release v3.1.0): Real install against the AI corpus: Pi, Cursor, and OpenCode adapters created; 12 TypeScript Chronicle skills resolved with frontmatter intact
  • Arc (Release v22.14.0): ICommandOperation with dependency-injected Execute() and optional Compensate(), plus immutable CommandOperations for ordered zero-to-many work.
  • Arc (Release v22.14.0): Automatic failure handling, reverse-order compensation, independent cleanup cancellation, and backend recovery observations for compatible command boundaries, including Chronicle’s deferred event commit.
  • Arc (Release v22.14.0): Compiler diagnostics and generated invocation support for operation declarations, with operations excluded from generated client responses.
  • Arc (Release v22.14.0): CommandScenario cancellation support and assertions over real operation execution and compensation.
  • Arc (Release v22.14.0): Dedicated usage, migration, troubleshooting, and testing guides, with runnable examples for partial failure, cancellation, and Chronicle commit rejection.
  • Arc (Release v22.14.0): Contextual recommendations throughout Arc’s existing command, tutorial, validation, and storage guidance, preserving supported direct calls and durable reactor/workflow boundaries.
  • Arc.Kotlin (Release v5.0.0): @CommandEventSourceType, @CommandEventStreamType, @CommandEventStreamId, and @CommandEventSubject emit typed command metadata with stable compile-time validation (#94)
  • Arc.Kotlin (Release v5.0.0): CommandEventStreamIdProvider and CommandEventSubjectProvider supply instance-derived event metadata from Kotlin and Java commands (#65)
  • Arc.Kotlin (Release v5.0.0): CommandEventMetadata is available on generated descriptors and command contexts, including a Java-friendly manual-handler factory (#94)
  • Arc.Kotlin (Release v4.2.0): Keyless, null-key, and duplicate-key collection snapshots use exact serialized JSON set identity for added and removed values (#103)
  • Arc.Kotlin (Release v4.1.0): Mixed collections and arrays route plain events through the command key and retain each EventForEventSourceId source identifier (#95)
  • Arc.Kotlin (Release v2.0.0): Spring Boot 4.1 support across the core starter, optional integrations, Kotlin and Java samples, and the real Chronicle kernel contract (#138)
  • Arc.Kotlin (Release v2.0.0): Mixed Jackson support: Boot’s Jackson 3 application stack and Arc’s configured Jackson 2 endpoint mapper coexist in one host (#138)
  • Arc (Release v22.13.1): Chronicle 18.1.0: Report substituted compliance behavior in read-model scenarios, including strict-fidelity rejection for projections and reducers.
  • Arc (Release v22.13.1): Chronicle 18.1.0: Add typed scope enforcement through IUniqueEventTypesConstraintsStorage.IsAllowedWithinScope, preserving the original method for existing storage providers.
  • Chronicle (Release v18.1.0): Report substituted compliance behavior in read-model scenarios, including strict-fidelity rejection for projections and reducers.
  • Chronicle (Release v18.1.0): Add typed scope enforcement through IUniqueEventTypesConstraintsStorage.IsAllowedWithinScope, preserving the original method for existing storage providers.
  • Arc.Kotlin (Release v1.0.0): Kotlin KDoc and Java Javadoc summaries for commands, query methods, client query parameters, model types and properties, interfaces and properties, and enum declarations are captured at compile time and carried in the artifact manifest (#51)
  • Arc.Kotlin (Release v1.0.0): Generated TypeScript proxies render those summaries as single-line JSDoc on the command interface and class, the command interface property and its public getter, the query parameter interface and query class, client parameter fields, the model class and its generated fields, the interface and its fields, and the enum declaration (#51)
  • Arc.Kotlin (Release v1.0.0): A member without its own comment falls back to a Kotlin @property tag or a Java @param tag on the declaring class or record (#51)
  • Arc.Kotlin (Release v1.0.0): DocumentationSummaries states the single-line, 512-code-point summary invariant that every descriptor enforces (#51)
  • Arc.Kotlin (Release v0.4.0): ArcArtifactModuleRegistry.registerDerivedTypes populates a DerivedTypeRegistry from a generated artifact module, so a host without Spring can build a working ArcObjectMapper (#99)
  • Arc.Kotlin (Release v0.4.0): DerivedTypeRegistrar beans register a @DerivedType hierarchy that code generation never processed, such as one arriving only as a dependency binary (#99)
  • Arc.Kotlin (Release v0.4.0): Generated artifact modules expose derivedTypes, the base-to-derivative mappings code generation recorded as class references (#99)
  • Arc.Kotlin (Release v0.3.0): Host-wide correlation for every servlet route: one correlation identifier per request, readable from an ordinary Spring MVC controller with ArcCorrelation.of(request) and echoed on every response under the configured correlation header (#52)
  • Arc.Kotlin (Release v0.3.0): cratis.arc.correlation-enabled to turn the host-wide correlation filter off, and an arcCorrelationFilterRegistration bean name to replace it (#52)
  • Arc.Kotlin (Release v0.3.0): CorrelationIdResolver in the host-agnostic runtime for parsing or generating a correlation identifier (#52)
  • Arc.Kotlin (Release v0.2.1): ARCKSP0303 for a missing or blank @DerivedType identifier and ARCKSP0304 for @DerivedType on an unsupported declaration, both listed in CodeGeneration/KSP/DIAGNOSTICS.md (#101)
  • Arc.Kotlin (Release v0.2.0): ValidationResult.information, ValidationResult.warning, and ValidationResult.error static factories taking message, members, state, reason, and reason detail (#63)
  • Arc.Kotlin (Release v0.2.0): CommandScenarioResult.shouldBeAuthorized, shouldBeValid, shouldHaveErrors, and shouldHaveNoErrors (#63)
  • Arc.Kotlin (Release v0.2.0): QueryScenarioResult.shouldBeAuthorized and shouldBeValid (#63)
  • Arc.Kotlin (Release v0.2.0): CommandScenario.withReadModel pins a command-side read model to a known state without a store or query pipeline (#64)
  • Arc.Kotlin (Release v0.2.0): CommandScenario.withReadModelForKey pins a read model for one exact command key, so every other key resolves to absence (#64)
  • Arc.Kotlin (Release v0.1.0): ObservableQueryOpenResult.Stream.snapshot and AsyncObservableQueryOpenResult.Stream.snapshot expose the value an observable source already holds, without waiting for a new one (#56)
  • Arc (Release v22.13.0): Add ARCCHR0010 for keyless commands returning a raw Guid alongside statically identifiable untargeted events, with an optional compiler-checked code fix when the value is intended as the event-source identity.
  • Arc (Release v22.13.0): Add guides showing how direct command specs complement Arc pipeline and Chronicle scenario tests.
  • Arc (Release v22.12.0): Add exceptionMessage for safe, localized exception text and exceptionDisplayComponent with exported ExceptionDisplayProps to replace the exception panel independently of field-validation rendering. (#2669)
  • Arc (Release v22.11.0): Chronicle 17.1.0: Server view under System showing running server instances with live CPU/memory (cratis/chronicle#3982)
  • Arc (Release v22.11.0): Chronicle 17.1.0: Bulk select and delete for Jobs, and bulk select and ignore for Recommendations, in the Workbench (cratis/chronicle#3986)
  • Arc (Release v22.11.0): Chronicle 17.1.0: ClearFailedPartitions operator command to recover a wedged observer without direct database access (cratis/chronicle#3997)
  • Components (Release v4.2.0): CheckboxListFilter, a reusable checkbox/radio picker with a search box that becomes sticky and only shows once the option list overflows its bounded height (Cratis/Chronicle#3991)
  • Chronicle (Release v17.1.0): Server view under System showing running server instances with live CPU/memory (#3982)
  • Chronicle (Release v17.1.0): Bulk select and delete for Jobs, and bulk select and ignore for Recommendations, in the Workbench (#3986)
  • Chronicle (Release v17.1.0): ClearFailedPartitions operator command to recover a wedged observer without direct database access (#3997)
  • Fundamentals (Release v7.19.0): GeneratedTypeDiscoveryRegistry.EnsureProvidersRegistered() runs the assembly closure walk that registers generated providers, so a host that builds its type universe before AddBindingsByConvention/AddSelfBindings can make sure the provider set is complete first (#1114)
  • Fundamentals (Release v7.19.0): TypesServiceCollectionExtensions.CurrentTypeUniverse() returns the same ITypes instance AddTypeDiscovery() registers without providers, so a caller can hold the universe its container will resolve (#1114)
  • AI (Release v2.0.10): The pull request rule now states that a description is published as the release note verbatim, that a development write-up is not a release note, and that release notes written by hand for a manually triggered release carry the same shape.
  • Chronicle (Release v18.2.0): Generated gRPC messages initialize non-nullable values and collections at the contract boundary.
  • AI (Release v2.0.0): Make .cratis/ai the only canonical corpus and remove the legacy tooling, evidence, generated catalog, distribution, pilot, and repository-inventory systems.
  • AI (Release v2.0.0): Keep 53 profile-referenced skills and a minimal profile catalog; move all executable maintenance into Source/Harness.Setup, Source/Pi.Plugin, and Source/Verification.
  • AI (Release v2.0.0): Give Pi, Cursor, and OpenCode complete native repository adapters alongside Claude Code, Codex, and Copilot.
  • AI (Release v2.0.0): Replace the workflow matrix with one quality-and-release workflow using cratis/release-action for semantic versioning and publishing @cratis/pi.
  • AI (Release v2.0.0): Package the real corpus in the Pi npm tarball; resolve configured profiles and languages, and expose all 53 packaged skills when .cratis/ai.json is absent.
  • AI (Release v2.0.0): TypeScript checks for all three Source projects
  • AI (Release v2.0.0): Corpus/profile/skill verification: 53 skills, 66 profile records
  • AI (Release v2.0.0): Pi resolver specifications and npm pack dry run
  • AI (Release v2.0.0): Harness setup check: 105 integrations
  • AI (Release v2.0.0): shellcheck, actionlint, and git diff --check
  • Narrator (Release v3.0.1): The VS Code Marketplace title is now “Cratis Narrator - Chronicle Explorer” instead of “Narrator - Chronicle Explorer”.
  • Narrator (Release v3.0.0): Target Chronicle 18: the client now speaks the restructured 18 contracts. Event store, namespace, job, event-type, identity, and recommendation listings read the new QueryResult envelopes; the event-sequence tail and range reads use the new tailSequenceNumber and fromSequenceNumber operations.
  • Narrator (Release v3.0.0): Event-sequence range reads: Chronicle 18 dropped the server-side upper bound, so the event viewer page is now clamped client-side. The event store and namespace shown per event now come from the query rather than the event context (which no longer carries them in 18).
  • Narrator (Release v3.0.0): Bumped the remaining development tooling to the latest compatible versions.
  • AI (Release v1.0.0): Marketplace plugin manifests and the engineering plugin manifests are versioned 1.0.0 (#147)
  • AI (Release v1.0.0): The passive npm release lane publishes supported stable versions (1.0.0 and newer); the historical preview lane stays on 0.x preview tags (#147)
  • AI (Release v1.0.0): The packaged npm README is lane-aware: supported stable wording for releases, evaluation wording for previews (#147)
  • Arc.Kotlin (Release v5.0.0): Chronicle appends use command source type, stream type, stream ID, and subject as defaults while preserving explicit routed-event metadata (#65)
  • Arc.Kotlin (Release v5.0.0): Artifact manifests move to format 7 with optional typed command event metadata (#94)
  • Arc.Kotlin (Release v4.2.0): ChangeSetComputer.compute now returns a non-null change set for supported list inputs; keyless field changes are represented as remove plus add rather than replacement (#103)
  • Arc.Kotlin (Release v4.0.0): CommandScenarioResult.shouldBeInvalid() now rejects dependency-only validation feedback and directs tests to assert dependencyUnavailable explicitly when that is intentional (#87)
  • Arc.Kotlin (Release v3.0.0): Arc JSON APIs now expose tools.jackson runtime types instead of its legacy com.fasterxml.jackson runtime types; Jackson annotations intentionally remain under com.fasterxml.jackson.annotation (#150)
  • Arc.Kotlin (Release v3.0.0): ArcObjectMapper.configure now returns an Arc-configured immutable mapper copy instead of mutating the supplied mapper (#150)
  • Arc.Kotlin (Release v3.0.0): Spring Boot and Arc now share one native Jackson 3 mapper configured through JsonMapperBuilderCustomizer (#150)
  • Arc.Kotlin (Release v3.0.0): Jackson 2 and kotlinx-coroutines versions are replaced with Spring Boot 4.1.1’s managed Jackson 3.1.5 and coroutines 1.10.2 runtime baseline (#150)
  • Arc.Kotlin (Release v2.0.0): Spring Boot dependencies and the Gradle plugin move from 3.5.16 to 4.1.1, including Boot 4’s modular Web MVC, security, persistence, MongoDB, transaction, and test coordinates (#138)
  • Arc.Kotlin (Release v2.0.0): Jackson 2 and kotlinx-coroutines compile versions align with the versions managed by Spring Boot 4.1.1, preventing host dependency management from creating binary skew (#138)
  • Arc.Kotlin (Release v2.0.0): Spring Security authorities without a string representation are ignored instead of being dereferenced (#138)
  • Arc (Release v22.13.1): Cratis.Chronicle, Cratis.Chronicle.AspNetCore and Cratis.Chronicle.Testing are updated to 18.1.0
  • Arc (Release v22.13.1): Chronicle 18.1.0: Built-in providers reject direct calls to the legacy IsAllowed method with a non-empty scope key instead of silently ignoring scope. Empty or omitted keys retain unscoped behavior; the engine uses the new typed method. Custom providers implementing only the original method retain their legacy behavior and its scope-key limitations.
  • Chronicle (Release v18.1.0): Built-in providers reject direct calls to the legacy IsAllowed method with a non-empty scope key instead of silently ignoring scope. Empty or omitted keys retain unscoped behavior; the engine uses the new typed method. Custom providers implementing only the original method retain their legacy behavior and its scope-key limitations.
  • Arc.Kotlin (Release v1.0.1): Spring Boot 3.5 dependencies and the Gradle plugin move from 3.5.3 to 3.5.16
  • Arc.Kotlin (Release v1.0.0): /.cratis/commands and /.cratis/queries return the artifact’s documentation summary instead of an empty string (#51)
  • Arc.Kotlin (Release v1.0.0): The artifact manifest contract moves to format version 6; a dependency whose manifest was generated against an earlier format must be rebuilt (#51)
  • Arc.Kotlin (Release v0.5.0): Runtime dependencies of the published artifacts move to Jackson 2.22.2, slf4j 2.0.19, micrometer 1.17.1, OpenTelemetry 1.65.0, swagger-models 2.2.55, h2 2.5.250, and mockk 1.14.11 (#125)
  • Components (Release v4.2.2): Render the non-modal ChatSidebar as a plain portaled layer instead of React Aria’s modal overlay, so the default (non-modal) open sidebar no longer blocks the rest of the UI — the background stays visible and interactive, and only the close/back affordances dismiss it, as the documented behavior already promised
  • Components (Release v4.2.2): Add specs covering both modes: a non-modal open sidebar leaves the background in the accessibility tree and clickable, and the modal one still hides it
  • Arc.Kotlin (Release v0.3.0): An inbound correlation header is reused only when it is a UUID; any other value is replaced and the canonical identifier is what reaches downstream code, logs, and responses (#52)
  • Arc.Kotlin (Release v0.3.0): Arc endpoints and Arc authentication now observe the identifier established for the request instead of resolving one each, so a single request no longer carries more than one correlation identifier (#52)
  • Arc.Kotlin (Release v0.1.0): An observable-query subscription that omits transferMode now receives the legacy snapshot plus change set on every result instead of a snapshot alone; full and delta are unchanged (#58)
  • Arc.Kotlin (Release v0.1.0): ObservableQueryPipeline.open and the Java AsyncObservableQueryPipeline.open overloads accept a null transfer mode to select that legacy behavior (#58)
  • Arc (Release v22.13.0): Separate standalone Arc behavior from optional Chronicle integration throughout onboarding, backend, and frontend documentation.
  • Arc (Release v22.13.0): Use strongly typed domain examples and explain prerequisites, trade-offs, and validation boundaries.
  • AuthProxy (Release v2.22.2): Attested invitation completion reports bounded, value-free diagnostic reasons so operators can distinguish failed completion checks without exposing invitation or identity data. Duplicate-subject refusals are logged consistently on both invitation paths. (#118)
  • Arc (Release v22.12.0): Show “An unexpected error occurred. Please try again.” instead of raw server exception messages by default; preserve original results and diagnostics for failure callbacks. (#2669)
  • Arc (Release v22.11.0): Cratis.Chronicle, Cratis.Chronicle.AspNetCore and Cratis.Chronicle.Testing are updated to 18.0.0
  • Arc (Release v22.11.0): Chronicle 17.0.5: Cratis.Fundamentals and Cratis.Metrics.Roslyn move to 7.19.1 (cratis/chronicle#3998)
  • Arc (Release v22.11.0): Chronicle 17.1.0: Switching namespace in the Workbench now consistently refreshes the current view, including via URL navigation, browser back/forward, and deep links (cratis/chronicle#3981)
  • Arc (Release v22.11.0): Chronicle 17.1.0: Pattern heatmap and causation rendering now recognizes reactors, commands, and ASP.NET requests, and shows identity display names instead of raw subject IDs (cratis/chronicle#3979)
  • Arc (Release v22.11.0): Chronicle 17.1.0: “By Silo” renamed to “By Instance” in the Clients view (cratis/chronicle#3982)
  • Arc (Release v22.11.0): Chronicle 17.1.0: RetryPartition now reports an honest outcome instead of silently succeeding when it did nothing (cratis/chronicle#3997)
  • Arc (Release v22.11.0): Chronicle 17.1.0: Chronicle no longer eagerly creates a namespace’s database before it has received any data (cratis/chronicle#3990)
  • Arc (Release v22.11.0): Chronicle 18.0.0: Breaking: Content on AppendRequest, EventToAppend, EventForEventSourceId, and ReviseRequest changes from map<string, JsonNode> back to a plain JSON string, matching how event content is already represented everywhere else on the wire (AppendedEventResponse.Content, EventRevision.Content). Any client built directly against the raw gRPC contracts for these four messages must send/receive Content as a string, not a nested map.
  • Chronicle.Elixir (Release v3.0.0): Breaking: updated to cratis_chronicle_contracts 18.0.0 — most RPC methods were renamed, and command/query responses are now wrapped in an envelope (CorrelationId, IsAuthorized, ValidationResults, ExceptionMessages, plus the actual payload). This client had no envelope-awareness at all before; a new Chronicle.WireResult.unwrap/1 helper centralizes the check, and an unauthorized or excepted command now returns {:error, ...} instead of silently succeeding.
  • Chronicle.Elixir (Release v3.0.0): Breaking: append_many_for_event_sources/2 now calls a genuinely separate AppendManyForEventSources RPC instead of reusing the single-event-source AppendMany request.
  • Chronicle.Elixir (Release v3.0.0): Breaking: Chronicle.Jobs.get/2 — the kernel removed its single-job query entirely; it now fetches the full job list and finds by id client-side.
  • Chronicle.Elixir (Release v3.0.0): Breaking: Chronicle.ReadModels.get_snapshots_by_id/3 now queries the dedicated ReadModelExplorer service instead of ReadModels.
  • Chronicle.Elixir (Release v3.0.0): Webhook registration no longer sends an Owner field (removed from the wire contract); Chronicle.WebHooks.all/1 reconstructs webhook definitions from the kernel’s flattened read shape.
  • Chronicle.Kotlin (Release v5.0.0): Breaking: updated to chronicle-contracts 18.0.0 — most RPC methods were renamed, and command/query responses are now wrapped in an envelope (CorrelationId, IsAuthorized, ValidationResults, ExceptionMessages, plus the actual payload under .response/.data). An unauthorized or excepted command now throws ChronicleCommandRejected instead of silently succeeding.
  • Chronicle.Kotlin (Release v5.0.0): Breaking: appendMany for a batch spanning multiple event sources now calls a genuinely separate AppendManyForEventSources RPC instead of reusing the single-event-source AppendMany request.
  • Chronicle.Kotlin (Release v5.0.0): Breaking: IEventTypesService.getAllGenerationsForEventType now returns EventTypeDetailsResponse instead of EventTypeRegistration, matching the kernel’s new query shape.
  • Chronicle.Kotlin (Release v5.0.0): Breaking: ReadModelsService.getSnapshotsById now queries the dedicated ReadModelExplorer service instead of ReadModels.
  • Chronicle.Kotlin (Release v5.0.0): Webhook registration no longer sends an Owner field (removed from the wire contract); WebhooksService.getAll() reconstructs WebhookDefinition from the kernel’s flattened read shape.
  • Chronicle (Release v18.0.0): Breaking: Content on AppendRequest, EventToAppend, EventForEventSourceId, and ReviseRequest changes from map<string, JsonNode> back to a plain JSON string, matching how event content is already represented everywhere else on the wire (AppendedEventResponse.Content, EventRevision.Content). Any client built directly against the raw gRPC contracts for these four messages must send/receive Content as a string, not a nested map.
  • Components (Release v4.2.0): FilterPanel’s internal option-list renderer now delegates to CheckboxListFilter, gaining a scroll-capped list and overflow-triggered sticky search; the public FilterPanelProps/FilterDefinition API is unchanged and fully backward compatible (Cratis/Chronicle#3991)
  • Chronicle (Release v17.1.0): Switching namespace in the Workbench now consistently refreshes the current view, including via URL navigation, browser back/forward, and deep links (#3981)
  • Chronicle (Release v17.1.0): Pattern heatmap and causation rendering now recognizes reactors, commands, and ASP.NET requests, and shows identity display names instead of raw subject IDs (#3979)
  • Chronicle (Release v17.1.0): “By Silo” renamed to “By Instance” in the Clients view (#3982)
  • Chronicle (Release v17.1.0): RetryPartition now reports an honest outcome instead of silently succeeding when it did nothing (#3997)
  • Chronicle (Release v17.1.0): Chronicle no longer eagerly creates a namespace’s database before it has received any data (#3990)
  • Chronicle (Release v17.0.5): Cratis.Fundamentals and Cratis.Metrics.Roslyn move to 7.19.1 (#3998)
  • Arc (Release v22.10.6): Cratis.Fundamentals floor raised to 7.19.1, which shares one type universe per provider set and runs the generated-provider walk inside its CurrentTypeUniverse() accessor (#2666)
  • Chronicle.TypeScript (Release v5.0.0): Updated to @cratis/chronicle.contracts 17.0.4, matching Chronicle’s wire-contract migration where every gRPC service moved to ones generated from Arc [Command]/[ReadModel] artifacts. Most RPC methods were renamed and responses now travel inside a CommandResult/QueryResult envelope instead of bare payloads.
  • Chronicle.TypeScript (Release v5.0.0): EventSequence.appendMany (multi-event-source overload) now calls the new AppendManyForEventSources RPC; the wire’s own AppendMany became single-event-source only.
  • Chronicle.TypeScript (Release v5.0.0): Event type filters on EventSequences queries (getTailSequenceNumber, getForEventSourceIdAndEventTypes, getFromSequenceNumber) now send a comma-joined list of event type ids instead of full event type objects, matching the C# client.
  • Chronicle.TypeScript (Release v5.0.0): ReadModels.getSnapshotsById now calls the new ReadModelExplorer.allSnapshotsForReadModel service.
  • Chronicle.TypeScript (Release v5.0.0): Webhooks.registerDiscovered/register/remove follow the renamed addWebhooks/removeWebhooks RPCs (the Owner field was dropped from the wire).
  • Chronicle.TypeScript (Release v5.0.0): EventSeeding.seed -> seedEvents; EventTypes.register -> registerEventTypes.
  • Chronicle.TypeScript (Release v5.0.0): AllEventStores/AllNamespaces/AllJobs stopped streaming; each now resolves a single response.
  • Components (Release v4.3.0): TimeMachine’s event timeline and both version-window faces are reachable by keyboard and announce what they are (#268)
  • Components (Release v4.3.0): The related-events window title resolves through TimeMachineLabels instead of being hardcoded English, so localized labels reach it (#268)
  • Stage (Release v3.15.1): A stage that already runs an application answers a request to load another one with 409 Conflict instead of 405 Method Not Allowed, so a pool looking for somewhere to put a play session can tell an occupied stage from a broken one.
  • Stage (Release v3.15.0): A play session listed two event stores in the Chronicle Workbench. The event store name is now resolved once per container instead of once per process, so the handoff restart no longer registers a second store.
  • Stage (Release v3.15.0): A read model built by an automap projection stayed empty. Its shape is now taken from the events the projection maps from, and the identity property its documents are keyed by is declared when the model does not name one — without it every projection partition failed and the read model stayed empty for the whole session.
  • Stage (Release v3.15.0): Queries on a played model returned no data. They are now answered from the documents the session’s own in-memory Chronicle built.
  • AI (Release v2.0.8): Keep AI-repository-only harness and verification guidance out of installed corpora.
  • AI (Release v2.0.8): Treat direct user requests as sufficient authority without repeated approval ceremonies.
  • AI (Release v2.0.8): Stop prompting before managed project-agent delegation by default.
  • AI (Release v2.0.8): Make the ship prompt self-contained and support no-release intent.
  • Chronicle (Release v18.2.0): Client APIs now return empty collections or initialized response objects instead of compensating for null wire values in converters.
  • Chronicle (Release v18.2.0): Rebased onto origin/main (15a4be00e).
  • Chronicle (Release v18.2.0): Query and command envelopes share empty-payload creation for arrays, collection/list/set interfaces, and dictionaries.
  • Chronicle (Release v18.2.0): Generated collection defaults remain mutable for deserialization; populated values and response isolation are covered by specs.
  • Chronicle (Release v18.2.0): The assembly-wide audit checks constructed and deserialized non-nullable collection members, including nested legacy messages and actual service result envelopes; it exposed eight additional missing defaults.
  • Chronicle (Release v18.2.0): Query failures remain failures even with initialized empty data.
  • Chronicle (Release v18.2.0): Decision: 0001-empty-collection-responses (proposed; no pre-existing decision records matched).
  • Chronicle (Release v18.2.0): Release: 2,772 client specs, 520 testing specs, 76 generator specs passed with zero warnings.
  • Chronicle (Release v18.2.0): Documentation verification passed.
  • Chronicle (Release v18.2.0): Deliberate contract regeneration passed without unexpected generated changes.
  • Chronicle (Release v18.2.0): Latest commit 26ad9399178a788a430df549b58fb833efd69894: all 90 CI checks passed; 7 intentionally skipped; no pending or failed checks. GitHub reports CLEAN and MERGEABLE.
  • Chronicle (Release v18.2.0): Four empty-result client integration specifications passed locally with the rebuilt code in SQLite mode.
  • Specifications (Release v4.1.1): Update shared AI guidance so agents handle routine in-scope work without unnecessary approval questions.
  • Synopsis (Release v1.1.3): Update shared AI guidance so agents handle routine in-scope work without unnecessary approval questions.
  • Prompter (Release v0.2.3): Update shared AI guidance so agents handle routine in-scope work without unnecessary approval questions.
  • Components (Release v4.2.3): Update shared AI guidance so agents handle routine in-scope work without unnecessary approval questions.
  • release-action (Release v1.3.1): Update shared AI guidance so agents handle routine in-scope work without unnecessary approval questions.
  • AI (Release v2.0.7): Let agents proceed with reversible in-scope work without asking users to approve the same implementation again.
  • AI (Release v2.0.7): Require necessary authority and decision-record questions to explain concrete choices and consequences in plain language.
  • cli (Release v3.1.6): Generate project concern links from the repository root so they resolve through symlinked AGENTS.md and CLAUDE.md adapters.
  • cli (Release v3.1.6): Keep concern links valid when the index is consumed directly from .cratis/ai/rules/project.md.
  • cli (Release v3.1.6): Release build succeeds with zero warnings and errors.
  • cli (Release v3.1.6): Focused AI corpus specifications: 37 passed.
  • cli (Release v3.1.5): Split legacy project instruction files into focused concern rules under .cratis/ai/rules/project/.
  • cli (Release v3.1.5): Generate a shared .cratis/ai/rules/project.md index that tells every harness to load the concern files.
  • cli (Release v3.1.5): Preserve headings, content, code fences, duplicate concern names, and the original legacy source.
  • cli (Release v3.1.5): Keep all generated concern rules user-owned and outside the managed manifest.
  • cli (Release v3.1.5): Release build succeeds with zero warnings and errors.
  • cli (Release v3.1.5): Focused AI corpus specifications: 37 passed.
  • cli (Release v3.1.5): Specifications verify the shared index, concern files, frontmatter, legacy preservation, existing AGENTS.md, and Claude adapter.
  • AI (Release v2.0.6): Do not queue quality-gate follow-up turns after Pi print or JSON sessions have completed.
  • AI (Release v2.0.6): Prevent stale extension-context errors from masking the original noninteractive result.
  • AI (Release v2.0.6): Pi and verification TypeScript checks pass.
  • AI (Release v2.0.6): Six Pi behavior specifications pass, including the noninteractive session lifecycle.
  • cli (Release v3.1.4): Use // ownership markers for TypeScript, JavaScript, and C# managed files.
  • cli (Release v3.1.4): Use block comments for CSS and SCSS managed files.
  • cli (Release v3.1.4): Keep existing Markdown, JSON, shell, Python, and YAML marker behavior.
  • cli (Release v3.1.4): Release build succeeds with zero warnings and errors.
  • cli (Release v3.1.4): Focused AI corpus specifications: 35 passed.
  • cli (Release v3.1.4): A specification verifies installed TypeScript extensions start with valid comment syntax.
  • AI (Release v2.0.5): Publish every language represented by the profile catalog through .cratis/ai/manifest.json.
  • AI (Release v2.0.5): Verify exact profile-catalog and installation-manifest language parity.
  • AI (Release v2.0.5): Verification and Pi TypeScript checks pass.
  • AI (Release v2.0.5): Corpus verification reports 53 skills and 66 profiles.
  • AI (Release v2.0.4): Apply .cratis/ai.json profile and language selections to native Pi package rules as well as skills.
  • AI (Release v2.0.4): Framework C# and documentation repositories receive framework, C#, documentation, and universal rules without application vertical-slice or TypeScript guidance.
  • AI (Release v2.0.4): Preserve the all-rules fallback when no configuration exists.
  • AI (Release v2.0.4): Pi and verification TypeScript checks pass.
  • AI (Release v2.0.4): Five Pi behavior specifications pass, including explicit framework C# rule inclusion and application/TypeScript exclusion.
  • AI (Release v2.0.4): Corpus verification passes.
  • cli (Release v3.1.3): Detect .cratis/PROJECT.md, .ai/PROJECT.md, and .agents/PROJECT.md during managed AI installation.
  • cli (Release v3.1.3): Copy project-owned guidance to .cratis/ai/rules/project.md without deleting or claiming the legacy source.
  • cli (Release v3.1.3): Point new AGENTS.md, CLAUDE.md, Claude, and Copilot instruction adapters at the shared project rule.
  • cli (Release v3.1.3): Preserve existing user-owned instruction files while Pi and harness rule adapters still load the migrated project rule.
  • cli (Release v3.1.3): Release build succeeds with zero warnings and errors.
  • cli (Release v3.1.3): Focused AI corpus specifications: 34 passed.
  • cli (Release v3.1.3): Specifications prove project content is copied, legacy content survives, existing AGENTS.md survives, and Claude links to the cross-agent project rule.
  • cli (Release v3.1.2): Resolve managed rules using the selected repository profile and languages instead of installing every rule.
  • cli (Release v3.1.2): Framework engineering profiles receive framework and universal guidance without application vertical-slice or CQRS rules.
  • cli (Release v3.1.2): C#-only repositories do not receive TypeScript rules; selecting the documentation profile includes documentation rules.
  • cli (Release v3.1.2): Release build succeeds with zero warnings and errors.
  • cli (Release v3.1.2): Focused AI corpus specifications: 31 passed.
  • cli (Release v3.1.2): A framework C# + documentation specification proves application and TypeScript rules are excluded.
  • AI (Release v2.0.3): Load general.md through the managed Pi rules extension as well as task-specific rules.
  • AI (Release v2.0.3): Keep managed Cratis guidance active when a repository preserves its own AGENTS.md and project instructions.
  • AI (Release v2.0.3): Pi package and verification TypeScript checks pass.
  • AI (Release v2.0.3): Pi behavior specifications verify both general and task-specific managed rules.
  • AI (Release v2.0.3): Corpus verification passes.
  • cli (Release v3.1.1): Preserve an existing user-owned AGENTS.md when configuring Codex, OpenCode, or Pi.
  • cli (Release v3.1.1): Continue installing managed rules and native harness resources without claiming or replacing project instructions.
  • cli (Release v3.1.1): Record whether an integration harness integration accepts an existing user-owned path.
  • cli (Release v3.1.1): Release build succeeds with zero warnings and errors.
  • cli (Release v3.1.1): Focused AI corpus specifications: 25 passed.
  • Chronicle (Release v18.1.6): Preserve empty query collections after .NET client deserialization (#4025)
  • Chronicle (Release v18.1.6): Deserialize populated query collections without throwing (#4025)
  • Chronicle (Release v18.1.6): Keep query results independent across successive and concurrent queries (#4025)
  • AI (Release v2.0.2): Publish all 66 profile catalog entries through .cratis/ai/manifest.json.
  • AI (Release v2.0.2): Verify that the installation manifest and profile catalog remain exactly synchronized.
  • AI (Release v2.0.2): Verification and Pi TypeScript checks pass.
  • AI (Release v2.0.2): Corpus verification reports 53 skills and 66 profiles.
  • AI (Release v2.0.2): Pi npm pack dry run and whitespace checks pass.
  • AI (Release v2.0.1): Declare the canonical Cratis/AI repository URL and package directory in @cratis/pi.
  • AI (Release v2.0.1): Verify that package metadata remains compatible with npm trusted-publishing provenance.
  • AI (Release v2.0.1): Pi package and verification TypeScript checks pass.
  • AI (Release v2.0.1): Corpus verification and npm pack dry run pass.
  • AI (Release v2.0.1): actionlint and git diff --check pass.
  • Chronicle (Release v18.1.5): Preserve empty sequence-query collections through protobuf round-trips so .NET callers receive an empty collection rather than null. (#4025)
  • Chronicle (Release v18.1.5): Complete a reactor that returns no follow-up events without submitting an invalid empty append.
  • Chronicle (Release v18.1.5): Preserve separator characters in observer partition identifiers when routing a connected observer.
  • cli (Release v3.0.1): Fixed cratis screenplay generate compatibility and specifications after the Chronicle 18 upgrade.
  • AI (Release v1.0.0): s9 canary provenance coverage, evidence baseline digests and anchor, and two stale spec expectations (#147)
  • Arc.Kotlin (Release v4.1.0): Malformed mixed Chronicle responses now describe the actual unsupported item shape instead of incorrectly claiming every routed event lacks @EventType (#95)
  • Arc (Release v22.13.1): Chronicle 18.1.0: Publish discovered client artifacts only after initialization completes, allow retry after failure, and reject reentrant access to incomplete results.
  • Arc (Release v22.13.1): Chronicle 18.1.0: Apply generation-specific PII metadata in event scenarios, share encryption keys within each scenario, and surface compliance-provider activation failures. Read-model sink encryption and erasure remain outside in-process scenario coverage.
  • Arc (Release v22.13.1): Chronicle 18.1.0: Preserve dictionary keys, case distinctions, and nested JSON nulls through projection and SQL readback.
  • Arc (Release v22.13.1): Chronicle 18.1.0: Preserve explicit compliance subjects through reactor/reducer notifications and event-sequence readback, with an event-source fallback for older servers.
  • Arc (Release v22.13.1): Chronicle 18.1.0: Enforce unique event type constraints across typed source/stream scopes without delimiter collisions, including claims and releases within the same append batch.
  • Arc (Release v22.13.1): Chronicle 18.1.0: Validate overlapping covered/removal event types against preceding events before releasing their constraint cycle, matching individually appended events.
  • Arc (Release v22.13.1): Chronicle 18.1.0: Show resolved, quarantined, and unknown failed-partition states accurately, and keep SQL-backed observation current across storage instances.
  • Arc (Release v22.13.1): Chronicle 18.1.0: Honor configured administrator identities during initial setup and report failed password changes instead of returning false success.
  • Arc (Release v22.13.1): Chronicle 18.1.0: Deliver required prerelease build outputs reliably and validate generated schemas with real protoc before distributing them.
  • Chronicle (Release v18.1.0): Publish discovered client artifacts only after initialization completes, allow retry after failure, and reject reentrant access to incomplete results.
  • Chronicle (Release v18.1.0): Apply generation-specific PII metadata in event scenarios, share encryption keys within each scenario, and surface compliance-provider activation failures. Read-model sink encryption and erasure remain outside in-process scenario coverage.
  • Chronicle (Release v18.1.0): Preserve dictionary keys, case distinctions, and nested JSON nulls through projection and SQL readback.
  • Chronicle (Release v18.1.0): Preserve explicit compliance subjects through reactor/reducer notifications and event-sequence readback, with an event-source fallback for older servers.
  • Chronicle (Release v18.1.0): Enforce unique event type constraints across typed source/stream scopes without delimiter collisions, including claims and releases within the same append batch.
  • Chronicle (Release v18.1.0): Validate overlapping covered/removal event types against preceding events before releasing their constraint cycle, matching individually appended events.
  • Chronicle (Release v18.1.0): Show resolved, quarantined, and unknown failed-partition states accurately, and keep SQL-backed observation current across storage instances.
  • Chronicle (Release v18.1.0): Honor configured administrator identities during initial setup and report failed password changes instead of returning false success.
  • Chronicle (Release v18.1.0): Deliver required prerelease build outputs reliably and validate generated schemas with real protoc before distributing them.
  • Components (Release v4.2.2): Opening the default non-modal chat sidebar locked the entire page behind it — React Aria’s Modal intercepts its backdrop by design, so isDismissable={false} alone never made the background interactive
  • Arc.Kotlin (Release v0.4.0): @DerivedType values can be read back in a Spring Boot application; the starter registers every generated derived type before Jackson reads, instead of leaving the registry empty and rejecting _derivedTypeId as unknown (#99)
  • Arc.Kotlin (Release v0.2.1): Serializing a @DerivedType value whose base type is registered but whose own type is not now fails and names both types, instead of writing a _derivedTypeId that deserialization rejects as unknown (#59)
  • Arc.Kotlin (Release v0.2.1): @DerivedType errors no longer report as the unclassified ARCKSP9999 (#101)
  • Arc.Kotlin (Release v0.1.0): A suppressed observable emission no longer consumes first-delivery status; the emission a subscriber actually receives first is announced as the first one and, in delta transfer mode, arrives as a full snapshot (#57)
  • Arc.Kotlin (Release v0.1.0): An observable query HTTP snapshot returns 200 with the current value when the query returns a StateFlow; a cold Flow or JDK Flow.Publisher still returns 202 with a not-ready QueryResult until waitForFirstResult=true is supplied (#56)
  • Arc.Kotlin (Release v0.1.0): An observable subscription that names a transferMode the host does not recognize is now served as one that named no mode, instead of being refused with a malformed-subscription error on the WebSocket hub and 400 on the SSE subscribe route (#102)
  • Arc.Kotlin (Release v0.1.0): transferMode is now matched case-insensitively, so Delta and FULL select their modes as they do on Arc .NET (#102)
  • Arc (Release v22.13.0): Correct documentation for authorization, validation, query transports, proxy generation, persistence, and React forms.
  • Arc (Release v22.13.0): Preserve familiar topics and compatibility anchors while restoring tutorial composition and navigation.
  • Arc (Release v22.13.0): Recognize returned typed event-source identities in either tuple position when checking for ambiguous command identities.
  • AuthProxy (Release v2.22.2): Attested invitations display the unavailable-email page when the provider supplies no usable address, and the email-mismatch page when the address differs or is not explicitly verified, rather than collapsing these outcomes into a generic invalid-link page. The documentation distinguishes strict attested verification from the unchanged legacy unsigned exchange. (#118)
  • AuthProxy (Release v2.22.2): OIDC providers can complete attested invitations using the already-validated canonical session identity instead of failing because the protocol’s authentication-type value differs from the configured scheme. (#122)
  • AuthProxy (Release v2.22.2): Attested completion retains the invited recipient captured before authentication is awaited. Reloading invitation configuration during completion cannot relax the verified-email requirement or switch the recipient being matched. (#118)
  • Arc (Release v22.12.0): Honor showErrors={false} for both default and custom exception feedback without disabling validation or execution callbacks. (#2669)
  • Arc (Release v22.12.0): Display safe feedback when an exception has no diagnostic messages, and clear previous exception feedback when a subsequent result succeeds. (#2669)
  • Components (Release v4.2.1): Date picker segments (month, day, year, hour, minute, day period, time zone) now meet the 24x24 px minimum target size, and the date input wraps onto a second line in narrow containers so that no segment is clipped or ends up behind the calendar button. Literal separators between segments are unchanged. (#238)
  • Components (Release v4.2.1): Dropdown options now paint the --cratis-focus-ring token as an inset ring on keyboard focus, including the selected option and options in a filtered list. The forced-colors Highlight outline is unchanged. (#240)
  • Arc (Release v22.11.0): Chronicle 17.0.5: The .NET client no longer reads the static type-universe snapshot, so reactor context value providers, compliance metadata providers, reactor side-effect handlers and polymorphic [DerivedType] children in assemblies discovered after its first touch are found instead of silently missed (cratis/chronicle#3998)
  • Arc (Release v22.11.0): Chronicle 17.1.0: Navigation flakiness in the Workbench sidebar and routing (cratis/chronicle#3980)
  • Arc (Release v22.11.0): Chronicle 17.1.0: Projections list not scrolling (cratis/chronicle#3978)
  • Arc (Release v22.11.0): Chronicle 17.1.0: Selecting Seed Data under General no longer also highlights the namespace Seed Data (cratis/chronicle#3977)
  • Arc (Release v22.11.0): Chronicle 17.1.0: A silo’s startup task no
  • Chronicle.Elixir (Release v3.0.0): Chronicle.Registration.Coordinator’s namespace-ensure call was sending the namespace under the wrong field name (Name instead of Namespace), so it silently registered an empty namespace against the kernel.
  • Chronicle (Release v18.0.0): Event append was completely broken — every Append, AppendMany, AppendManyForEventSources, and Revise call failed with a serialization error (No serializer for type System.Text.Json.Nodes.JsonNode). (#4003)
  • Chronicle (Release v17.1.1): The Publish GitHub Actions workflow now completes successfully for the Kotlin client. (#3970)
  • Chronicle (Release v17.1.0): Navigation flakiness in the Workbench sidebar and routing (#3980)
  • Chronicle (Release v17.1.0): Projections list not scrolling (#3978)
  • Chronicle (Release v17.1.0): Selecting Seed Data under General no longer also highlights the namespace Seed Data (#3977)
  • Chronicle (Release v17.1.0): A silo’s startup task no longer hard-crashes on a transient SiloUnavailableException from a sibling silo mid-restart (#3967)
  • Chronicle (Release v17.1.0): PII-encrypted fields now decrypt correctly when previewing a projection in the Workbench, matching Read Models (#3983)
  • Chronicle (Release v17.1.0): Ignore no longer silently fails for Recommendations, and its icon no longer matches Perform’s (#3986)
  • Chronicle (Release v17.1.0): A kernel restart no longer risks a startup-recovery storm that saturates the kernel (#3997)
  • Chronicle (Release v17.1.0): Observers can no longer become permanently wedged in a “preparing catch-up” state that neither the watchdog nor operator commands could recover (#3997)
  • Fundamentals (Release v7.19.2): RegisterTypeConvertersForConcepts registers each concept type converter once per process, so a host that configures many containers no longer re-registers every concept per container, stacks TypeDescriptor providers, or serializes on TypeDescriptor’s global lock
  • Chronicle (Release v17.0.5): The .NET client no longer reads the static type-universe snapshot, so reactor context value providers, compliance metadata providers, reactor side-effect handlers and polymorphic [DerivedType] children in assemblies discovered after its first touch are found instead of silently missed (#3998)
  • Arc (Release v22.10.6): Arc no longer captures the type universe before generated type discovery providers register, so controller discovery, the IArcBuilder handed to configureBuilder and concept type converters see every type the binding-convention assembly walk brings in (#2666)
  • Arc (Release v22.10.6): The ITypes resolved from the container is now the same instance Arc uses during setup, built from the complete provider set (#2666)
  • Arc (Release v22.10.6): IDerivedTypes is built from that same complete universe instead of the process-wide snapshot, so polymorphic JSON and the MongoDB discriminator conventions recognize [DerivedType] types the assembly walk brings in, and the container resolves the same instance Arc uses (#2668)
  • Arc (Release v22.10.6): Compile-time generated query metadata is now reliably registered at startup: Arc loaded project assemblies without running their module initializers, so metadata from an assembly nothing had touched yet was never registered (#2666)
  • Arc (Release v22.10.6): CommandScenario extenders and discoverable validators, command result assertion policies, the MongoDB builder’s class maps and convention packs, and MongoDB read-model command resolution are discovered from the complete type universe instead of the process-wide snapshot (#2666)
  • Fundamentals (Release v7.19.1): TypesServiceCollectionExtensions.CurrentTypeUniverse() and a parameterless AddTypeDiscovery() now run the generated-provider walk themselves, so the default type universe is complete without the host calling GeneratedTypeDiscoveryRegistry.EnsureProvidersRegistered() first (#1114)
  • Fundamentals (Release v7.19.1): Globals.JsonSerializerOptions is published only once fully built, so a concurrent first reader can no longer freeze the options before the derived-type converter is added
  • AuthProxy (Release v2.22.1): The legacy identity path no longer reuses a cached identity for an unidentifiable principal. IdentityAccountBinding.TryCreate now fails closed when the legacy UserId is empty, whitespace, or untrimmed (mirroring the canonical path’s guard), so such a principal never becomes a shared key into the process-wide identity IMemoryCache/semaphore and always resolves fresh. This closes a cross-user identity leak where two unidentifiable principals in the same tenant could be served each other’s identity.
  • Fundamentals (Release v7.18.5): AddTypeDiscovery() no longer rebuilds the whole type universe on every call; the default universe is built once per set of registered generated providers and reused (#1112)
  • Components (Release v4.1.3): Dialogs now keep an application’s --cratis-z-index-dialog override when they are assigned a stacking tier. Assigning a tier previously resolved the dialog’s z-index to a bare number built on the built-in 1100 default, discarding the override — so a dialog opened from inside application chrome that the token had been raised above rendered behind it, present in the DOM but invisible.
  • Components (Release v4.1.3): Dropdown, date-picker and tooltip popovers opened inside a dialog now stack relative to that dialog’s resolved z-index expression instead of doing arithmetic on a fixed number, so they follow the same override.
  • Chronicle.TypeScript (Release v5.0.0): Appended event content is now sent as a parsed JSON object rather than a serialized string, matching the wire’s structured Content field (previously type-checked but would have serialized incorrectly at runtime).
  • Chronicle.TypeScript (Release v5.0.0): [x] yarn ci (clean + build) — zero errors
  • Chronicle.TypeScript (Release v5.0.0): [x] yarn test — 275/275 relevant specs pass (one pre-existing, unrelated @cratis/fundamentals peer-range drift failure, not touched by this change)
  • Components (Release v4.1.2): A second dialog opened while the first is still visible now stacks above it, instead of colliding on the same static z-index and relying on incidental DOM paint order.
  • Components (Release v4.1.2): A dropdown, date picker, or tooltip opened inside a dialog now stacks above whichever dialog tier it is actually nested in - including a dialog that was itself opened while another dialog was still open, which the single static overlay token never accounted for.
  • Narrator (Release v3.0.0): Support for connecting to Chronicle servers prior to 18. Behavior against a pre-18 kernel is no longer guaranteed to work.
  • Arc.Kotlin (Release v3.0.0): The deprecated spring-boot-jackson2 compatibility dependency and its Jackson-2-only mapper post-processor are removed (#150)
  • Arc.Kotlin (Release v3.0.0): Separate Java-time module registration is removed because Jackson 3 includes Java-time support (#150)
  • Arc.Kotlin (Release v2.0.0): The public ArcAutoConfiguration.arcJacksonCustomizer() method is removed; the arcJacksonCustomizer bean name remains as an application override point through internal static configuration (#138)
  • Arc (Release v22.13.1): Chronicle 18.1.0: Remove the unused Workbench dashboard prototype and its stale navigation references.
  • Stage (Release v3.13.0): Reject handoff file paths that escape the isolated event-model directory.
  • Arc (Release v22.13.1): Chronicle 18.1.0: Require antiforgery protection for authenticated cookie mutations while preserving explicit bearer-token access. Cookie-based access requires HTTPS and matching Workbench assets. Custom cookie clients must obtain a token from /.cratis/antiforgery and send `X-CSRF
  • Chronicle (Release v18.1.0): Require antiforgery protection for authenticated cookie mutations while preserving explicit bearer-token access. Cookie-based access requires HTTPS and matching Workbench assets. Custom cookie clients must obtain a token from /.cratis/antiforgery and send X-CSRF-TOKEN on mutations and logout.
  • Chronicle (Release v18.1.0): Restrict anonymous Identity endpoints to the intended login and refresh surface, and reject authenticated actors without a meaningful subject.
  • Chronicle (Release v18.1.0): Enforce Chronicle audiences for JWT and Data Protection access tokens. Existing OAuth tokens without the required audience must be reacquired; coordinate issuers and validators during rolling upgrades.
  • Chronicle (Release v18.1.0): Prevent repeated initial admini
  • No updates