All notable changes to aimdb-codegen will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Issue #177 - generated postcard records now have a true into-slice codec.
Their
Linkableimplementation advertises a 256-byte reusable scratch capacity and overridesencode_intowithpostcard::to_slice; generated outbound connector chains installwith_serializer_into. Values that exceed the scratch capacity retain the existingpostcard::to_allocvecfallback. Host behavior, generated connector wiring,no_stdCortex-M compilation and the JSON-free dependency graph are covered bymake codegen-drift. - Postcard codegen is now exercised end to end by
make codegen-drift: a generated Postcard-only common crate roundtrips on the host, cross-compiles forthumbv7em-none-eabihf, and proves its normal dependency graph is JSON-free. A generated mixed JSON + Postcard crate is also compiled so codec feature/dependency drift fails in CI (#155).
- Generated
Cargo.tomlfor manifests mixingserialization = "json"andserialization = "postcard"records omitted theserde_jsondependency (postcard presence suppressed it), so the generated crate failed to compile under thestdfeature.serde_jsonis now emitted whenever any record uses JSON serialization, independent of postcard (#155).
- Emitted task scaffolds now use
Producer<T>/Consumer<T>(no, TokioAdaptersecond parameter) and emitted doc tables show the same form, matching the M14 cleanup inaimdb-core(Design 029). Regenerate downstream scaffolds after upgrading. - Emitted
configure_schemasignature changed from<R: Spawn + 'static>to<R: RuntimeAdapter + 'static>; emitted prelude now importsaimdb_executor::RuntimeAdapterinstead ofSpawn(Issue #88). Regenerate downstream schemas.
-
Generated join handler stubs updated to match the new task-model
on_triggersAPI (Design 027). Multi-input task handlers are now generated as:pub async fn task_handler( mut _rx: aimdb_core::transform::JoinEventRx, _producer: aimdb_core::Producer<Output, TokioAdapter>, ) { while let Ok(_trigger) = _rx.recv().await { todo!("implement task_handler") } }
Previously generated
fn task_handler(JoinTrigger, &mut (), &Producer<...>) -> Pin<Box<dyn Future>>for the callback model. -
build_transform_callfor join tasks now emits.on_triggers(handler)instead of.with_state(()).on_trigger(handler).
- Initial release of the AimDB code generation library
ArchitectureStatetype for reading.aimdb/state.tomldecision records- Mermaid diagram generation from architecture state (
generate_mermaid) - Rust source generation from architecture state (
generate_rust)- Value structs, key enums,
SchemaType/Linkableimplementations configure_schema()function scaffolding- Common crate, hub crate, and binary crate generation
- Value structs, key enums,
- State validation module for architecture integrity checks (
validate) - TOML serialization/deserialization of architecture state