Skip to main content

internal/infra/pg/extractionpin.go

internal/infra/pg · 64 lines · 6 declarations · source

Declarations​

var ErrExtractionChanged​

var ErrExtractionChanged = errors.New("source extraction configuration changed; use its original configuration or an explicit rebuild")

source

var ErrInvalidExtractionVersion​

var ErrInvalidExtractionVersion = errors.New("invalid extraction identity")

source

var extractionVersionPattern​

var extractionVersionPattern = regexp.MustCompile(`^extract/v2:[a-f0-9]{64}$`)

source

method FactStore.PinExtraction​

func (s *FactStore) PinExtraction(ctx context.Context, schema Schema, scope, source, version string) error

PinExtraction prevents a restart with another model from silently mixing partial outcomes. It commits before inference so even a crash before the first fact retains the accepted identity.

source

func pinExtractionTx​

func pinExtractionTx(ctx context.Context, tx pgx.Tx, schema Schema, scope, source, version string) error

source

func pinLockedExtractionTx​

func pinLockedExtractionTx(ctx context.Context, tx pgx.Tx, schema Schema, scope, source, version string) error

Fact assertion already holds the source lock while validating attribution. Share its lock so the established role refusal stays ahead of provenance writes without another advisory-lock query.

source