Skip to content

Release v2.23.0

Choose a tag to compare

@github-actions github-actions released this 16 Sep 13:39
e316b19

Summary

Every framework claim in the corpus was checked against source at the releases consumers install today — Chronicle 18.3.0, Arc 22.16.0, Components 4.6.0, Fundamentals 7.19.2, cli 3.2.0, the 5.1.0 / 3.1.0 language clients, Stage 3.15.1, Screenplay 4.12.1 — and then cross-examined by independent reviewers instructed to disprove it. Everything that source contradicted is corrected here. The frontend guidance moves from Components 3 on PrimeReact to Components 4.

Added

  • Cratis Components 4 documentation: subpath imports, the tokens / styles / theme entries, --cratis-* tokens, typed pt parts and data-cratis-part selectors, the nine-slot presentation adapters, ComboBox, and rewritten styling and accessibility skills.
  • Generated OpenCode agent adapters (harnesses/opencode/agents) with mode: subagent and a permission map derived from each agent's tools; Source/Harness.Setup --check verifies they are current.
  • The seven ways an in-process scenario spec passes while proving nothing — discarded assertion Tasks, an unseeded read model rejected as DependencyUnavailable, .Validate() authorizing first, constraint preconditions that must go through EventScenario.Given, GetInstances<T> not being harness-backed, one-child [ChildrenFrom] specs, self-derived expectations — with the matching analyzer ids.
  • Returning a [Command] from a reactor, [ExecuteCommandsAsSystem], and the no-principal rule; ARCCHR0006 / ARCCHR0008 / CHR0042 guidance; never persisting clock-relative state; command success versus projection convergence; unattended reactor passes; erasure beyond the event log; reading framework source at the consumer's tag.
  • rules/ai-distribution.md and rules/new-repository-intake.md, split out of general.md.
  • Write-guard behavior specs with planted under- and over-blocking defects, and a quality-gates.project.json so this repository's own checks run under the Stop hook.
  • A "when to run this review without being asked" trigger in the security-review skill.

Changed

  • Agent definitions use one canonical tool vocabulary (Read, Grep, Glob, Bash, Edit, Write, Agent) with readonly: true on reviewer and investigator roles; Copilot-only names are gone.
  • general.md is trimmed to invariants and pointers (33 KB → 26 KB, under the Codex project-doc budget); procedure lives in the owning rules and skills.
  • rules/efcore.md and rules/orleans.md are rewritten from what Arc and the Chronicle kernel actually ship.
  • Every skill's verified-version table names the current release and what the re-verification covered.

Fixed

  • The Pi subagent bridge fails loudly when a declared tools list resolves to no Pi tool, instead of launching the subagent with every tool.
  • A missing non-nullable injected read model is a DependencyUnavailable validation failure (HTTP 400), not a thrown CannotResolveValidatorDependency.
  • Event-source-id resolution is first-match across EventSourceId and [Key] properties (ARCCHR0002 on ambiguity); ICanProvideEventSourceId returning null yields Unspecified; AmbiguousEventStreamId throws at execution, not startup; ARC0005 is a warning.
  • The compliance-subject chain, including the event-level [Subject] and the kernel's event-source-id fallback.
  • Constraints hash the plaintext of a [PII] value, never its ciphertext.
  • given() constructs a TypeScript spec context once per describe, not per it().
  • useDialog returns a 3-tuple; useDialogContext<TRequest, TResponse> takes the request type first; onBeforeExecute returning void keeps the current values; useCommandInstance<T>() takes no argument; QueryTransportMethod imports from @cratis/arc/queries; a single-instance observable query's use() returns [result]; ValidationResult carries members; TenantId.IsDefault is also true for NotSet; a plain-HTTP IAsyncEnumerable<T> query answers 400; query-string pageSize is not range-checked; AutoIncrementColumn is always NOT NULL.
  • The terminal Workbench's destructive modal is confirmed by Y alone (Enter cancels); cratis destructive commands fail closed outside a terminal and require --yes; jobs stop / resume do prompt; events tail returns a sequence number.
  • Stage 3.15.1 serves sandbox queries without authorization rather than denying them; STAGE-ESM-001003 and -011 exist; the image reads /eventmodel.
  • Screenplay's SemanticSliceKind has Unknown; the canonical RegisterProject.play is quoted in full.
  • Chronicle.Concept ships in the Elixir client from 3.0.0; the browser Workbench's 18.3.0 menu and anonymous endpoints; the IEventAppendCollection assertion example; drifted file:line citations in the client skills.

Removed

  • Every PrimeReact-era claim: peer installs, styledMode / CratisPreset, the --p-* token chain, primereact/dialog bans, PrimeIcons class strings, raw DataTable props in agent examples.
  • References to the absent validate-ai-setup.sh, the "only Claude wiring exists" and "this repository has no Source/" claims, and four rules and two skills that general.md pointed at but did not exist.