Skip to content

Commit ad2ee76

Browse files
committed
chore: update changelogs and version numbers for release v1.0.0
1 parent 6fbc66c commit ad2ee76

File tree

9 files changed

+116
-35
lines changed

9 files changed

+116
-35
lines changed

CHANGELOG.md

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2929

3030
No changes yet.
3131

32-
## [1.0.0] - 2026-03-11
32+
## [1.0.0] - 2026-03-16
3333

3434
### Added
3535

@@ -39,6 +39,7 @@ No changes yet.
3939
- Client mode (tokio-tungstenite) with `link_to("ws-client://host/topic")` for AimDB-to-AimDB sync
4040
- `AuthHandler` trait for pluggable authentication
4141
- Client session management with automatic cleanup and late-join support
42+
- `StreamableRegistry` for extensible type-erased dispatch — register types via `.register::<T>()`
4243
- **aimdb-ws-protocol**: New crate with shared wire protocol types for the WebSocket ecosystem
4344
- `ServerMessage` and `ClientMessage` enums with JSON-encoded `"type"` discriminant
4445
- MQTT-style wildcard topic matching (`#` multi-level, `*` single-level)
@@ -47,16 +48,20 @@ No changes yet.
4748
- `Rc<RefCell<…>>` buffers — zero-overhead for single-threaded WASM
4849
- `WasmDb` facade via `#[wasm_bindgen]` with `configureRecord`, `get`, `set`, `subscribe`
4950
- `WsBridge` — WebSocket bridge connecting browser to remote AimDB server
50-
- `SchemaRegistry` for type-erased record dispatch
51+
- `SchemaRegistry` for type-erased record dispatch with extensible `.register::<T>()` API
5152
- React hooks: `useRecord<T>`, `useSetRecord<T>`, `useBridge`
5253
- **aimdb-codegen**: New crate for architecture-to-code generation
5354
- `ArchitectureState` type for reading `.aimdb/state.toml` decision records
5455
- Mermaid diagram generation (`generate_mermaid`)
5556
- Rust source generation (`generate_rust`) — value structs, key enums, `SchemaType`/`Linkable` impls, `configure_schema()` scaffolding
5657
- Common crate, hub crate, and binary crate scaffolding
5758
- State validation module for architecture integrity checks
58-
- **aimdb-data-contracts**: Added `Streamable` trait and `StreamableVisitor` pattern for type-erased dispatch across WebSocket, WASM, and other wire boundaries
59-
- **aimdb-data-contracts**: Added `Migratable` trait with `MigrationChain` and `MigrationStep` for schema evolution
59+
- **aimdb-data-contracts**: Refocused as a pure trait-definition crate (`SchemaType`, `Streamable`, `Linkable`, `Simulatable`, `Observable`, `Migratable`)
60+
- `Streamable` trait as capability marker for types crossing serialization boundaries
61+
- `Migratable` trait with `MigrationChain` and `MigrationStep` for schema evolution
62+
- Concrete contracts (Temperature, Humidity, GpsLocation) moved to application-level crates
63+
- Removed closed `StreamableVisitor` dispatcher in favor of extensible registry pattern
64+
- Removed `ts` feature (`ts-rs` dependency)
6065
- **aimdb-core**: Added `ws://` and `wss://` URL scheme support in `ConnectorUrl` for WebSocket connectors
6166
- **tools/aimdb-cli**: New `aimdb generate` subcommand for Mermaid diagrams, Rust schema generation, and crate scaffolding via `aimdb-codegen`
6267
- **tools/aimdb-cli**: New `aimdb watch` subcommand for live record monitoring
@@ -66,12 +71,21 @@ No changes yet.
6671
- **tools/aimdb-mcp**: `CONVENTIONS.md` asset for architecture agent prompts
6772
- Design documents: 023 (Architecture Agent), 024 (Codegen Common Crate), 025 (WASM Adapter)
6873

74+
### Changed
75+
76+
- **aimdb-data-contracts**: Restructured from schema+contract crate to pure trait-definition crate (version reset to 0.1.0)
77+
- **aimdb-websocket-connector**: Replaced closed dispatcher with extensible `StreamableRegistry` — users register types via builder `.register::<T>()`
78+
- **aimdb-wasm-adapter**: `SchemaRegistry` updated to use extensible `.register::<T>()` pattern
79+
- **aimdb-knx-connector**: Updated Embassy dependency versions (executor 0.10.0, time 0.5.1, sync 0.8.0, net 0.9.0)
80+
- **aimdb-mqtt-connector**: Updated Embassy dependency versions (executor 0.10.0, time 0.5.1, sync 0.8.0, net 0.9.0)
81+
- Embassy submodules updated to latest upstream commits
82+
6983
### Published Crates
7084

7185
| Crate | Previous | New |
7286
|-------|----------|-----|
7387
| `aimdb-core` | 0.5.0 | **1.0.0** |
74-
| `aimdb-data-contracts` | 0.5.0 | **1.0.0** |
88+
| `aimdb-data-contracts` | 0.5.0 | **0.1.0** |
7589
| `aimdb-cli` | 0.5.0 | **0.6.0** |
7690
| `aimdb-mcp` | 0.5.0 | **0.6.0** |
7791
| `aimdb-codegen` || **0.1.0** (new) |
@@ -82,8 +96,8 @@ No changes yet.
8296
| `aimdb-embassy-adapter` | 0.5.0 | unchanged |
8397
| `aimdb-client` | 0.5.0 | unchanged |
8498
| `aimdb-sync` | 0.5.0 | unchanged |
85-
| `aimdb-mqtt-connector` | 0.5.0 | unchanged |
86-
| `aimdb-knx-connector` | 0.3.0 | unchanged |
99+
| `aimdb-mqtt-connector` | 0.5.0 | **0.5.1** |
100+
| `aimdb-knx-connector` | 0.3.0 | **0.3.1** |
87101
| `aimdb-persistence` | 0.1.0 | unchanged |
88102
| `aimdb-persistence-sqlite` | 0.1.0 | unchanged |
89103
| `aimdb-derive` | 0.1.0 | unchanged |

aimdb-data-contracts/CHANGELOG.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
No changes yet.
1111

12-
## [1.0.0] - 2026-03-11
12+
## [0.1.0] - 2026-03-16
1313

1414
### Added
1515

16-
- `Streamable` trait and `StreamableVisitor` pattern for type-erased dispatch across WebSocket, WASM, and other wire boundaries
17-
- `for_each_streamable()` dispatcher function used by WASM adapter, WebSocket connector, and CLI
16+
- `Streamable` trait — capability marker for types crossing serialization boundaries (WebSocket, WASM, wire)
1817
- `Migratable` trait with `MigrationChain` and `MigrationStep` for schema evolution
18+
- Explicit version pins for path dependencies (`aimdb-core = "1.0.0"`, `aimdb-executor = "0.1.0"`)
1919

2020
### Changed
2121

22-
- `Temperature` contract expanded with simulation support
22+
- **Breaking**: Refocused as a pure trait-definition crate
23+
- Removed concrete contracts (`Temperature`, `Humidity`, `GpsLocation`) — moved to application-level crates (e.g., `weather-mesh-common`)
24+
- Removed closed `StreamableVisitor` dispatcher and `for_each_streamable()` — replaced by extensible registry pattern in connector/adapter crates
25+
- Removed `ts` feature and `ts-rs` dependency
26+
- Version reset from 1.0.0 to 0.1.0 to reflect the reduced, stabilizing scope
2327

2428
## [0.5.0] - 2026-02-21
2529

aimdb-knx-connector/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
No changes yet.
1111

12+
## [0.3.1] - 2026-03-16
13+
14+
### Changed
15+
16+
- Updated Embassy dependency versions: executor 0.10.0, time 0.5.1, sync 0.8.0, futures 0.1.2, net 0.9.0
17+
1218
## [0.3.0] - 2026-02-21
1319

1420
### Added

aimdb-knx-connector/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "aimdb-knx-connector"
3-
version = "0.3.0"
3+
version = "0.3.1"
44
edition = "2021"
55
authors.workspace = true
66
license.workspace = true

aimdb-mqtt-connector/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
No changes yet.
1111

12+
## [0.5.1] - 2026-03-16
13+
14+
### Changed
15+
16+
- Updated Embassy dependency versions: executor 0.10.0, time 0.5.1, sync 0.8.0, net 0.9.0
17+
1218
## [0.5.0] - 2026-02-21
1319

1420
### Added

aimdb-mqtt-connector/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "aimdb-mqtt-connector"
3-
version = "0.5.0"
3+
version = "0.5.1"
44
edition = "2021"
55
authors.workspace = true
66
license.workspace = true

aimdb-wasm-adapter/CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
No changes yet.
1111

12-
## [0.1.1] - 2026-03-11
12+
## [0.1.1] - 2026-03-16
1313

1414
### Added
1515

@@ -19,6 +19,6 @@ No changes yet.
1919
- All three buffer types: SPMC Ring, SingleLatest, Mailbox
2020
- `WasmDb` facade via `#[wasm_bindgen]`: `configureRecord`, `get`, `set`, `subscribe`
2121
- `WsBridge` — WebSocket bridge connecting browser to remote AimDB server
22-
- `SchemaRegistry` for type-erased record dispatch
22+
- `SchemaRegistry` for type-erased record dispatch with extensible `.register::<T>()` API
2323
- React hooks: `useRecord<T>`, `useSetRecord<T>`, `useBridge`
2424
- `no_std` + `alloc` compatible (`wasm32-unknown-unknown` target)

aimdb-websocket-connector/CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
No changes yet.
1111

12-
## [0.1.0] - 2026-03-11
12+
## [0.1.0] - 2026-03-16
1313

1414
### Added
1515

@@ -23,3 +23,7 @@ No changes yet.
2323
- Automatic reconnection
2424
- Shared wire protocol via `aimdb-ws-protocol`
2525
- `WebSocketConnector` builder API
26+
- `StreamableRegistry` for extensible type-erased dispatch
27+
- Register `Streamable` types via `.register::<T>()` on the builder
28+
- Schema-name collision detection at registration time
29+
- Monomorphized closures for zero-overhead serialization/deserialization

docs/releases/v1.0.0.md

Lines changed: 66 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,18 @@
22

33
**Stable core API, real-time browser streaming, and LLM-driven architecture design!**
44

5+
> Async in-memory database for MCU → edge → cloud data synchronization
6+
57
---
68

7-
## 🎯 What's New in v1.0.0
9+
## 🎯 Highlights
810

911
This release promotes **`aimdb-core` to 1.0.0** — declaring a stable public API for the core database engine. It also ships four entirely new crates: a **WebSocket connector** for real-time browser streaming, a **WASM adapter** for running AimDB in the browser, a **code generation library** for architecture-to-code workflows, and a **shared wire protocol** for the WebSocket ecosystem. The MCP server gains a full **architecture agent** for LLM-driven system design, and the CLI adds **code generation** and **live monitoring** commands.
1012

1113
**Headline: MCU → Edge → Cloud → Browser** — AimDB now spans the full stack.
1214

15+
**Extensible Streamable registry** — the `Streamable` type dispatch system has been redesigned from a closed dispatcher to an open, extensible registry pattern. Users now register their own types via `.register::<T>()` on connector and adapter builders. Concrete contracts (Temperature, Humidity, GpsLocation) have moved to application-level crates.
16+
1317
---
1418

1519
## ✨ Major Features
@@ -44,6 +48,7 @@ builder.configure::<Temperature>(AppKey::Temp, |reg| {
4448
- 🔐 **Authentication** via pluggable `AuthHandler` trait
4549
- 📡 **MQTT-style wildcards**`#` multi-level, `*` single-level topic matching
4650
- ⏱️ **Late-join** — new subscribers receive current values immediately
51+
- 📋 **`StreamableRegistry`** — extensible type-erased dispatch via `.register::<T>()` with schema-name collision detection
4752

4853
### 🕸️ WASM Adapter (New Crate)
4954

@@ -66,9 +71,23 @@ function TemperatureDashboard() {
6671
- 🎯 `WasmDb` facade via `#[wasm_bindgen]`: `configureRecord`, `get`, `set`, `subscribe`
6772
- 🌉 `WsBridge` — WebSocket bridge connecting browser to remote AimDB server
6873
- ⚛️ React hooks: `useRecord<T>`, `useSetRecord<T>`, `useBridge`
69-
- 📋 `SchemaRegistry` for type-erased record dispatch
74+
- 📋 `SchemaRegistry` for type-erased record dispatch with extensible `.register::<T>()` API
7075
- `no_std` + `alloc` compatible (`wasm32-unknown-unknown` target)
7176

77+
### 📋 Data Contracts — Pure Trait Crate
78+
79+
**`aimdb-data-contracts` refocused as a pure trait-definition crate (version reset to 0.1.0).**
80+
81+
Trait definitions for self-describing data schemas that work identically across MCU, edge, and cloud:
82+
- `SchemaType` — unique identity and versioning
83+
- `Streamable` — capability marker for types crossing serialization boundaries
84+
- `Linkable` — wire format for connector transport
85+
- `Simulatable` — test data generation
86+
- `Observable` — signal extraction for monitoring
87+
- `Migratable` — schema evolution with `MigrationChain` and `MigrationStep`
88+
89+
Concrete contracts (Temperature, Humidity, GpsLocation) and the closed `StreamableVisitor` dispatcher have been removed — see [Breaking Changes](#️-breaking-changes) below.
90+
7291
### 🏗️ Code Generation (New Crate)
7392

7493
**Architecture-to-code: generate Rust source and Mermaid diagrams from `.aimdb/state.toml`!**
@@ -130,12 +149,6 @@ Architecture MCP resources provide Mermaid diagrams and validation results as li
130149

131150
`aimdb-ws-protocol` provides `ServerMessage` and `ClientMessage` enums used by both the WebSocket connector (server side) and the WASM adapter (browser side). JSON-encoded with `"type"` discriminant tag.
132151

133-
### 📋 Expanded Data Contracts
134-
135-
**New trait families for cross-boundary dispatch and schema evolution:**
136-
- `Streamable` trait and `StreamableVisitor` pattern — type-erased dispatch across WebSocket, WASM, and CLI boundaries
137-
- `Migratable` trait with `MigrationChain` and `MigrationStep` for schema evolution
138-
139152
---
140153

141154
## 🔧 Other Changes
@@ -151,6 +164,12 @@ Architecture MCP resources provide Mermaid diagrams and validation results as li
151164
- New `aimdb generate` subcommand for code generation via `aimdb-codegen`
152165
- New `aimdb watch` subcommand for live record monitoring
153166

167+
### Dependency Updates
168+
169+
- **aimdb-knx-connector** `0.3.1` — Updated Embassy dependency versions (executor 0.10.0, time 0.5.1, sync 0.8.0, futures 0.1.2, net 0.9.0)
170+
- **aimdb-mqtt-connector** `0.5.1` — Updated Embassy dependency versions (executor 0.10.0, time 0.5.1, sync 0.8.0, net 0.9.0)
171+
- Embassy submodules updated to latest upstream commits
172+
154173
---
155174

156175
## 📦 Published Crates
@@ -162,27 +181,37 @@ Architecture MCP resources provide Mermaid diagrams and validation results as li
162181
- 🆕 `aimdb-codegen@0.1.0` — architecture-to-code generation
163182

164183
### Updated
165-
| Crate | Version |
166-
|-------|---------|
167-
| `aimdb-core` | **1.0.0** |
168-
| `aimdb-data-contracts` | **1.0.0** |
169-
| `aimdb-cli` | **0.6.0** |
170-
| `aimdb-mcp` | **0.6.0** |
184+
185+
| Crate | Previous | New |
186+
|-------|----------|-----|
187+
| `aimdb-core` | 0.5.0 | **1.0.0** |
188+
| `aimdb-data-contracts` | 0.5.0 | **0.1.0** (reset — pure trait crate) |
189+
| `aimdb-cli` | 0.5.0 | **0.6.0** |
190+
| `aimdb-mcp` | 0.5.0 | **0.6.0** |
191+
| `aimdb-mqtt-connector` | 0.5.0 | **0.5.1** |
192+
| `aimdb-knx-connector` | 0.3.0 | **0.3.1** |
171193

172194
### Unchanged
173195
- `aimdb-tokio-adapter@0.5.0`
174196
- `aimdb-embassy-adapter@0.5.0`
175197
- `aimdb-client@0.5.0`
176198
- `aimdb-sync@0.5.0`
177-
- `aimdb-mqtt-connector@0.5.0`
178-
- `aimdb-knx-connector@0.3.0`
179199
- `aimdb-persistence@0.1.0`
180200
- `aimdb-persistence-sqlite@0.1.0`
181201
- `aimdb-derive@0.1.0`
182202
- `aimdb-executor@0.1.0`
183203

184204
---
185205

206+
## ⚠️ Breaking Changes
207+
208+
- **aimdb-data-contracts**: Concrete contracts removed from this crate. If you depended on `Temperature`, `Humidity`, or `GpsLocation` from `aimdb-data-contracts`, define them in your own application crate or shared common crate (see `examples/weather-mesh-demo/weather-mesh-common` for a reference).
209+
- **aimdb-data-contracts**: `for_each_streamable()` and `StreamableVisitor` removed. Use `.register::<T>()` on connector/adapter builders instead.
210+
- **aimdb-data-contracts**: `ts` feature removed (`ts-rs` dependency dropped).
211+
- **aimdb-data-contracts**: Version reset from 1.0.0 to 0.1.0 to reflect the reduced, stabilizing scope as a pure trait crate.
212+
213+
---
214+
186215
## 🖥️ New CLI Commands
187216

188217
```bash
@@ -205,18 +234,36 @@ aimdb watch <record> # Watch live record updates
205234
```toml
206235
[dependencies]
207236
aimdb-core = "1.0"
208-
aimdb-tokio-adapter = "0.5" # unchanged
237+
aimdb-data-contracts = "0.1" # reset — now a pure trait crate
238+
aimdb-tokio-adapter = "0.5" # unchanged
209239
# Optional: add WebSocket streaming
210240
aimdb-websocket-connector = "0.1"
211241
# Optional: add WASM support
212242
aimdb-wasm-adapter = "0.1"
213243
```
214244

215-
### Step 2: No breaking API changes
245+
### Step 2: Move concrete contracts to your crate
246+
247+
If you used `Temperature`, `Humidity`, or `GpsLocation` from `aimdb-data-contracts`, copy them into your own application or shared common crate. See `examples/weather-mesh-demo/weather-mesh-common` for a working example.
248+
249+
### Step 3: Replace `StreamableVisitor` with `.register::<T>()`
250+
251+
```rust
252+
// Before (closed dispatcher):
253+
// for_each_streamable(visitor);
254+
255+
// After (extensible registry):
256+
let connector = WebSocketConnector::new()
257+
.register::<Temperature>()
258+
.register::<Humidity>()
259+
.register::<GpsLocation>();
260+
```
261+
262+
### Step 4: No other breaking API changes
216263

217264
The 0.5.0 → 1.0.0 upgrade for `aimdb-core` has **no breaking changes** — only additive features (WebSocket URL scheme support). All existing code continues to compile unchanged.
218265

219-
### Step 3: Try the new tools
266+
### Step 5: Try the new tools
220267

221268
```bash
222269
# Update CLI

0 commit comments

Comments
 (0)