refactor: harden observed capability evidence and enforcement - #47
Merged
Conversation
- Separate capability identity from freshness. - Model config, boot, mount, runtime, and derived evidence explicitly. - Persist observation and dependency proofs with bounded validation. - Centralize capability policy and requirement derivation. - Validate provider ownership, audience boundaries, and dependency graphs. - Share transition and eligibility semantics across node and control plane. - Replace public and private protobuf surfaces without compatibility fields. Signed-off-by: wayne <rcywjo@gmail.com>
- Publish atomic observation batches on provider-specific schedules. - Preserve actual sample times and expire stale successes to unknown. - Isolate slow runtime conformance from fast network and mount health probes. - Consolidate host facts and evidence identities. - Bind config, boot, mount, and runtime facts to explicit identities. - Cache runtime digests by file identity and separate network from extension configuration. - Recompute node readiness from current provider generations with recovery debounce. Signed-off-by: wayne <rcywjo@gmail.com>
- Derive and revalidate allocation requirements at request and rootfs gates. - Reject mismatched or internal dependencies before side effects. - Rebind current proofs before runtime activation and persist admitted evidence. - Verify real runtime enforcement. - Check cgroup membership and memory.max for runc and runsc host processes. - Verify project quota, overlay envelopes, process identity, and filestore mounts. - Serialize durable capability-loss reconciliation. - Keep lifecycle conditions separate from allocation state. - Coalesce generations and run one detached fail-stop cleanup workflow per allocation. - Replace speculative execution envelopes with prepared container activation and durable exit state. Signed-off-by: wayne <rcywjo@gmail.com>
- Re-evaluate typed capability eligibility while candidate nodes are locked. - Persist placement proofs with allocation and resource reservations. - Fence stale summaries and continue to the next eligible candidate. - Normalize capability dependencies, conditions, and reconcile work. - Index dependencies by node and capability key instead of scanning allocation JSON. - Separate condition revisions from lifecycle state and queue pending keys by generation. - Make node reports transactional. - Commit summary, transitions, and affected allocation work together. - Publish in-memory registry changes only after PostgreSQL commit. - Merge the replacement schema into the initial migration for database rebuilds. Signed-off-by: wayne <rcywjo@gmail.com>
- Add typed admin commands for snapshots, transitions, backlog, and allocation evidence. - Render provider identity, freshness, proof graphs, conditions, and reconcile state. - Keep list output bounded while preserving complete detail views. - Align verification and operator documentation with the replacement architecture. - Document observation, policy, enforcement, and lifecycle ownership boundaries. - Remove obsolete execution-envelope prewarm paths and stale compatibility guidance. - Exercise rootfs lower chains and capability observations in runtime verification helpers. Signed-off-by: wayne <rcywjo@gmail.com>
Signed-off-by: wayne <rcywjo@gmail.com>
Require every configured runtime handler to load before persistent inventory reconciliation can start. Retry transient initialization failures under the service context, reject malformed factory results, and preserve race-safe recovery tests and documentation. Signed-off-by: wayne <rcywjo@gmail.com>
Keep staged and caller-provided Helm upgrade arguments on one continuation line so empty optional values do not leave misleading shell continuations. Signed-off-by: wayne <rcywjo@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Architecture
Validation
make proto-generated-checkmake -C sdk/proto lintmake axern-cn-verifymake axern-cn-verify-allwith all 33 serial repository checks passingTracking