Skip to content

Releases: Cratis/cli

Release v1.6.3

16 Jun 18:10
d0538c3

Choose a tag to compare

Summary

The cratis update command updates the on-disk binary but then checks the version of the currently running process, which hasn't changed. This caused it to report "Already at the latest version (1.6.1)" even after successfully installing 1.6.2.

Fixed

  • Update command now queries available version before updating and reports that version on success, avoiding false "already at latest" messages (#34)
  • Added user guidance that new version takes effect on next CLI invocation (#34)

Release v1.6.2

10 Jun 11:07
e7e4577

Choose a tag to compare

No release notes

Release v1.6.1

07 Jun 12:32
0ad6c4c

Choose a tag to compare

Summary

Activating a read model row in the Chronicle Workbench blocked the UI thread on the instances fetch: OpenDetailOverlay called BuildInstancesContent, which ran OnFetchInstances(...).GetAwaiter().GetResult() synchronously before building the overlay. The whole TUI froze for the duration of the network call, and the detail overlay only appeared once data returned.

This opens the overlay immediately with a Loading instances… placeholder, fetches off the UI thread, and updates the Instances tab when the data arrives.

Fixed

  • Read model instances now load asynchronously: the detail overlay opens immediately and the UI thread no longer blocks on the instances fetch when activating a read model row.

Changed

  • DetailOverlayWindow exposes its per-tab editors (TabEditors) so a tab’s content can be updated after Build — used to fill the Instances tab once the async fetch completes. The fetch runs on a background task (Task.Run + ConfigureAwait(false)) and the result is marshalled back onto the UI thread via EnqueueOnUIThread.

The change is confined to ReadModelsView and DetailOverlayWindow (no public API removed; DetailOverlayWindow change is additive).

Note: I could not produce a full local build — this repo’s source generators require a newer Roslyn than my local SDK ships (CS9057), so generator-emitted symbols are unavailable in my environment. The two changed files compile clean; CI with the project’s toolchain should build normally.

Release v1.6.0

22 May 21:53
2156c5a

Choose a tag to compare

Summary

This update introduces significant enhancements to the Chronicle Workbench, focusing on user interface improvements and new functionalities.

Release v1.5.0

17 May 20:15
a72e0ae

Choose a tag to compare

Summary

Introduce a new workbench renderer for the dashboard UI

Added

  • cratis chronicle workbench TUI command

Release v1.4.2

16 May 07:42
8547a3c

Choose a tag to compare

  • Inspect current branch state and verify whether brew update is present in code
  • If missing, add/restore brew update before Homebrew upgrade in self-update flow
  • Run focused tests for update behavior
  • Run security scan and finalize
  • Commit/push and reply to PR comment with commit hash

Release v1.4.1

16 May 06:59
90a3142

Choose a tag to compare

Summary

Arc commands previously fell back directly to a hardcoded default URL when --url/ARC_URL were unset, which missed common local Arc setups. This change adds launchSettings.json discovery (Properties/properties) and aligns the default Arc URL with Arc app defaults.

Added

  • Added launch settings URL discovery in Arc settings resolution by reading profiles.*.applicationUrl from Properties/launchSettings.json or properties/launchSettings.json (#issue)

Changed

  • Updated Arc URL resolution precedence to: --urlARC_URLlaunchSettings.json applicationUrl → default (http://localhost:5000) (#issue)
  • Updated Arc command examples and Arc docs to reflect http://localhost:5000 as the default URL and the new resolution order (#issue)
// Effective Arc URL resolution
if (--url is set) return url;
if (ARC_URL is set) return env;
if (launchSettings.applicationUrl exists) return applicationUrl;
return "http://localhost:5000";

Fixed

  • Fixed Arc CLI behavior for local projects where runtime URL is configured in launch settings but not passed as a flag/env var (#issue)
  • Fixed mismatch between documented/default Arc URL and expected Arc local default (http://localhost:5000) (#issue)

Removed

  • Removed implicit assumption that Arc URL fallback is only an env var + hardcoded default path (#issue)

Security

  • No security behavior change; launch settings parsing is local-file, read-only, and guarded for invalid/unreadable JSON (#issue)

Deprecated

  • No deprecations in this PR (#issue)

Release v1.4.0

16 May 06:46
e4fff40

Choose a tag to compare

Adds a new arc command group to the CLI for introspecting registered command and query endpoints in a running Cratis Arc application.

Added

  • cratis arc commands list — calls GET /.cratis/commands and lists all registered Arc commands with name, namespace, HTTP route, and doc summary (#7)
  • cratis arc queries list — calls GET /.cratis/queries and lists all registered Arc queries with name, namespace, HTTP route, type, and doc summary (#7)
  • ArcCommand<TSettings> base class — HttpClient-based counterpart to ChronicleCommand<TSettings>, with connection error handling and TLS bypass for local dev (#7)
  • Arc URL resolution: --url flag → ARC_URL env var → https://localhost:5001 (#7)
  • Documentation under Documentation/arc/ (#7)

Release v1.3.1

07 May 13:31
52ebf83

Choose a tag to compare

Summary

Renames the Chronicle CLI command path from event-store-subscriptions to subscriptions for consistency and shorter invocation. Updates command registration, completion routing, examples, integration usage, and Chronicle docs to the new path.

Added

  • None.

Changed

  • Renamed the Chronicle branch command from event-store-subscriptions to subscriptions in CLI registration and command discovery.
  • Updated dynamic completion keying for subscription removal to match the new command path.
  • Updated command examples/help text to use cratis chronicle subscriptions ....
  • Updated Chronicle documentation index/table/TOC labels and command invocations to subscriptions.
# before
cratis chronicle event-store-subscriptions list --event-store system

# after
cratis chronicle subscriptions list --event-store system

Fixed

  • Updated integration scenario for add/list/remove subscription flow to invoke chronicle subscriptions instead of the old path.

Removed

  • Removed remaining runtime references to event-store-subscriptions command invocation paths (except documentation file name event-store-subscriptions.md).

Security

  • None.

Deprecated

  • event-store-subscriptions command path is superseded by subscriptions.

Release v1.3.0

07 May 13:02
33e0b13

Choose a tag to compare

Summary

Adds CLI support for Chronicle event store subscriptions by wiring IEventStoreSubscriptions into command surface area and completion. Includes end-to-end integration coverage and Chronicle documentation for the new command group.

Added

  • New chronicle event-store-subscriptions branch with list, add, and remove commands wired to IServices.EventStoreSubscriptions (#0000)
  • Command settings for subscription identifier, source event store, and event type input parsing (#0000)
  • Integration spec: for_EventStoreSubscriptions/when_adding_and_removing_event_store_subscription (#0000)
  • New Chronicle docs page: Documentation/chronicle/event-store-subscriptions.md covering list, add, and remove usage (#0000)

Changed

  • Dynamic completion now supports event-store-subscriptions identifiers via _complete context resolution (#0000)
  • Chronicle branch registration text now includes event store subscriptions in the top-level command map (#0000)
  • Chronicle documentation navigation updated to include Event Store Subscriptions in Documentation/chronicle/toc.yml and Documentation/chronicle/index.md (#0000)
await services.EventStoreSubscriptions.Add(new AddEventStoreSubscriptions
{
    TargetEventStore = settings.ResolveEventStore(),
    Subscriptions =
    [
        new EventStoreSubscriptionDefinition
        {
            Identifier = settings.SubscriptionId,
            SourceEventStore = settings.SourceEventStore,
            EventTypes = settings.EventTypes
                .Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries)
                .Select(id => new EventType { Id = id })
                .ToList()
        }
    ]
});

Fixed

  • CLI gap where EventStoreSubscriptions contract methods (GetSubscriptions, Add, Remove) were available in contracts but not exposed through Chronicle commands (#0000)

Removed

  • None (#0000)

Security

  • None (#0000)

Deprecated

  • None (#0000)