Skip to content

Commit 3e9d495

Browse files
decebalclaude
andcommitted
docs: bump version references to v0.14.0, add CHANGELOG entry
Update README badges, docker tags, What's New section, K8s manifests, Go/Rust version constants, and Go SDK version. Add CHANGELOG entry for v0.14.0 covering OCC, durable subscriptions, server-side filtering, unified tenant management, and JWT is_demo claim. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent c0e3398 commit 3e9d495

File tree

8 files changed

+42
-27
lines changed

8 files changed

+42
-27
lines changed

README.md

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: "AllSource Event Store - Monorepo"
33
status: CURRENT
44
last_updated: 2026-03-03
5-
version: "0.13.1"
5+
version: "0.14.0"
66
---
77

88
<div align="center">
@@ -17,16 +17,16 @@ version: "0.13.1"
1717
[![Release](https://img.shields.io/github/v/release/all-source-os/all-source?label=release&color=blue)](https://github.com/all-source-os/all-source/releases/latest)
1818
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
1919

20-
[![Core](https://img.shields.io/badge/Core-v0.13.1-orange?logo=rust&logoColor=white)](apps/core/)
21-
[![Control Plane](https://img.shields.io/badge/Control_Plane-v0.13.1-00ADD8?logo=go&logoColor=white)](apps/control-plane/)
22-
[![Query Service](https://img.shields.io/badge/Query_Service-v0.13.1-4B275F?logo=elixir&logoColor=white)](apps/query-service/)
23-
[![Web](https://img.shields.io/badge/Web-v0.13.1-000000?logo=next.js&logoColor=white)](apps/web/)
20+
[![Core](https://img.shields.io/badge/Core-v0.14.0-orange?logo=rust&logoColor=white)](apps/core/)
21+
[![Control Plane](https://img.shields.io/badge/Control_Plane-v0.14.0-00ADD8?logo=go&logoColor=white)](apps/control-plane/)
22+
[![Query Service](https://img.shields.io/badge/Query_Service-v0.14.0-4B275F?logo=elixir&logoColor=white)](apps/query-service/)
23+
[![Web](https://img.shields.io/badge/Web-v0.14.0-000000?logo=next.js&logoColor=white)](apps/web/)
2424
[![MCP Server](https://img.shields.io/badge/MCP_Server-61_tools-8A2BE2)](apps/mcp-server-elixir/)
2525

26-
[![Core Image](https://img.shields.io/badge/ghcr.io-allsource--core:0.13.1-blue?logo=docker&logoColor=white)](https://ghcr.io/all-source-os/allsource-core)
27-
[![Control Plane Image](https://img.shields.io/badge/ghcr.io-allsource--control--plane:0.13.1-blue?logo=docker&logoColor=white)](https://ghcr.io/all-source-os/allsource-control-plane)
28-
[![Query Service Image](https://img.shields.io/badge/ghcr.io-allsource--query--service:0.13.1-blue?logo=docker&logoColor=white)](https://ghcr.io/all-source-os/allsource-query-service)
29-
[![Web Image](https://img.shields.io/badge/ghcr.io-allsource--web:0.13.1-blue?logo=docker&logoColor=white)](https://ghcr.io/all-source-os/allsource-web)
26+
[![Core Image](https://img.shields.io/badge/ghcr.io-allsource--core:0.14.0-blue?logo=docker&logoColor=white)](https://ghcr.io/all-source-os/allsource-core)
27+
[![Control Plane Image](https://img.shields.io/badge/ghcr.io-allsource--control--plane:0.14.0-blue?logo=docker&logoColor=white)](https://ghcr.io/all-source-os/allsource-control-plane)
28+
[![Query Service Image](https://img.shields.io/badge/ghcr.io-allsource--query--service:0.14.0-blue?logo=docker&logoColor=white)](https://ghcr.io/all-source-os/allsource-query-service)
29+
[![Web Image](https://img.shields.io/badge/ghcr.io-allsource--web:0.14.0-blue?logo=docker&logoColor=white)](https://ghcr.io/all-source-os/allsource-web)
3030

3131
</div>
3232

@@ -81,17 +81,19 @@ tooling/
8181

8282
---
8383

84-
## Project Status & Roadmap (v0.13.1)
84+
## Project Status & Roadmap (v0.14.0)
8585

86-
### What's New in v0.13.1
86+
### What's New in v0.14.0
8787

88-
- **WebSocket Mint migration**: Replaced WebSockex with Mint.WebSocket for native IPv6 support on Fly.io
89-
- **Service JWT auth**: Query Service generates service JWTs for authenticated Core WebSocket connections
90-
- **Chronis CLI** (`apps/chronis`): Event-sourced task management CLI with TUI (ratatui) and web (htmx) interfaces, powered by Embedded Core
91-
- **Fly.io production deploy**: All services deployed and healthy on Fly.io with internal networking
88+
- **Optimistic concurrency control**: `expected_version` on writes with 409 Conflict on mismatch, `entity_version` in query responses
89+
- **Durable subscriptions**: Persistent consumer cursors, pull-based polling, acknowledgment, WebSocket auto-replay on reconnect
90+
- **Server-side event filtering**: WebSocket and RESP3 prefix-based subscription filters (`scheduler.*`, `trade.*`)
91+
- **Unified tenant management**: Retired duplicated TenantManager, single EventSourcedTenantRepository as source of truth
92+
- **JWT `is_demo` claim**: Demo tenant detection via explicit JWT claim instead of brittle tenant ID prefix matching
9293

9394
### Previous releases
9495

96+
- **v0.13.1**: WebSocket Mint migration, service JWT auth, Chronis CLI, Fly.io production deploy
9597
- **v0.12.0**: Network sync transport, configurable conflict resolution, MCP tool event emission, WebSocket backpressure
9698
- **v0.11.0**: Embedded Core library (8 phases), full dependency upgrade (arrow 57, datafusion 52, rand 0.10, reqwest 0.13, tantivy 0.25, fastembed 5)
9799

@@ -159,21 +161,21 @@ AI-native interface for Claude Desktop or any MCP client.
159161

160162
## Docker Images
161163

162-
All services ship at **v0.13.1**. Total production footprint: **~129 MB**.
164+
All services ship at **v0.14.0**. Total production footprint: **~129 MB**.
163165

164166
| Service | Image | Size | Base |
165167
|---------|-------|:----:|------|
166-
| Core | `ghcr.io/all-source-os/allsource-core:0.13.1` | 15.7 MB | Distroless |
167-
| Control Plane | `ghcr.io/all-source-os/allsource-control-plane:0.13.1` | 27.9 MB | Distroless |
168-
| Query Service | `ghcr.io/all-source-os/allsource-query-service:0.13.1` | 35.1 MB | Alpine |
169-
| Web | `ghcr.io/all-source-os/allsource-web:0.13.1` | ~50 MB | Alpine |
168+
| Core | `ghcr.io/all-source-os/allsource-core:0.14.0` | 15.7 MB | Distroless |
169+
| Control Plane | `ghcr.io/all-source-os/allsource-control-plane:0.14.0` | 27.9 MB | Distroless |
170+
| Query Service | `ghcr.io/all-source-os/allsource-query-service:0.14.0` | 35.1 MB | Alpine |
171+
| Web | `ghcr.io/all-source-os/allsource-web:0.14.0` | ~50 MB | Alpine |
170172

171173
```bash
172174
# Quick start
173175
docker compose up -d
174176

175177
# Pull specific version
176-
docker pull ghcr.io/all-source-os/allsource-core:0.13.1
178+
docker pull ghcr.io/all-source-os/allsource-core:0.14.0
177179
```
178180

179181
See [Docker Guide](docs/deployment/DOCKER.md) · [Release Guide](docs/guides/RELEASE.md)

apps/chronis/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ name = "cn"
1818
path = "src/main.rs"
1919

2020
[dependencies]
21-
allsource-core = { version = "0.13.1", path = "../core", default-features = false, features = [
21+
allsource-core = { version = "0.14.0", path = "../core", default-features = false, features = [
2222
"embedded",
2323
"embedded-replicant",
2424
"embedded-projections",

apps/control-plane/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ var openAPIYAML []byte
3030
// Control plane configuration constants.
3131
const (
3232
// Version is the current version of the control plane.
33-
Version = "0.13.1"
33+
Version = "0.14.0"
3434
// DefaultPort is the default port the control plane listens on.
3535
DefaultPort = "3901"
3636
// CoreServiceURL is the URL of the core event store service.

apps/control-plane/tracing.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919

2020
const (
2121
serviceName = "allsource-control-plane"
22-
serviceVersion = "0.13.1"
22+
serviceVersion = "0.14.0"
2323
)
2424

2525
// TracingConfig holds OpenTelemetry configuration

deploy/k8s/core.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ spec:
3939
fsGroup: 1000
4040
containers:
4141
- name: core
42-
image: allsource/core:0.13.1
42+
image: allsource/core:0.14.0
4343
imagePullPolicy: IfNotPresent
4444
ports:
4545
- name: http

deploy/k8s/query-service.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ spec:
3737
fsGroup: 1000
3838
containers:
3939
- name: query-service
40-
image: allsource/query-service:0.13.1
40+
image: allsource/query-service:0.14.0
4141
imagePullPolicy: IfNotPresent
4242
ports:
4343
- name: http

docs/CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,19 @@ All notable changes to AllSource Chronos are documented here.
44

55
## [Unreleased]
66

7+
## [0.14.0] - 2026-03-05
8+
9+
### Added
10+
- **Optimistic concurrency control**: Per-entity version tracking in EventStore, `expected_version` field on event ingestion with 409 Conflict on mismatch, `entity_version` in query responses
11+
- **Durable subscriptions**: Consumer registration (`POST /api/v1/consumers`), pull-based event polling with cursor tracking, acknowledgment with durable position persistence (survives restart)
12+
- **WebSocket durable subscription**: `WS /ws?consumer_id=X` auto-replays missed events since last ack before switching to real-time delivery
13+
- **Server-side event filtering**: WebSocket `subscribe` message with prefix filters (`scheduler.*`, `trade.*`), RESP3 `SUBSCRIBE scheduler.* index.*` with server-side prefix matching
14+
- **JWT `is_demo` claim**: Control plane includes `is_demo` in JWT claims based on Core tenant data; Query Service reads from JWT instead of brittle tenant ID prefix matching
15+
16+
### Changed
17+
- **Unified tenant management**: Retired duplicated `TenantManager` (application layer); all tenant operations now use `EventSourcedTenantRepository` via DI container as single source of truth
18+
- Updated admin CLI and integration tests to use domain `Tenant` entity and `InMemoryTenantRepository`
19+
720
## [0.13.1] - 2026-03-03
821

922
### Fixed

sdks/go/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
package allsource
22

33
// Version is the SDK version. Updated by `make set-version`.
4-
const Version = "0.13.1"
4+
const Version = "0.14.0"

0 commit comments

Comments
 (0)