Skip to content

feat(config): add runtime binding contract - #159

Merged
LimiNode merged 3 commits into
mainfrom
feat/config-built-in-materializers
Oct 14, 2026
Merged

LimiNode merged 3 commits into
mainfrom
feat/config-built-in-materializers

Conversation

@LimiNode

Copy link
Copy Markdown
Owner

Summary\n- add typed-erased programmatic binding storage\n- add binding resolver and runtime logger factory interfaces\n- resolve required bindings before instantiation\n- publish runtime logger sets atomically and rebase diagnostics to loggers[N]\n\n## Scope\n- no JSON/properties frontend\n- no hot reload\n- runtime creation remains injected through ConfigurationLoggerFactory\n\n## Verification\n- configuration_contract_test\n- full C++11 Release CTest: 62/62 passed\n- git diff --check

Add typed-erased programmatic binding storage, resolver and logger factory interfaces, and atomic runtime instantiation for materialized plans. Required bindings are checked before factory calls, diagnostics are rebased to document paths, and caller-visible logger sets remain unchanged on failure.
Reject null required bindings, record type_index metadata for safe typed retrieval, and resolve every logger binding before invoking any factory. Clarify that only caller-visible logger publication is atomic while factory side effects remain non-transactional, and extend regression coverage for null, type mismatch, and late binding failures.
Document that factories must retrieve required bindings with the expected type and fail closed on mismatch. Extend the runtime contract regression to verify a wrong typed binding reaches the factory, produces a diagnostic, and leaves the caller-visible logger set unchanged.
@LimiNode
LimiNode merged commit 89de9dd into main Oct 14, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant