All notable public GovEngine changes should be documented here.
The frozen govengine.v1 facade follows the documented 1.x compatibility
policy. The wider package root retains its explicit compatibility,
experimental and fixture classifications.
-
Publishes
govengine==1.0.0rc2with exactsclite-core==2.0.1from immutable tagv1.0.0rc2through the confirmed GitHub OIDC workflow. Reviewed source A and record child B produce byte-identical wheel and sdist; clean public-index installs pass and the seven-day observation window is active through2026-08-15T11:15:02.258488Z. -
Adds a private complete-payload seal to compiled policy packs and requires a stable, detached canonical snapshot before policy evaluation, pack digesting or enforcement admission. Post-compilation mutation of nested condition, metadata, obligation or constraint values now fails closed with the existing
invalid_compiled_policy_packreason without changing public records, signatures or digest payloads. -
Closes the v0.1 policy pack and rule field inventories while preserving only the intentional pack
id, ruleid, and ruledecisioncompatibility aliases. The authoring schema and runtime compiler now reject ambiguous dual spellings and unknown fields such asconstraintss; compiled output remains canonical and typed v1 behavior is unchanged. -
Caps each new governance authorization at the policy activation expiry validated during issuance, while preserving the independent 60-second and approval-expiry bounds. This is fail-closed issuance-time validation and does not claim continuous activation lookup or background invalidation.
-
Prepares the next GovEngine candidate with exact
sclite-core==2.0.1while retaining immutable published rc1 history and using a separate record-only authentic-review child. -
Seeds the final rc2 external-review JSON path with a fail-closed pending form for the authentic reviewer to complete in GitHub Web. The record-only child must modify that form and add the prepared rc2 window; the form is neither approval nor confidential report content.
-
Adds a whole-active-documentation anti-drift gate for repository links and anchors, documented files including Markdown references, CLI commands, docs-index completeness, active ownership/version claims and mutually consistent release-drift disclosures.
-
Changes the post-tag source-validation result to report
publishable=falseinstead of implying that changedmainis release-ready. -
Records that the immutable
1.0.0rc1PyPI long description contains the pre-publication README, and distinguishes the published artifact from post-tag fixes onmain. The stale metadata is fixed forward in a new release candidate rather than by rewriting the RC tag. -
Adds a machine-readable current release-train manifest and fail-closed local and cross-repository anti-drift validation for package versions, exact dependency pins, downstream alignment status and active release documentation. The gate now runs in CI and release readiness.
-
Pins the CI lint contract to
ruff==0.15.17so a newly published formatter rule set cannot invalidate an otherwise unchanged release branch. -
Corrects the machine-readable CLI registry for
govengine-policy explainandsimulate: legacy policy packs emit explanation schemav0.1, while typed policy packs emit schemav1. -
Applies the shared bounded-JSON limits to key-resolution and trust-store adapter records, and rejects forbidden trust-material keys recursively across nested mappings, lists and tuples.
-
Removes the unconsumed
govengine.contracts.executionpackage and the runtime-ownedgovengine.execution.command_shapehelper. RExecOp now owns argv normalization at its connector boundary, and clean-install/public-truth gates prevent these retired modules from returning.
- Reframed GovEngine consistently as an in-process governance kernel and separated GovEngine-owned bindings from SCLite lifecycle/evidence truth.
- Rebuilt the README around the frozen v1 quick start, canonical governance flow, ownership boundaries and security non-claims.
- Replaced the README renderer-dependent diagram with a compact ASCII ownership flow.
- Rebuilt architecture, API boundary, validation, publishing, roadmap and status documentation around the frozen v1 candidate and current SCLite/GovEngine/RExecOp/Tecrax release train.
- Marked pre-v1 runtime-shaped pages as compatibility references and removed obsolete runnable MVP/archive instructions duplicated by Git history and this changelog.
- Removes the superseded 0.14 governed-runtime MVP runbook, guarded/replay example and GE-032 local-runner decision evidence rather than retaining a duplicate archive. Active compatibility references remain documented, while the canonical operator path now points to the v1 security integration order.
-
Published
govengine==1.0.0rc1on PyPI with exactsclite-core==2.0.0, tag-bound GitHub OIDC Trusted Publishing and SLSA build provenance. Public clean installation andpip checkpassed; the seven-day RC observation window is active through2026-07-27T17:39:58.058090Z. -
Pins the SCLite 2.0 candidate after removal of stack-specific owner modules; GovEngine continues to consume only neutral lifecycle verification surfaces.
-
Promotes repository truth to the
1.0.0rc1source candidate, changes package maturity metadata from alpha to beta/release-candidate, and replaces the alpha-readiness gate with a release-readiness gate. The stable promise is explicitly limited to the frozengovengine.v1facade; legacy top-level surfaces keep their compatibility/alpha classifications. Final1.0.0promotion remains blocked on the completed RC observation window and no frozen-contract drift or open P0/P1 findings. -
Marks the wheel-shipped v1 compatibility manifest
frozen_for_1.0and adds the concrete0.16.11to v1 migration/rollback guide, including exact RExecOp/SCLite ownership and candidate pins. -
Starts a machine-checked
1.0.0rc1window bound to the frozen facade/schema manifest, conformance manifest and reason-code registry source. Drift in those inputs requires a new RC rather than a silent rc1 refresh. -
Corrects the unpublished RC record from the misleading
activestate toprepared. Public observation now starts only after PyPI publication, requires public evidence, lasts at least seven complete days, and has separate fail-closed published/completed validation modes. -
Adds an independent-review package naming the immutable GovEngine/RExecOp/ SCLite/Tecrax source baselines, required semantic scope and exact reproduction commands. ExatronOmega completed the independent review with zero open P0/P1 findings before publication.
-
Adds a versioned independent v1 contract-review record and release-only gate. Normal CI validates the record structure; the publish workflow fails closed until an external reviewer identifies an immutable commit and closes every P0/P1 finding. The release record now carries the completed independent review.
-
Pins every GitHub Action to a full commit SHA, adds scheduled/PR dependency audit and CodeQL workflows, and adds a manual tag-confirmed PyPI Trusted Publishing workflow with environment-bound OIDC, official publisher action and standard build-provenance attestation. Environment protection rules are optional repository policy; a local validator blocks moving action refs or long-lived upload-token settings.
-
Adds a single v1 threat model and a single security guarantees/non-claims document with an explicit cryptographic binding table. Existing security integration, runtime-admission and receipt-binding docs now distinguish the canonical decision/claim/receipt flow from legacy compatibility adapters and explicitly deny malicious in-process host resistance.
-
Adds bounded Hypothesis coverage for recursive JSON, typed numeric policy operators, execution-facts digests, approval and decision bindings, receipt limits, nested forbidden keys and invalid digest shapes. Strategies are deliberately size-limited and reuse the checked-in conformance inputs. The property corpus exposed and closed missing recursive bans for raw output/target and stdout/stderr governance input keys.
-
Adds a wheel-shipped, language-neutral v1 conformance corpus with 33 generated valid/invalid cases and a deterministic GovEngine runner. The corpus covers JSON fail-closed behavior, policy/approval/scope/capability bindings, decision enums and receipt postconditions; RExecOp-owned attempt/lease/fencing/nonce cases are explicitly marked for its reference runner instead of being simulated in GovEngine.
-
Freezes the candidate
govengine.v1facade and GovEngine-owned v1 schema inventory in a wheel-shipped compatibility manifest. CI now rejects facade or schema drift and runs strict mypy over the complete stable-facade path; the compatibility policy documents legacy migration and 1.x deprecation. -
Adds a digest-bound
PolicyEvaluationExplanation v1for typed policy packs, a machine-readable policy kernel reason-code registry, strict authored reason/risk validation and a module-scopedv0.1equality-map to typed-v1 migration scaffold. Legacy v0.1 explanation output remains wire-compatible; migration requires caller-supplied issuer, epoch and validity and does not activate or sign policy. -
Adds bounded policy compilation and exact static rule analysis: duplicate rule ids, identical predicates with conflicting/redundant effects, conflicting control ids, oversized rule/condition/control sets and invalid priorities now fail closed. The built-in governed-runtime baseline now explicitly merges compatible controls for its shared read predicate instead of shadowing them.
-
Adds v1 policy issuer, epoch, validity and supersedes declarations plus a module-scoped host-owned
PolicyActivationBinding. Canonical governance now verifies the current id/version/digest/epoch/issuer and bounded activation window before rule evaluation, rejecting superseded, revoked, expired and not-yet-valid policies without adding a policy repository or storage layer. -
Adds typed policy-condition AST support for
schema_version: v1with the closed operator seteq,neq,in,not_in,contains,exists,lt,lte,gt,gte,subset_ofandmatches_namespace. Known policy namespaces, operand types, missing paths and runtime type mismatches are fail-closed. Legacyv0.1equality maps compile to internaleqconditions and preserve their existing wire representation. -
Routes trigger-planning, supervisor-action and automation-transition gates through one internal planning-admission projection. Their records now carry
governance_flow=planning_admission_adapter.v1andexecution_authority=false; they cannot substitute for the canonical attempt-boundGovernanceDecisionevaluated before connector I/O. -
Adds module-scoped
DecisionClaimPortmatching the runtime-owned atomic decision-digest and nonce claim. The structural port defines claim-once semantics without adding GovEngine storage, locking or a second permit. -
Defers
output_digest_requiredentirely to post-I/O receipt conformance. Typed-execution admission carries the obligation but no longer expects an output digest that cannot exist before connector I/O. -
Adds module-scoped
RuntimeReceiptBindingandReceiptConformanceResult. GovEngine recomputes the runtime receipt digest and deterministically checks decision, opaque runtime-permit, attempt, runtime, lease, fencing, scope, inventory and policy bindings plus output-digest/output-limit postconditions. RExecOp remains the runtime receipt producer and SCLite remains the final lifecycle truth authority. -
Adds module-scoped
sign_governance_decision()andrequire_trusted_governance_decision()over the existing host-ownedSignerPort/VerifierPort. The verifier binds the complete decision, signing purpose, decision digest, allowed signer/mode and trust result; unsigned digests and mismatched or untrusted decisions fail closed without expanding the capped v1 facade or changing SCLite. -
Adds
GovernanceDecision v1andevaluate_governance(). The evaluator reuses PolicyEngine enforcement/trace, verifies current policy activation, approval trust/revocation/signature, independent scope and capability gates, and emits authorization only forallowed. Authorization is bound to the exact attempt/runtime/lease/fencing/inventory/policy inputs, expires within 60 seconds and declares consume-once semantics; RExecOp still owns atomic claim, runtime permits and I/O. -
Separates requested scope from
ScopePolicyBindingand operation capability requirements fromCapabilityInventoryBinding. Deterministic scope and compatibility decisions reject self-authorized allowlists, host plugin registration booleans, missing operation requirements and inventory drift;GovernanceRequestrecomputes and binds all three records. -
Adds the canonical
GovernanceRequest v1input and independently digest-boundApprovalAttestation v1. Approval validation now binds the exact operation, step, attempt, execution spec/facts, target scope, policy epoch and side-effect class, then fails closed on issuer trust, validity or host-provided revocation checks. These records are not execution permits and do not change SCLite or RExecOp ownership. -
Places the unpublished
0.17.0rc2candidate on release hold. A corrected candidate must include the fail-closed boundary evidence below. -
Rejects unknown admission/policy enum values, non-finite JSON numbers, duplicate JSON keys, unsupported Python boundary values and non-string JSON keys instead of normalizing or stringifying them.
-
Stops treating opaque refs, admission digests, text containing
approval, or host booleans as approval for mutation. The compatibility path remains approval-required until a bound approval attestation exists. -
Recomputes the GovEngine-owned runtime capability projection digest, rejects host-only plugin registration claims, requires explicit operation capability requirements, and requires an independently digest-bound network policy for non-local egress/destination admission.
-
Classifies all 308 root exports as 40 v1 candidates, 188 adapters, 61 experimental symbols, and 19 fixtures, with no immediate removals; 3 compatibility callables outside
__all__remain separately inventoried. -
Adds the real 40-symbol
govengine.v1alpha facade for structured API, PolicyEngine/enforcement, and governance trace symbols. Runtime mechanics, SCLite bridges, adapters, and fixtures remain outside the facade. -
Extends
scripts/validate_api_stability.pywith owner/migration-note checks, duplicate detection, facade drift checks, and deterministic RExecOp/Tecrax consumer import mapping. -
Splits SCLite CI into the released
sclite-core==2.0.0contract and an edge integration job pinned to a full SCLite commit instead of movingmain. -
Makes
GovApiErrorpropagate safely through context managers rather than masking the governance error withFrozenInstanceError. -
Separates stable
GovApiError.reason_codevalues from bounded dynamic context while retaining compact string diagnostics. -
Adds a CI-validated digest ownership inventory. Runner request, receipt and runtime-admission bindings plus audit-record/ledger-entry bindings now recompute full GovEngine-owned payloads; explicit digests can no longer override those computations. SCLite ticket and replay bindings remain delegated references.
-
Adds neutral HTTP destination admission fields for scheme, address class, effective port and origin-binding digest. GovEngine compares only bounded metadata/digests and never receives the raw connector host.
-
Adds canonical GovEngine scope-decision and assertion builders binding an admission reference, operation subject and exact target into a stable digest. The contract does not claim that a serialized decision authenticates GovEngine identity.
-
Enforces GovEngine's production SCLite imports against the versioned wheel-shipped consumer contract; a new top-level or deep import now fails the existing public-truth CI gate until reviewed in SCLite's inventory.
-
Adds regression coverage proving an automation-transition admission is bound to the exact request and automation-chain reference; reuse against a changed chain request fails closed as admission drift.
- Requires SCLite strict lifecycle verification, rather than generic
hash-chain integrity, before mapping a manifest to
verified_lifecycleor allowing the corresponding transition. - Consumes SCLite's verified guarded-bundle handoff fields directly for replay records, without reopening the manifest, guard, or ticket payload.
- Pins the unpublished candidate to final
sclite-core==2.0.0. This is a local release candidate; the latest published GovEngine package remainsgovengine==0.16.11.
- Published
govengine==0.16.11on PyPI withsclite-core==1.0.9. - Feature delta: none since
0.16.10. This release aligns GovEngine's dependency pin with the public SCLite line that exportsautomation_chain.v0.1helpers consumed by downstream RExecOp reaction chain projections.
- Published
govengine==0.16.10on PyPI withsclite-core==1.0.8. - Added
govengine.automationwithAutomationTransitionRequestandadmit_automation_transition()for child-operation planning admission over SCLiteautomation_chain.v0.1refs, max-depth limits, child budgets, allowed child intent classes, LLM proposal-only handling, and approval deferral without mutating runtime state. - Added
govengine.automation_explainwithAutomationTransitionExplanation,explain_automation_transition(), andgovengine-policy automation-transition --jsonfor redacted operator-facing automation admission reasoning.
- Published
govengine==0.16.9on PyPI withsclite-core==1.0.8. - G8 slice 1 (
cda9a27):govengine.cli_contract_registry.v0.1forgovengine-policyandgovengine-supervisoroperator CLIs with format and exit-code matrices. - G8 slice 1 (
cda9a27):govengine.cli_error.v0.1envelope on--jsonfailure paths for policy and supervisor authoring CLIs. - G8 slice 1 (
cda9a27): subprocess contract tests intests/test_cli_contracts.pyandtests/test_supervisor_cli.py; docs indocs/POLICY_ENGINE.md.
- Published
govengine==0.16.8on PyPI withsclite-core==1.0.8. - Admit registered RExecOp plugin backends in typed execution governance when
registered_plugin_backendmetadata is present. - Fix plugin stack compatibility to honor
declared_capability_descriptors.
- Published
govengine==0.16.7on PyPI withsclite-core==1.0.8. - Added M7
GovernanceTracewithproject_governance_trace()andpolicy_request_digest()for digest-bound truth-path consumers. - Extended M6.5 contract catalog with
gov_admission_decisionand admission/ runtime-control surfaces for RExecOp policy enforcement binding. - Added M6.5 central contract compatibility with
supported_contract_report(),evaluate_contract_compatibility(),validate_supported_contract_version()andgovengine-policy compatibility --jsonfor machine-readable supported GovEngine contract catalog and fail-closed unknown-major version checks. - Policy-pack
output_digest_requirednow projects to post-IO receipt enforcement overlay only; pre-IO typed execution admission no longer requiresoutput_digest_refbefore backend IO. - Extended typed execution control catalog with policy-pack mappings:
TYPED_EXECUTION_CONTROL_CATALOG_ENTRIES,project_typed_execution_policy_overlay()andmap_policy_verdict_to_typed_execution_controls()bridgePolicyVerdict/RuntimeControlProjectioninto typed execution evidence, network egress and backend-class controls. Policy enforcement now projectsread_only_required,no_raw_shell,allowed_network_egress,allowed_backend_classesandmutation_requires_approvalconstraints. - Added typed execution stack compatibility with
TypedExecutionStackCompatibilityRequest,evaluate_typed_execution_stack_compatibility(),typed_execution_control_catalog()andgovengine-policy typed-execution-compatibility|typed-execution-control-catalogfor RExecOp backend descriptor vs GovEngine control coverage without backend IO. - Added G5 typed execution governance with
TypedExecutionGovernanceRequest,RuntimeCapabilityDescriptor,TypedExecutionCapabilityCompatibilityReport,explain_typed_execution_governance(),admit_typed_execution()andgovengine-policy typed-execution-governance --jsonfor digest-bound typed execution admission, capability compatibility controls and fail-closed blockers over raw shell, unsupported backends, missing output digest refs, network boundary mismatch and mutation approval evidence without backend IO.
- Published
govengine==0.16.6on PyPI withsclite-core==1.0.8. - Added
govengine.supervisor_explainwithSupervisorActionExplanationandexplain_supervisor_action()for stable, redacted supervisor admission reasoning over retry budgets, stale-age gates, human sign-off and record-only health actions. - Added
govengine-supervisor explain --jsonfor operator-side inspection of boundedSupervisorActionRequestpayloads without executing recovery. - Added G3 profile governance projection with
ProfileGovernanceProjection,ProfileConnectorCompatibilityReport,explain_profile_governance()andgovengine-policy profile-governance --jsonfor policy-hook/evidence/runner posture checks and profile/connector capability compatibility without backend IO.
- Added
govengine.supervisor_actionswithSupervisorActionRequestandadmit_supervisor_action()for bounded runtime-supervisor admission over watchdog record digests, retry/stale limits and affected operation/event/inbox references. The surface does not implement a worker, queue, scheduler, recovery tool, infrastructure monitor, runtime store or SCLite artifact writer. block_autostartadmission now requires the stale-operation age to meet or exceed the declared stale-age threshold, so premature runtime blockers are denied fail-closed.- Signed manual recovery requests now carry bounded
actor_refandscopefields. Human-signoff supervisor actions are rejected when either field is missing, keeping manual recovery auditable without giving GovEngine runtime execution authority.
- Added
govengine.triggerswithTriggerPlanningRequestandadmit_trigger_planning()for bounded trigger-planning admission over event/rule digests. The surface does not implement scheduling, event intake, execution, domain trigger meaning, or SCLite evidence truth. - Published
govengine==0.16.2as the admission-contract baseline required by RExecOp trigger planning while keeping execution, scheduler, profile semantics and SCLite truth outside GovEngine.
- Added the PEP 561
py.typedmarker and wired the existingruff/mypydeveloper tooling into CI so GovEngine participates in the stack-wide quality baseline. - Published
govengine==0.16.1as a packaging and public-truth patch oversclite-core==1.0.8. - Kept GovEngine ownership unchanged: governance, policy, admission, obligations, constraints, and enforcement-plan contracts only; no scheduler, executor, profile semantics, SCLite truth authority, or live backend was added.
- Published the enforcement-plan API as the dependency baseline for RExecOp B2.
- Added
PolicyEnforcementPlanandRuntimeControlProjectionas the GovEngine-owned binding between a compiled policy pack, a PolicyEngine verdict, and host-enforceable neutral controls. Admission uses the existingGovAdmissionDecisioncontract rather than introducing another envelope. - Added deterministic GovEngine record digests for compiled policy packs, verdicts, enforcement plans, and admission decisions, plus drift validation.
- Supported projections are
receipt/receipt_required,output_digest_required,output_limit,timeout, andmax_steps; unsupported or malformed controls produce a blocked plan and matching denied admission. - GovEngine still performs no subprocess, SSH, HTTP, SCLite canonicalization, or domain-specific execution. The host runner must enforce every projected control.
- New public surface:
govengine.policywithPolicyRequest,PolicyVerdict,PolicyObligation,PolicyConstraint(schemav0.1) PolicyCompiler/compile_policy_pack: declarative YAML/JSON policy packs → deterministicCompiledPolicyPack; rejects empty packs and conflicting rules on the same conditionsPolicyEngine/evaluate_policy: fail-closed evaluation with built-in invariants (unsafe_execution_shape, destructive actions without approval evidence, critical mutating actions without approval)- Rule effects:
allow,allow_with_obligations,approval_required,deny; conditions match dotted paths such asaction.modeandresource.criticality policy_verdict_to_gov_policy_decision()projectsPolicyVerdictinto legacyGovPolicyDecisionforcompose_runtime_admission_result()- Tests:
tests/test_policy_engine.py - Docs: docs/POLICY_ENGINE.md
API_STABILITY_MATRIX.md:govengine.policyrow; alpha export count 203
- Publishes the
0.14.0package line oversclite-core>=1.0.3,<1.1after the SCLite 1.0.3 truth-layer release. - Canonicalizes lifecycle verified-state naming on
verified_chainandverified_lifecycle, while keepingchain_verified/lifecycle_verifiedas explicit migration aliases. - Hardens signature transition decisions so failed verification status cannot
pass solely because
trust_statusistrusted. - Enforces
GovEvidenceRequirement.evidence_kindduring review qualification using bounded claim metadata or claim type only; no raw evidence store or domain taxonomy is added. - Splits runtime-consumable guard failures onto the
kernel_guard_requiredreason code instead of reporting them assignature_required. - Tightens allowed runtime-admission proof inputs to require an execution ticket id and ticket digest/reference plus guarded root digest and admission/ticket receipt binding.
- Adds mypy and documentation anti-drift gates for version truth, lifecycle vocabulary, runtime-shell/state-machine separation, and contract-proof classification.
- PyPI default install fix: publishes stable
0.13.0sopip install govengineresolves above stale0.7.0without yanking old versions. - Admission guarded/replay fail-closed fix:
_guarded_bundle_decision_failedand_replay_runtime_statuswithruntime_consumablenow fail closed consistently.
- Publishes the
0.12.3a0/0.12.3-alphapackage line oversclite-core>=1.0.2,<1.1after SCLite 1.0.2 roadmap hardening and Ravenclaw stack-compatibility validation.
- Added the public runtime admission surface:
RuntimeAdmissionResult,compose_runtime_admission_result(),normalize_admission_artifact_refs(), andvalidate_runtime_admission_result(). The composer assembles policy, ticket, trust, guarded replay, runner profile, receipt obligation, and bounded artifact-reference summaries into one host-consumable decision record. - Added runner-profile and receipt-obligation admission gates. Runtime admission
now requires an allowed runner profile and a receipt obligation; concrete
runner receipts are validated separately with
validate_runner_receipt_binding()against admission, ticket, request, and receipt digests. - Added these admission gates before any host-owned controlled runner path may proceed; GovEngine still does not grant live execution authority or ship a live subprocess backend.
- Added inspect-only admission workflow and
scripts/inspect_runtime_admission.pyfor read-only operator inspection of composed admission decisions without live execution.
- Extended
govengine.replaywith a neutralReplayClaimStoreport and an in-memory development adapter. The port records replay claims (root tag, chain id, ticket/run id, key id) and can reject repeat roots in require-fresh mode without replacing existing guarded-root replay helpers from0.12.1. - Added receipt-to-admission binding plus
validate_runner_receipt_binding()andvalidate_evidence_review_chain()for bounded admission/ticket/request/ receipt and receipt/evidence/review reference checks. - Added
validate_evidence_review_chain()and supporting validators for end-to-end evidence review chains (admission → receipt → evidence → review). - Added
AuditLedgerPortcontracts plusJsonlAuditLedgerAdapter, a development-only hash-chained append-only JSONL adapter without choosing a production database.
- Added signed GovEngine record support:
govengine_record_digest(),canonical_govengine_record(),signed_artifact_from_record(),verify_signed_govengine_record(), and supporting trust/key-resolver ports. - Refined trust ports and normalized admission artifact references and digests.
- Added local subprocess runner readiness gating with
LocalSubprocessRunnerReadinessandevaluate_local_subprocess_runner_readiness(). The kernel keeps the optional local subprocess runner atnot_applicableuntil explicit host safety prerequisites exist.
- Added governed-runtime operator documentation:
docs/archive/GOVERNED_RUNTIME_MVP_RUNBOOK.md,docs/RUNTIME_ADMISSION.md,docs/INSPECT_ONLY_ADMISSION_WORKFLOW.md,docs/archive/GUARDED_FRESH_RUNTIME_ADMISSION_EXAMPLE.md, and related updates todocs/API_STABILITY_MATRIX.md,docs/API_BOUNDARY.md,PUBLIC_STATUS.md, andREADME.md. - Recorded final roadmap audits, package-validation smoke, and Signposter lifecycle smoke evidence in docs without expanding live-execution claims.
- Strengthened public-truth and documentation hygiene guards in
scripts/validate_public_truth.pyand tests. - Added read-only operator verifier scripts for runner receipt bindings and development JSONL audit ledgers, with bounded outputs, stable exit codes, and focused CLI tests.
- Added the next-alpha release readiness gate, downstream compatibility smoke design, and final roadmap audit decision without publishing, tagging, or adding host runtime imports.
- Added governed-runtime smoke-chain coverage in standalone tests.
- Removed Signposter control-plane artifacts (
docs/roadmaps/,DOCUMENTATION_HYGIENE.md) from the tracked public surface.
- Publishes the
0.12.2a0/0.12.2-alphapackage line oversclite-core>=1.0.1,<1.1after SCLite 1.0.1 audit hardening and downstream Ravenclaw validation. - Tightens guarded-bundle replay freshness from root-tag-only matching to
semantic payload matching over
root_chain_digest, ticket/chain scope, andkey_id, so re-guarding the same payload with fresh nonces does not bypass replay detection. - Adds an explicit execution-gate entry point for runtime-consumable guarded
bundle decisions produced by
verify_guard_and_record_replay(), avoiding hand-mapped guarded/fresh status fields at the host boundary.
- Publishes
0.12.1a1/0.12.1-alpha.1as the guarded-bundle replay gate line oversclite-core>=0.8.0b2,<0.9. - Adds
govengine.replay, a neutral guarded-root replay store helper for already-verified SCLitekernel_guard_hmac_v1sidecars. The helper recordsroot_tag,chain_id, ticket/run id, andkey_idthrough host-supplied JSON state and can reject repeat roots in require-fresh mode without owning HMAC verification, key storage, runtime storage, or public PKI semantics. - Adds
verify_guard_and_record_replay(), the high-level runtime-consumable guarded-bundle flow: SCLite guarded-strict verification first, then GovEngine replay-store recording. The controlled-execution gate can now requireguarded + replay-freshfor runtime-consumable bundles while keeping review-only bundles on the existing review path.
- Publishes
0.12.0a0/0.12.0-alphaas the alpha API-narrowing line. - Removes the optional
security_profile_helperssurface, itsgovengine.security_profilefacade, and Ravenclaw-derived action, tool, policy, scope, signal, analysis, and confirmation helper modules. - Retains neutral scope ports, review, planning, admission, runtime/control, supervision, profile, proof, and SCLite integration boundaries and adds negative tests against reintroducing the retired facade.
- Corrects roadmap current-baseline wording after the published
0.11.0-alphaboundary release and adds public-truth coverage against regressing to the superseded0.10current-line claim. - Aligns contributor maturity wording with the published alpha line, makes the current validation gate precede archived release evidence, and documents why extracted Ravenclaw copyright attribution coexists with GovEngine package maintainer metadata.
- Adds a clean installed-package validation gate and removes active guidance to
use a dependency-polluted system interpreter for
pip checkevidence. - Corrects post-publication drift that still described the published
0.12alpha line as a candidate and mechanically guards that active wording.
- Published the alpha package as
govengine==0.11.0a0on PyPI. - Promotes source/package truth to
0.11.0a0/0.11.0-alphawithsclite-core>=0.8.0a0,<0.9. - Removes
govengine.sclite_adapter, the transitional Ravenclaw-shaped lifecycle assembly seam, after Ravenclaw moved public lifecycle projection into its own runtime boundary. - Retains neutral lifecycle/review result mapping and validates that host-owned projection does not re-enter GovEngine core.
- Promoted source/package truth to
0.10.2a0/0.10.2-alphawithsclite-core>=0.7.0a0,<0.8. - Added a current SCLite lifecycle builder using scoped
execution_ticket.v0.3semantics and receipt-bounded evidence verification. - Removed the legacy v0.1 descriptor from current lifecycle policy output while keeping compatibility builders available during downstream migration.
- Added an integration test that materializes and reviews the current lifecycle through SCLite, without expanding GovEngine ownership of artifact review or runtime execution.
- Added an alpha hygiene guard that rejects Ravenclaw host-context and
RAVENCLAW_*assumptions inside neutral public surfaces, and removed the leftover Ravenclaw context import from the neutral execution-contract module. - Narrowed the optional
security_profile_helpersclaim to compatibility scaffolding instead of presenting Ravenclaw-derived helpers as a neutral SDK. - Renamed the optional tool-registry planner-profile environment default to
GOVENGINE_TOOL_PROFILES, while preserving the legacy Ravenclaw variable as a compatibility fallback.
- Promoted the source line to
0.10.1a0/0.10.1-alpha. - Updated the SCLite dependency and public truth validators to
sclite-core>=0.6.0a0,<0.7. - Kept this as a dependency/documentation/validation sync without adding runtime execution, adapters, storage, schedulers, credentials, or production-readiness claims.
- Promoted the source line to
0.10.0a0/0.10.0-alphaafter public truth, package-build, runtime proof, and Ravenclaw downstream compatibility validation. - Added an alpha-readiness validator that checks package metadata, public surfaces, runtime proof fixtures, neutral governance vocabulary, and alpha non-claims.
- Kept PyPI upload, public tags, carrier adapters, credentials, schedulers, storage, live execution, and production-readiness claims out of scope pending operator approval.
- Added
govengine.contract_proofswith public-safe Ravenclaw and Tecrax runtime proof fixtures over existing planning, supervision, runtime snapshot, review, and change-order contracts. - Added neutral governance vocabulary entries for objective, policy constraints, task plan, runner bounds, runtime snapshot, review result, and change order without changing neutral public API naming.
- Added
runtime_contract_proofsto the public surface registry while keeping adapters, credentials, schedulers, storage, live execution, and new OODA surfaces out of scope.
- Added
govengine.profileswith contract-onlyDomainProfile, registry, capability, runner-profile, policy-hook, evidence-rule, and conformance-report declarations. - Added Ravenclaw security and Tecrax infrastructure-ops fixture profiles to prove profile portability without moving domain taxonomy, product UX, credentials, carrier adapters, or live execution into GovEngine.
- Added
domain_profile_sdkto the public surface registry while keeping profile conformance bounded by existing kernel/profile/SCLite ownership checks.
- Prepared a stabilization release that aligns public status, validation, publishing, roadmap, and API-boundary docs with the
0.7.xsource baseline. - Added a public truth validator for version/dependency/status/surface consistency across package metadata and public docs.
- Hardened neutral-core boundary tests so controlled-execution core no longer depends on optional security-profile helper modules at import time.
- Added
govengine.reviewwith neutralGovEvidenceRequirement,GovEvidenceClaim,GovEvidenceQualification, andGovReviewResultvalidators. - Added receipt-bounded claim qualification that rejects live vulnerability claims when the supporting receipt is only dry-run.
- Added
evidence_review_coreto the public surface registry while keeping SCLite review-bundle verdicts, Ravenclaw finding taxonomy, raw evidence storage, adapters, commands, and live execution host-owned.
- Added
govengine.execution.supervisionwith neutralGovRunnerLease,GovSupervisionPlan, andGovSupervisionDecisionvalidators for bounded runner supervision. - Added request/receipt validation helpers that require approved-spec runner requests, matching receipts, and dry-run/default-deny live backend behavior.
- Added negative validation for raw-intent runner requests, missing approved specs, missing receipts, live backend use without explicit enablement, and forbidden metadata claims.
- Added
govengine.admissionwith neutralGovAdmissionDecision,GovPolicyDecision,GovApprovalRequest, andGovAuditRecordvalidators for host runtime gate records. - Added negative validation for raw targets, raw prompts, commands, credentials, carrier payloads, storage/scheduler/live-execution claims, and admission outcome mismatches.
- Added
admission_policy_coreto the public surface registry while keeping profile policy meaning, operator approval workflow, audit storage/retention, adapters, commands, and live execution host-owned.
- Added
govengine.planningwith neutralGovTaskContract,GovPlanIntentContract, andPlannerPortvalidators for planner-to-runtime handoff shapes. - Added negative validation for raw targets, raw prompts, commands, credentials, storage/scheduler/live-execution claims, and duplicate task-contract IDs.
- Added
planning_contracts_coreto the public surface registry while keeping Ravenclaw security planning semantics, planner implementation, queues, schedulers, adapters, commands, and live execution host-owned.
- Added
govengine.runtime_shellwith neutral control actions, queue lane/snapshot summaries, runtime snapshots, and scheduler tick metadata for host runtimes such as Ravenclaw. - Added deterministic validation for
start,pause,resume,stop,cancel,replan,degrade_to_dry_run,cooldown,retry, andarchivecontrol actions without adding command execution, runtime storage, queue persistence, scheduler ownership, or carrier adapters. - Kept queue/runtime snapshots redaction-bounded and host-owned; GovEngine validates shape and unsafe metadata but does not store, schedule, enqueue, execute, or deliver work.
- Added
govengine.boundary,govengine.orchestration,govengine.events,govengine.state_machine, andgovengine.controlwith serializable kernel/profile/runtime/SCLite ownership contracts, a machine-readable boundary report, a Ravenclaw profile contract, domain-profile conformance checks, deterministic orchestration handoff contracts, neutral governance event envelopes, neutral run-state transitions, between-step control decisions, boundary docs, and negative boundary validation for forbidden profile ownership, forbidden orchestration authority, unsafe event/state/control metadata, command/live-execution claims, or unknown consumed-surface claims. - Kept live execution, queues/schedulers, carrier adapters, credential handling, runtime persistence, and domain product UX outside GovEngine.
- Updated release validation docs and publishing notes for the 0.2 kernel-boundary freeze line.
- Updated the SCLite dependency to
sclite-core>=0.5.1,<0.6. - Added thin SCLite review-bundle bridge helpers that delegate GovEngine integration bundle pass/fail verdicts to SCLite
0.5.1. - Added integration tests for packaged SCLite GovEngine review bundles, including the expected cross-host failure fixture.
- Updated public docs/status/validation notes for the SCLite
0.5.1chain sync and PyPI release.
- Updated the SCLite dependency to
sclite-core>=0.3.5,<0.4. - Added thin GovEngine gates that delegate SCLite v0.3 scoped-ticket semantics and receipt/evidence use-bounds verification to SCLite.
- Added deterministic tests for valid scoped-ticket use and rejection of unbounded execution claims.
- Added deterministic demo signing/verifier ports for host-provided signing/trust examples without adding PKI, key storage, or production identity claims.
- Cleaned README badge order, removed personal ownership copy from public-facing docs, completed package metadata fields, and updated roadmap wording for the published
0.1.5line. - Polished public docs to state the package boundary, security-profile boundary, and deferred adapter/live-execution non-claims more plainly.
- Added
govengine.security_profile, a tested optional-profile facade for action/tooling, policy/scope, and review-contract helpers. - Added allowlisted lazy imports and boundary assertions so hosts can discover security-profile helpers through one entrypoint without pulling neutral core or adapter/live-execution claims into the profile.
- Released the package version for the security-profile facade line after the standard release checklist and operator approval.
- Added a tested public surface registry in
govengine.surfacesthat names the artifact-governance core, controlled-execution core, and optional security-profile helper surface without moving live execution or protocol adapters into GovEngine. - Clarified that action/tool/scope/policy/signal helpers are an optional security profile for hosts such as Ravenclaw, while artifact lifecycle/signing/trust/execution gates remain the neutral core.
- Released the package version for the API surface registry line after the standard release checklist and operator approval.
- Added initial portable artifact-governance boundary objects in
govengine.core. - Added SCLite lifecycle status mapping, lifecycle transition gates, signing/trust bridge helpers, dry-run-only controlled execution gates, deconfliction/change-order helpers, and lightweight artifact state-index summaries.
- Updated public roadmap/API/status docs to keep carrier adapters deferred and document that live execution remains disabled by default.
- Released the package version for the artifact-governance control-gate line after the standard release checklist and operator approval.
- Extracted reusable signal, analysis, and confirmation-evidence policy contracts from Ravenclaw into
govengine.contracts.*. - Added standalone tests for signal promotion bridges, governance-blocked evidence classification, analysis success semantics, and confirmed-evidence gates.
- Prepared the package version for the signal/evidence/analysis contract extraction line. Publication requires the standard release checklist and operator approval.
- Updated the PyPI package description to describe GovEngine as carrier-agnostic governed execution services that consume SCLite contract lifecycle artifacts for policy-gated security automation.
- Calibrated validation, roadmap, publishing, and public-status docs after
govengine==0.1.0PyPI publication.
- Switched SCLite dependency from a Git URL pin to the published PyPI distribution
sclite-core>=0.2.1,<0.3. - Normalized package license metadata to SPDX-style
MIT. - Added
govengine.__version__for package/version checks. - Added OODA receipt/evidence guidance for recording compact governance-control decisions without publishing raw output or private telemetry.
- Added deterministic OODA safety/control primitives:
GovObservation,GovOrientation,GovOodaDecision, andGovOodaController. - Added carrier-neutral runner protocol primitives:
GovRunnerStep,GovRunnerRequest,GovRunnerStepResult,GovRunnerReceipt, andGovRunner. - Added public API envelopes:
GovApiResultandGovApiError. - Kept SCLite imports lazy where needed so GovEngine public surface imports cleanly in standalone checks.
- Documented that carrier adapters remain deferred until the package/release boundary is more mature.
- Initial public extraction scaffold.
- Added importable
govenginepackage, standalone tests, GitHub Actions pytest workflow, and initial architecture/API-boundary documentation. - Added reusable helpers extracted around action validation, policy gateway behavior, approved execution specs, execution-ticket checks, command-shape normalization, dry-run result assembly, scope helpers, and SCLite lifecycle integration seams.