Skip to content

Commit 9a945a6

Browse files
docs: cut [1.0.2] CHANGELOG section; backfill [1.0.1] and [1.0.0]
1 parent 19d644a commit 9a945a6

1 file changed

Lines changed: 109 additions & 76 deletions

File tree

CHANGELOG.md

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

88
## [Unreleased]
99

10-
### Changed
11-
12-
- Engine tick semantics now follow model-first then edge-propagation execution for immediate within-tick signal flow.
13-
- Edge processing now writes using target signal contracts (or target-local unit state), and no longer copies source unit metadata during propagation.
14-
- Graph compiler supports delay-mediated feedback policy by detecting cycles on the non-delay subgraph.
15-
- Graph compiler topological ordering is deterministic for non-delay edges (stable tie-break by `SignalId`).
16-
- Server `--dt` is now wired into runtime timestep and compile-time stability validation.
17-
- GoogleTest discovery switched to `POST_BUILD` mode for more reliable Visual Studio multi-config test registration.
18-
- Graph schema now supports explicit top-level `signals` unit contracts in JSON/YAML.
19-
- Transform/model registration APIs now include signature-aware strict-mode variants:
20-
- `register_transform_factory_with_signature(...)`
21-
- `register_model_factory_with_signature(...)`
22-
- Compiler now supports policy-driven dimensional validation:
23-
- `DimensionalPolicy::permissive`
24-
- `DimensionalPolicy::strict`
25-
- Strict-mode rule-threshold validation now requires declared LHS signal unit contracts.
26-
- CI now includes a required strict-dimensional-validation lane with artifact upload.
27-
- Graph configuration params now use structured `ParamValue` trees for model and transform parameters (`ParamMap`), while command/rule args remain scalar `Variant` values.
10+
## [1.0.2] - 2026-04-20
2811

2912
### Added
3013

31-
- Runtime stability validation in `Engine::tick` (`dt` must be positive and within model stability limits).
32-
- Rule condition execution in compiler for comparator expressions:
33-
- `<`, `<=`, `>`, `>=`, `==`, `!=`
34-
- Compiler parameter parsing hardening:
35-
- numeric coercion `int64 -> double` where valid
36-
- path-precise parameter type/missing-key diagnostics
37-
- optional `noise.seed` default
38-
- alias support for `saturation` (`min_value/max_value`) and `rate_limiter` (`max_rate`)
39-
- Single-writer ownership checks across model outputs and edge targets.
40-
- Server write-authority enforcement rejecting writes to protected model-owned and edge-derived signals.
41-
- New/expanded tests covering:
42-
- immediate chain propagation
43-
- rule condition emission path
44-
- delay-mediated cycle acceptance
45-
- stability validation (compile-time + runtime paths)
46-
- server protected-write rejection
47-
- server `--dt` timestep behavior
48-
- SignalStore unit-declaration behavior
49-
- Benchmark evidence tooling:
50-
- policy profiles (`local`, `ci-hosted`, `ci-dedicated`)
51-
- benchmark evaluation script (`scripts/evaluate_benchmarks.py`)
52-
- benchmark evidence CI workflow with artifact upload (`.github/workflows/benchmark-evidence.yml`)
53-
- Numerical validation framework:
54-
- `thermal_mass` integration method policy (`forward_euler`, `rk4`)
55-
- numerical validation runner (`scripts/run_numerical_validation.py`)
56-
- thermal validation target (`tests/validation/thermal_mass_validation.cpp`)
57-
- numerical validation CI evidence workflow (`.github/workflows/numerical-validation-evidence.yml`)
58-
- methodology/evidence docs (`docs/validation-methodology.md`, `docs/numerical-methods.md`)
59-
- Dimensional-analysis core primitives:
60-
- `UnitKind`, `DimensionVector`, `UnitDef`, `UnitConversion`
61-
- curated `UnitRegistry` with affine temperature conversions and absolute/delta temperature boundary checks
62-
- New `unit_convert` transform for explicit registry-derived cross-unit conversion (`to_unit`, optional `from_unit` assertion).
14+
- gRPC server (`fluxgraph-server`): compiles and runs FluxGraph as a network service,
15+
accepting `LoadGraph`, `Step`, `WriteSignal`, `ReadSignal`, and `Subscribe` RPCs.
16+
Optional; built via `add_subdirectory(server)`.
17+
- Server write-authority enforcement rejecting writes to protected model-owned and
18+
edge-derived signals.
19+
- Server `--dt` flag wired into runtime timestep and compile-time stability
20+
validation.
21+
- `unit_convert` transform: explicit registry-derived cross-unit conversion with
22+
`to_unit` and optional `from_unit` assertion.
23+
- `state_space_siso_discrete` built-in model: structured `A_d`, `B_d`, `C`, `D`,
24+
`x0` parameters with compile-time shape validation, analytical tests for
25+
deterministic trajectory, and reset behavior. SISO example and docs added.
26+
- `dc_motor` model: coupled electrical–mechanical dynamics, curated
27+
electrical/rotational units, strict compiler signatures, unit and analytical
28+
tests, Example 9.
29+
- `mass_spring_damper` model: curated mechanical units, compiler signatures, tests,
30+
example, and docs.
31+
- `PT1` / `PT2` built-in process models: strict `ModelSignature` metadata, minimal
32+
time units, expanded unit and analytical test coverage.
33+
- `thermal_rc2` two-node thermal model with shared thermal integration utilities,
34+
docs, tests, and example.
35+
- Dimensional-analysis core: `UnitKind`, `DimensionVector`, `UnitDef`,
36+
`UnitConversion`; curated `UnitRegistry` with affine temperature conversions and
37+
absolute/delta boundary checks.
38+
- Compiler dimensional validation policy: `DimensionalPolicy::permissive` and
39+
`DimensionalPolicy::strict`; strict-mode requires declared LHS signal unit
40+
contracts.
6341
- Compiled-program signal contract metadata propagated into runtime preload.
64-
- SignalStore contract/runtime helpers:
65-
- `write_with_contract_unit(...)`
66-
- `has_declared_unit(...)`
67-
- `declared_unit(...)`
68-
- New/expanded unit tests for:
69-
- unit registry conversions and compatibility checks
70-
- strict-mode dimensional compiler rejection paths and permissive warning paths
71-
- target-contract edge write behavior
72-
- JSON/YAML loader `signals` parsing
73-
- `unit_convert` transform behavior
74-
- Dimensional validation automation:
75-
- `scripts/run_dimensional_validation.py` for strict test evidence generation
76-
- scheduled/dispatch evidence workflow (`.github/workflows/dimensional-validation-evidence.yml`)
77-
- Structured-parameter model support:
78-
- built-in `state_space_siso_discrete` model (`A_d`, `B_d`, `C`, `D`, `x0`)
79-
- compile-time structured-parameter validation hook in model signatures
80-
- unit + analytical tests for shape validation, deterministic trajectory, and reset behavior
81-
- Loader hardening for structured params:
82-
- centralized parse limits (depth, node count, collection sizes, string size)
83-
- recursive model/transform param parsing in JSON/YAML loaders
84-
- scalar-only enforcement for rule action `args`
42+
- `SignalStore` contract helpers: `write_with_contract_unit`, `has_declared_unit`,
43+
`declared_unit`.
44+
- Graph schema: explicit top-level `signals` unit contracts in JSON/YAML.
45+
- Structured `ParamValue` / `ParamMap` type for model and transform parameters
46+
(command/rule args remain scalar `Variant`).
47+
- Centralized parse limits for structured params (depth, node count, collection
48+
sizes, string size) enforced in JSON/YAML loaders.
49+
- Transform/model registration variants with signature awareness:
50+
`register_transform_factory_with_signature`, `register_model_factory_with_signature`.
51+
- Rule condition execution: `<`, `<=`, `>`, `>=`, `==`, `!=` comparators (was
52+
previously hardcoded false).
53+
- Compiler parameter parsing: numeric coercion (`int64 → double`), path-precise
54+
diagnostics, optional `noise.seed` default, `saturation`/`rate_limiter` aliases.
55+
- Single-writer ownership checks across model outputs and edge targets.
56+
- Runtime stability validation in `Engine::tick` (`dt` must be positive and within
57+
model stability limits).
58+
- Benchmark evidence tooling: policy profiles (`local`, `ci-hosted`,
59+
`ci-dedicated`); `scripts/evaluate_benchmarks.py`; CI evidence workflow.
60+
- Numerical validation framework: `thermal_mass` solver strategies
61+
(`forward_euler`, `rk4`); `scripts/run_numerical_validation.py`; numerical
62+
validation CI evidence workflow; methodology/evidence docs.
63+
- Dimensional validation automation: `scripts/run_dimensional_validation.py`;
64+
scheduled/dispatch CI evidence workflow.
65+
- `thermal_mass` integration method policy (`forward_euler`, `rk4`) with
66+
method-dependent stability, regression, and determinism coverage.
67+
- Expanded test coverage: immediate chain propagation, rule condition emission,
68+
delay-mediated cycle acceptance, stability validation, server protected-write
69+
rejection, server `--dt` behavior, `SignalStore` unit-declaration behavior.
70+
- CI: required strict-dimensional-validation lane with artifact upload; Windows
71+
diagram CI parity; shared docs check workflow.
72+
- Release workflow: on `v*` tag, builds `ci-linux-release-server`, packages
73+
`fluxgraph-server` binary + source tarball + `manifest.json` + `SHA256SUMS`.
74+
75+
### Changed
76+
77+
- Engine tick semantics: model-first then edge-propagation for immediate
78+
within-tick signal flow.
79+
- Edge processing writes using target signal contracts (no longer copies source
80+
unit metadata during propagation).
81+
- Graph compiler: delay-mediated feedback policy detects cycles on the non-delay
82+
subgraph; topological ordering is deterministic (stable tie-break by `SignalId`).
83+
- Compiler architecture split: built-in transform/model registration is now
84+
family-scoped.
85+
- Internal helper module and dimensional signature validation extracted to
86+
dedicated compilation units.
87+
- GoogleTest discovery switched to `POST_BUILD` mode for reliable Visual Studio
88+
multi-config test registration.
89+
- Org references updated from `feast` / `FEASTorg` to `anolis` / `anolishq`
90+
throughout.
91+
- Markdownlint config tightened to org canonical ruleset.
92+
- Docs: angle brackets in method signatures escaped for VitePress; case-sensitive
93+
doc links corrected.
94+
95+
### Fixed
96+
97+
- Rule execution path was non-functional (conditions hardcoded false) — now fully
98+
wired.
99+
- Stability validation function existed but was not applied during active server
100+
compile/load path.
101+
- CLI `--dt` was parsed but not applied to service runtime timestep.
102+
- Signal unit contract no longer accidentally locks signals to `"dimensionless"`.
103+
- Windows: `fluxgraph_tests` no longer links both `gtest_main` and `gmock` runtimes
104+
(was causing zero discovered tests).
105+
- DOT emitter test: match escape-quote form after `TransformSpec::params` typed as
106+
`ParamValue`.
107+
108+
## [1.0.1] - 2024-02-16
85109

86110
### Fixed
87111

88-
- Rule execution path was previously non-functional (conditions were hardcoded false).
89-
- Stability validation function existed but was not integrated into active server compile/load path.
90-
- CLI timestep argument was previously parsed but not applied to service runtime behavior.
91-
- Signal unit contract now prevents accidental mismatches while avoiding premature lock-in to `"dimensionless"` defaults.
92-
- Windows test executables no longer link both `gtest_main` and `gmock` runtimes in `fluxgraph_tests`, which could cause zero discovered/registered tests at runtime.
112+
- Removed all Unicode and emoji characters for maximum terminal compatibility:
113+
degree symbols (`°`) replaced with `degC`/`deg`; mathematical symbols (``, ``,
114+
`±`, ``, `π`, `τ`, `Δ`, ``) replaced with ASCII equivalents. Affected files:
115+
documentation, examples, tests, header comments.
116+
117+
## [1.0.0] - 2024-02-16
118+
119+
Initial anolishq release. Core library stable; gRPC server scaffolded.
120+
See `[0.1.1]` and `[0.1.0]` below for historical FEASTorg-era feature inventory.
121+
122+
### Added
123+
124+
- CMake export configuration (`cmake/fluxgraphConfig.cmake.in`).
125+
- v1.0.0 API documentation update.
93126

94127
## [0.1.1] - 2024-02-16
95128

0 commit comments

Comments
 (0)