Skip to content

Roadmap: continue Arc for TypeScript parity and integrations #114

Description

@woksin

Where Arc for TypeScript (and the Chronicle.TypeScript work it depends on) stands, what is in flight, and how to continue. Each item links to the issue that holds its details.

Recently released

Arc.TypeScript (GitHub prereleases; npm publication is still disabled):

Earlier: v0.40.0 through v0.43.0 (runInScope, PostgreSQL LISTEN/NOTIFY observation, co-located vertical slices, projection-backed given events).

Also merged without a release: AI corpus update (#117), CI fix for pull requests with an empty diff (#138, #109), documentation correction (#139, #133). Closed #35.

Chronicle.TypeScript (npm on merge), for #129 (EventScenario and ReactorScenario):

In flight

Next

Arc parity and integrations:

Chronicle.TypeScript parity with the .NET client (umbrella Cratis/Chronicle.TypeScript#58):

How the work is done

  • One issue per change, assigned to its owner; one branch and worktree per change.
  • Arc for .NET is the reference; its Documentation/http-contract.md is the wire contract. Parity is claimed per area only with a passing executable check.
  • In-process test harnesses (Chronicle ReadModelScenario, EventScenario, ReactorScenario) support only behavior proven by a committed fixture from the pinned kernel oracle (yarn oracle:check); anything else is rejected with an explicit error pointing to a kernel-backed test.
  • Every change is reviewed independently until it has no confirmed findings (cross-provider when available, otherwise a same-provider review that is stated as such), then local gates, then a PR with release notes in the repository template's sections.
  • Local gates: run every step of the root package.json ci script. The Library e2e needs a working cratis/chronicle:latest-development image (recently unreliable locally); hosted CI always runs it.
  • Merge with a merge commit only (gh pr merge --merge) once hosted CI is green; never squash, rebase or force-push. Minor and patch releases: gh release create vX.Y.Z --prerelease --target <merge commit>. No major release without an explicit human decision.
  • Applications built on Arc for TypeScript keep a behavior's backend code, backend specs, generated proxy, React component and frontend specs in one slice folder (see Documentation/vertical-slices.md).

Open decisions for the maintainer

Activity

  1. self-assigned this
    on Sep 28, 2026
  2. woksin commented on Sep 29, 2026

    @woksin
    ContributorAuthor

    Also released: v0.51.0 (#140, #112 server-only proxies via --skip-react-hooks) and v0.52.0 (#141, #113 type mappings to other packages in generated proxies).

  3. woksin commented on Sep 29, 2026

    @woksin
    ContributorAuthor

    Chronicle.TypeScript merged this round: #155 (ReadModelScenario.observe, #129 inc 6), #158 (children projections in-process, #106), #157 (PII end to end, #137), #160 (concurrent unique appends, #136), #162 (migrations on replay, #138), #159 (jobs and webhooks against a kernel, #140), #163 (patch: class-level @onceonly reactors and not-replayable webhooks are no longer replayed; stopgap for Cratis/Chronicle#4394). Blocked upstream: #139 on Cratis/Chronicle#4393, #129 5.5 on #4361. Filed: Chronicle #4383–#4386, #4390, #4393, #4394, #4396; Chronicle.TypeScript #151, #156.

  4. woksin commented on Sep 29, 2026

    @woksin
    ContributorAuthor

    Publishing to npm now blocks Cratis/Templates#61, the TypeScript dotnet new cratis template. The full plan is in Cratis/Templates#61 (comment). These unpublished packages are needed: @cratis/arc.core, arc.chronicle, arc.mongodb, arc.testing and arc.proxygenerator. Refs Cratis/Documentation#19

  5. woksin commented on Oct 2, 2026

    @woksin
    ContributorAuthor

    Released v0.53.0: Chronicle stores read models in the collection Arc reads them from (#144), Cratis dependencies updated to Arc 22.44, Fundamentals 7.20 and Chronicle 6.31 (#154, #150), and metric names and scope version aligned with Arc for .NET (#156, #148). In flight: outcome and transport metric attributes and generated version constants (#153), and the next Cratis dependency update (#157).

  6. woksin commented on Oct 2, 2026

    @woksin
    ContributorAuthor

    Released v0.54.0: outcome and transport attributes on Arc metrics, a command outcome counter, a 1,000-name cardinality cap, span-name constants, and generated version constants instead of package.json imports (#160, #153); Cratis dependencies updated to Arc 22.45, Fundamentals 7.22 and Chronicle 6.35 (#161, #157). In flight: discovery endpoints requiring authentication outside Development, as Arc for .NET 22.45 does (#158), and a fix for the flaky source-watch contract test on macOS (#159). #155 was moved to Cratis/Arc#2973.

  7. woksin commented on Oct 2, 2026

    @woksin
    ContributorAuthor

    Released v0.55.0 (#163, #159: proxy-generator watch mode recovers missed source changes, with --watch-poll-interval), v0.56.0 (#162, #158: discovery endpoints require authentication outside Development, as in Arc for .NET 22.45) and v0.57.0 (#165, #164: introspection.enabled / Cratis:Arc:Introspection:Enabled turns discovery off entirely, from code or configuration). Open owner decisions: #50, #51, #52 and npm publication.

  8. woksin commented on Oct 2, 2026

    @woksin
    ContributorAuthor

    Released v0.57.1 (#179, #174): in-memory sorting on a complex field is rejected instead of returning an unreliable order, and the generated sortBy helpers for complex fields are deprecated. Also merged: decision records for #50–#52 (#170), contract tests for the TypeScript template slice (#171), the Entra ID, AuthProxy and observable authentication recipes (#172), validation specs (#173) and a pinned .NET 22.45.0 proxy comparison (#175), which found Cratis/Arc#2998. Open: #176, #177, #178, #169, npm publication.

  9. woksin commented on Oct 2, 2026

    @woksin
    ContributorAuthor

    Released v0.57.2 (#180, #176): in-memory sorting compares concept, Date, DateOnly, TimeOnly and TimeSpan values by value. Open: #177 and #178 (next major release, waiting on an owner decision), #169 (needs a deployment to verify), npm publication.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestquestionFurther information is requested

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions