Skip to content

Commit d6a6587

Browse files
committed
feat: Add CHANGELOG entry for v0.11.0, detailing new system introspection, observability, eventing, and module control features, and minor fixes.
1 parent 0cb46db commit d6a6587

1 file changed

Lines changed: 54 additions & 16 deletions

File tree

CHANGELOG.md

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

1010
### Added
1111

12+
#### System Modules — AI Bidirectional Introspection
13+
Built-in `system.*` modules that allow AI agents to query, monitor
14+
15+
- **`system.health.summary`** — Aggregate health status across all registered modules (healthy/degraded/unhealthy classification based on error rate thresholds).
16+
- **`system.health.module`** — Per-module health detail including recent errors from `ErrorHistory`.
17+
- **`system.manifest.module`** — Single module introspection (schema, annotations, tags, source path).
18+
- **`system.manifest.full`** — Full registry manifest with filtering by tags/prefix.
19+
- **`system.usage.summary`** — Usage statistics across all modules (call counts, error rates, avg latency).
20+
- **`system.usage.module`** — Per-module usage detail with hourly trend data.
21+
- **`system.control.update_config`** — Runtime config hot-patching with constraint validation.
22+
- **`system.control.reload_module`** — Hot-reload a module from disk without restart.
23+
- **`system.control.toggle_feature`** — Enable/disable modules at runtime with reason tracking.
24+
- **`registerSysModules()`** — Auto-registration wiring for all system modules.
25+
26+
#### Observability
27+
- **`ErrorHistory`** — Ring buffer tracking recent errors with deduplication and per-module querying.
28+
- **`ErrorHistoryMiddleware`** — Middleware that records `ModuleError` details into `ErrorHistory`.
29+
- **`UsageCollector`** — Per-module call counting, latency histograms, and hourly bucketed trend data.
30+
- **`PlatformNotifyMiddleware`** — Threshold-based sensor that emits events on error rate spikes.
31+
32+
#### Event System
33+
- **`EventEmitter`** — Global event bus with async subscriber dispatch and thread-pool execution.
34+
- **`EventSubscriber`** protocol — Interface for event consumers.
35+
- **`ApCoreEvent`** — Frozen dataclass for typed events (module lifecycle, errors, config changes).
36+
- **`WebhookSubscriber`** — HTTP POST event delivery with retry.
37+
- **`A2ASubscriber`** — Agent-to-Agent protocol event bridge.
38+
39+
#### APCore Unified Client
40+
- **`APCore.on()`** / **`APCore.off()`** — Event subscription management via the unified client.
41+
- **`APCore.disable()`** / **`APCore.enable()`** — Module toggle control via the unified client.
42+
- **`APCore.discover()`** / **`APCore.list_modules()`** — Discovery and listing via the unified client.
43+
44+
#### Public API Exports
45+
- **`ModuleDisabledError`** — Error class for `MODULE_DISABLED` code, raised when a disabled module is called.
46+
- **`ReloadFailedError`** — Error class for `RELOAD_FAILED` code (retryable).
47+
- **`SchemaStrategy`** — Enum for schema resolution strategy (`yaml_first`, `native_first`, `yaml_only`).
48+
- **`ExportProfile`** — Enum for schema export profiles (`mcp`, `openai`, `anthropic`, `generic`).
49+
50+
#### Registry
51+
- **Module toggle**`Registry` now supports `disable()`/`enable()` with `ModuleDisabledError` enforcement and event emission.
52+
- **Version negotiation**`negotiate_version()` for SDK/module version compatibility checking.
53+
54+
### Fixed
55+
- README Access Control example now includes required `Executor` and `Registry` imports.
56+
- `pyproject.toml` repository/issues/changelog URLs now point to `apcore-python` (was incorrectly pointing to `apcore`).
57+
- CHANGELOG `[0.7.1]` compare link added (was missing from link references).
58+
59+
---
60+
61+
## [0.10.0] - 2026-03-07
62+
63+
### Added
64+
1265
#### APCore Unified Client
1366
- **`APCore.stream()`** — Stream module output chunk by chunk via the unified client.
1467
- **`APCore.validate()`** — Non-destructive preflight check via the unified client.
1568
- **`APCore.describe()`** — Get module description info (for AI/LLM use).
1669
- **`APCore.use_before()`** — Add before function middleware via the unified client.
1770
- **`APCore.use_after()`** — Add after function middleware via the unified client.
1871
- **`APCore.remove()`** — Remove middleware by identity via the unified client.
19-
- **`APCore.on()`** / **`APCore.off()`** — Event subscription management via the unified client.
20-
- **`APCore.disable()`** / **`APCore.enable()`** — Module toggle control via the unified client.
2172

2273
#### Global Entry Points (`apcore.*`)
2374
- **`apcore.stream()`** — Global convenience for streaming module calls.
@@ -28,25 +79,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2879
- **`apcore.use_before()`** — Global convenience for adding before middleware.
2980
- **`apcore.use_after()`** — Global convenience for adding after middleware.
3081
- **`apcore.remove()`** — Global convenience for removing middleware.
31-
- **`apcore.on()`** / **`apcore.off()`** — Global convenience for event subscription.
32-
- **`apcore.disable()`** / **`apcore.enable()`** — Global convenience for module toggle.
33-
34-
#### Public API Exports
35-
- **`ModuleDisabledError`** — Error class for `MODULE_DISABLED` code, raised when a disabled module is called.
36-
- **`ReloadFailedError`** — Error class for `RELOAD_FAILED` code (retryable).
37-
- **`SchemaStrategy`** — Enum for schema resolution strategy (`yaml_first`, `native_first`, `yaml_only`).
38-
- **`ExportProfile`** — Enum for schema export profiles (`mcp`, `openai`, `anthropic`, `generic`).
39-
- **`EventEmitter`**, **`EventSubscriber`**, **`ApCoreEvent`** — Event system types now exported from top-level package.
4082

4183
#### Error Hierarchy
4284
- **`FeatureNotImplementedError`** — New error class for `GENERAL_NOT_IMPLEMENTED` code (renamed from `NotImplementedError` to avoid Python stdlib clash).
4385
- **`DependencyNotFoundError`** — New error class for `DEPENDENCY_NOT_FOUND` code.
4486

45-
### Fixed
46-
- README Access Control example now includes required `Executor` and `Registry` imports.
47-
- `pyproject.toml` repository/issues/changelog URLs now point to `apcore-python` (was incorrectly pointing to `apcore`).
48-
- CHANGELOG `[0.7.1]` compare link added (was missing from link references).
49-
5087
### Changed
5188
- APCore client and `apcore.*` global functions now provide full feature parity with `Executor`.
5289

@@ -431,6 +468,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
431468

432469
---
433470

471+
[0.11.0]: https://github.com/aipartnerup/apcore-python/compare/v0.10.0...v0.11.0
434472
[0.10.0]: https://github.com/aipartnerup/apcore-python/compare/v0.9.0...v0.10.0
435473
[0.9.0]: https://github.com/aipartnerup/apcore-python/compare/v0.8.0...v0.9.0
436474
[0.8.0]: https://github.com/aipartnerup/apcore-python/compare/v0.7.1...v0.8.0

0 commit comments

Comments
 (0)