Skip to content

Separate the general supervisory kernel from software delivery - #202

Merged
bigboateng merged 9 commits into
mainfrom
refactor/general-supervisory-kernel
Aug 12, 2026
Merged

Separate the general supervisory kernel from software delivery#202
bigboateng merged 9 commits into
mainfrom
refactor/general-supervisory-kernel

Conversation

@bigboateng

@bigboateng bigboateng commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a domain-neutral supervisory kernel with one Program identity, transition relation, freshness law, authority boundary, verification path, recovery state, and receipt contract
  • make software delivery the first domain instance through DeliveryController and boatstack/delivery
  • replace Goal terminology with Objective and remove the retired package and API paths without compatibility shims
  • rewrite the README and document the general-kernel boundary

Original reachable witness

A non-software control request entered the current kernel and reached REPOSITORY_IDENTITY_REQUIRED before any domain program could execute. Equivalent witnesses required coding-host policy, software objectives, repository capabilities, software terminal state, or software receipts. These repository assumptions were kernel preconditions rather than one domain contract.

Root cause

Generic supervisory semantics and software-delivery semantics shared the same packages, facade names, selection path, and freshness representation. A second domain could not supply its own observation and operator without inheriting Git and coding-agent concepts.

Invariant restored

The kernel owns only supervisory mechanism. A domain owns its observations, predicates, operators, effects, and verification rules. Resolve and apply use one canonical relation and one exact freshness envelope. Programs and operators cannot mint authority or escape transition-owned effect facets.

Implementation

  • introduce boatstack/kernel using only the Go standard library
  • compile the complete software program ABI into the same kernel Program fingerprint
  • delegate software ordering, targeted and untargeted selection, marked states, ambiguity, and authority comparison to kernel.Relate
  • bind state, program, snapshot, objective binding, and authority identity into prescriptions
  • move repository-specific internals under internal/softwaredelivery
  • expose DeliveryController, delivery, and sdk.NewProgramClient
  • use Objective terminology throughout; no migration or compatibility aliases are included

Regression coverage

  • deterministic integer program reaches a marked state without Git or a coding agent
  • targeted and untargeted resolution share one relation
  • immediate apply of a prescription succeeds under identical state and context
  • stale state, observation, objective revision, or authority fails before effects
  • missing authority fails closed
  • interrupted operators enter explicit recovery and can reach a marked state
  • repository contracts reject software imports in the kernel and retired parallel paths
  • all existing software-delivery tests remain green

Verification

  • release-note validation: pass
  • Python repository contracts: 31 pass
  • isolated Go suite: 227 pass
  • go test -race ./...: pass
  • go vet ./...: pass
  • go build ./...: pass
  • git diff --check: pass

Locus

Before: drv-9d8547884be74a883721393252056446fa97c707b69aebe8ba2228143a33db2f found six reachable domain-coupling failures.

After: drv-faf7fd91d48e03060c2a1d2e9fd5ae32a847e21fcdbd791b17a4e1a6ff390319 found no reachable forbidden state and zero blocking states across the generic and software slices. The declared-slice event inventory is discharged.

Final review: drv-e738ff92ed678d10b0b68dec906948fba4058372d91b23b5288024a6f2610bb7 found the write-ahead effect, recovery coverage, maintenance objective, and authority-time forbidden states unreachable, with zero blocking states. The declared-slice event inventory is discharged.\n\nReceipt review: drv-e7b0cfa69ed2135272c43052e4b47cdc96bf618f1114146b286b774254193310 found source-bound objective mutation receipts unreachable and zero blocking states. The declared receipt-construction inventory is discharged.\n\nThe claim remains advisory for whole-host provider and operating-system outcomes and for future repository-authored program shapes not yet exercised.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex automated review

Verdict: patch is incorrect
Confidence: 0.98

The new generic runtime has concrete post-effect recovery and state/receipt durability gaps, and its compiler admits a demonstrated blocking recovery relation. Model-level verification is recommended before merge, particularly to ask whether every newly reachable recovery state has an admissible transition from both pre-commit and post-commit modes and whether any recovery path can cycle without a durable fact.

Comment thread boatstack/kernel/runtime.go Outdated
Comment thread boatstack/kernel/runtime.go Outdated
Comment thread boatstack/kernel/program.go
Comment thread boatstack/kernel/program.go Outdated
Comment thread boatstack/delivery_controller.go

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex automated review

Verdict: patch is incorrect
Confidence: 0.99

The patch breaks upgrades from the actual base state schema and can strand the new generic runtime after a recovery transition fails. Model-level verification is recommended before merge. Questions for model-level verification: Can any nested recovery failure enter a state with no eligible recovery transition? Does every real prior durable schema retain a path to the new runtime?

Comment thread boatstack/internal/softwaredelivery/durable/state.go
Comment thread boatstack/kernel/runtime.go Outdated

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex automated review

Verdict: patch is incorrect
Confidence: 0.98

The new generic runtime permits cross-instance prescription replay and accepts a structurally unreachable recovery mapping. Model-level verification is recommended before merge. Question for model-level verification: can any other recovery mapping become blocking because its kernel-owned objective prerequisites are stricter than those of the recovered transition?

Comment thread boatstack/kernel/runtime.go Outdated
Comment thread boatstack/kernel/program.go

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex automated review

Verdict: patch is incorrect
Confidence: 0.98

The patch introduces a release-breaking durable-state incompatibility plus concrete recovery, effect-ordering, objective-binding, and authority-validation defects. Questions for model-level verification: can any remaining recovery transition cycle without durable progress, and can the new generalized priority relation shadow a prerequisite transition? Model-level verification is recommended before merge.

Comment thread boatstack/internal/softwaredelivery/durable/state.go
Comment thread boatstack/kernel/runtime.go Outdated
Comment thread boatstack/kernel/runtime.go
Comment thread boatstack/core/transitions.json Outdated
Comment thread boatstack/kernel/types.go

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex automated review

Verdict: patch is incorrect
Confidence: 0.98

The patch breaks upgrades from the stated base through incompatible durable-state and journal formats, and emits an inconsistent objective-binding receipt for objective mutation. Model-level verification is recommended before merge. Question: after repairing format migration, does every newly reachable recovery state retain a transition that can commit durable progress?

Comment thread boatstack/internal/softwaredelivery/durable/state.go
Comment thread boatstack/internal/softwaredelivery/protocol/journal.go
Comment thread boatstack/internal/softwaredelivery/protocol/receipt.go Outdated
@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex automated review

Verdict: patch is incorrect
Confidence: 0.99

The patch introduces a release-to-release state incompatibility that blocks existing repositories and returns an invalid supervisory program for the manifest-validation construction path. Model-level verification is recommended after these concrete defects are fixed. Question for model-level verification: can the new relation’s priority and authority ordering shadow any permitted recovery transition or leave a newly reachable nonterminal state blocked?

Comment thread boatstack/internal/softwaredelivery/durable/state.go
Comment thread boatstack/delivery/control.go

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex automated review

Verdict: patch is incorrect
Confidence: 0.98

The durable schema change strands repositories created by the base revision, so the patch is not upgrade-safe. Model-level verification is also recommended before merge: can the new relation priority and authority ordering shadow any required prerequisite or recovery transition?

Comment thread boatstack/internal/softwaredelivery/durable/state.go
@bigboateng
bigboateng merged commit b2747d6 into main Aug 12, 2026
16 checks passed
@bigboateng
bigboateng deleted the refactor/general-supervisory-kernel branch August 12, 2026 11:35
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