Internal

internal/app/finalize

Package finalize owns the host-facing accountability finalization use case.

import "github.com/nilstate/scafld/v2/internal/app/finalize"

Package finalize owns the host-facing accountability finalization use case.

Functions

func Run(ctx context.Context, snapshotter Snapshotter, acceptanceRunner AcceptanceRunner, signer Signer, input Input) (Output, error)

Source: internal/app/finalize/finalize.go:101

Run executes deterministic snapshot and acceptance checks, then calibrates the accepted review evidence and mints a receipt. The model review itself is deliberately outside this use case and must already be present in input.

Types

type AcceptanceRunner

Source: internal/app/finalize/finalize.go:25

AcceptanceRunner evaluates declared acceptance criteria.

type AcceptanceRunner interface {
	Evaluate(context.Context, acceptance.EvaluateInput) (acceptance.EvaluateOutput, error)
}
Methods
  • Evaluate func(context.Context, acceptance.EvaluateInput) (acceptance.EvaluateOutput, error)

type FileFact

Source: internal/app/finalize/finalize.go:63

FileFact carries the per-file snapshot facts the reviewer evidence reuses, so review does not re-list and re-hash the tree the snapshot already walked.

type FileFact struct {
	Path   string
	Status string
	SHA256 string
}
Fields
  • Path string
  • Status string
  • SHA256 string

type Input

Source: internal/app/finalize/finalize.go:70

Input configures one gate run.

type Input struct {
	TaskID          string
	SessionID       string
	Scope           []string
	BaseRef         string
	Review          ReviewEvidence
	SpecFingerprint string
	HostUnderReview receipt.HostUnderReview
	Independence    receipt.Independence
	Criteria        []acceptance.Criterion
	WorkDir         string
	Env             []string
	Timeout         time.Duration
	IdleTimeout     time.Duration
	PriorLedgerHead string
	MintedAt        time.Time
}
Fields
  • TaskID string
  • SessionID string
  • Scope []string
  • BaseRef string
  • Review ReviewEvidence
  • SpecFingerprint string
  • HostUnderReview receipt.HostUnderReview
  • Independence receipt.Independence
  • Criteria []acceptance.Criterion
  • WorkDir string
  • Env []string
  • Timeout time.Duration
  • IdleTimeout time.Duration
  • PriorLedgerHead string
  • MintedAt time.Time

type Output

Source: internal/app/finalize/finalize.go:89

Output is the structured gate result.

type Output struct {
	Verdict      string
	Acceptance   acceptance.EvaluateOutput
	Findings     []review.Finding
	Receipt      *receipt.Envelope
	Independence receipt.Independence
	Reason       string
}
Fields
  • Verdict string
  • Acceptance acceptance.EvaluateOutput
  • Findings []review.Finding
  • Receipt *receipt.Envelope
  • Independence receipt.Independence
  • Reason string

type ReviewEvidence

Source: internal/app/finalize/finalize.go:32

ReviewEvidence is the accepted result of the independent review already recorded in the session ledger. Finalization consumes this evidence; it never invokes a provider or re-runs a model review.

type ReviewEvidence struct {
	Dossier    review.Dossier
	Provenance []receipt.Provenance
	Ignored    []string
	Reviewer   receipt.Reviewer
}
Fields
  • Dossier review.Dossier
  • Provenance []receipt.Provenance
  • Ignored []string
  • Reviewer receipt.Reviewer

type Signer

Source: internal/app/finalize/finalize.go:40

Signer signs the canonical receipt body.

type Signer interface {
	Sign(receipt.Body) (receipt.DetachedSignature, error)
}
Methods
  • Sign func(receipt.Body) (receipt.DetachedSignature, error)

type Snapshot

Source: internal/app/finalize/finalize.go:51

Snapshot captures the deterministic tree facts included in the receipt.

type Snapshot struct {
	TreeSHA           string
	BaseCommit        string
	HeadCommit        string
	FileDigests       map[string]string
	Files             []FileFact
	IgnoredUnreviewed []string
	Deleted           []string
}
Fields
  • TreeSHA string
  • BaseCommit string
  • HeadCommit string
  • FileDigests map[string]string
  • Files []FileFact
  • IgnoredUnreviewed []string
  • Deleted []string

type SnapshotInput

Source: internal/app/finalize/finalize.go:45

SnapshotInput scopes the tree fingerprint.

type SnapshotInput struct {
	Scope   []string
	BaseRef string
}
Fields
  • Scope []string
  • BaseRef string

type Snapshotter

Source: internal/app/finalize/finalize.go:20

Snapshotter computes the commit-free tree facts reviewed by finalization.

type Snapshotter interface {
	Snapshot(context.Context, SnapshotInput) (Snapshot, error)
}
Methods
  • Snapshot func(context.Context, SnapshotInput) (Snapshot, error)