Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
PostProject 0.9.0-alpha.1 · ABI 57
← postproject.org PostProject 0.9.0-alpha.1 · ABI 57

Start here

  • Start here
  • The core model

Guides

  • Using PostProject
    • Portable production workflow
    • Try an integration or demonstration
    • Image sequences and spanned media
    • Metadata and provenance
    • Why is this output marked stale?
  • Integrator guide
    • Install a release without Cargo
    • Package PostProject in a Flatpak
    • C quickstart
    • C++ quickstart
    • Python quickstart
    • Create a production and import media
    • Move an integration from 0.8 to 0.9
    • Host-object bindings
    • Media roots and resolution
    • Fingerprints, verification, and inventory
    • Adopt media already known to a production
    • Compound-media integration
    • External identifiers
    • Metadata vocabularies
    • Provenance integration
    • Dependency integration
    • Artifacts and staleness
    • Jobs and workers
    • Reference local executor
    • Bounded queries and cursors
    • Consuming the revision feed
    • Exchange portable production knowledge
    • Coherent reads and scoped edits
    • Base revisions and semantic conflicts
    • Share one production between local applications
    • Native host actions and cleanup
    • Publishing through OpenAssetIO
  • Concepts
    • Identity
    • Assets, representations, resources, and locators
    • External identifiers
    • Rational time and ranges
    • Metadata assertions
    • Production provenance
    • Revisions and semantic events
    • Dependency relationships
    • Artifact knowledge and reproducibility
    • Jobs and production work
    • Standards boundaries

Reference

  • Reference
    • C API
    • C++17 API
    • Python API
    • Rust implementation reference
    • CLI output
    • Compiled and tested examples
    • Terminology
    • Metadata vocabulary registry
    • Standards mapping matrix

Project & engineering

  • Project and engineering documentation
    • Contributor guide
      • Content-structure invariants
      • Metadata model rules
      • Provenance model rules
      • Standards policy
      • API safety audit
      • API safety repository inputs
      • Schema 27 exchange measurements
    • Architecture
    • Domain model
    • Media resolution
    • Persistence
    • Testing
    • Benchmarks
    • Compatibility evidence
    • Fuzzing
    • Portable exchange protocol
    • Exchange implementation inventory
    • Commercial host feasibility
    • API ergonomics audit
    • Revised 0.9 workflow design
    • Python API measurements for 0.9
    • Revised 0.9 workflow comparison
    • Releases and compatibility
      • ABI policy
      • Release checklist
      • Roadmap
      • PostProject 0.9 / ABI 57 qualification
      • PostProject 0.9 development qualification
      • PostProject 0.8 qualification
      • PostProject 0.8 exchange conformance
      • PostProject 0.8 compatibility evidence
      • PostProject 0.7 candidate acceptance
      • PostProject 0.7 compatibility evidence
      • PostProject 0.6 candidate acceptance report
      • Release 0.6 integration findings
      • Compatibility-family usage evidence
      • PostProject 0.6 compatibility decision
      • Release 0.5 acceptance report
      • PostProject 0.5 integration findings
      • PostProject 0.5 evidence review
      • Compatibility-family usage evidence
      • PostProject 0.5 compatibility decision
      • PostProject 0.5 Ardour pilot evidence
      • Release 0.4 acceptance report
      • Release 0.4 integration findings
      • Release 0.3 acceptance report
      • Release 0.3 integration findings
      • Release 0.3 standards-impact check
      • Release 0.2 acceptance report
      • Release 0.1 acceptance report
    • Architecture decision records
      • ADR 0001: Project naming
      • ADR 0002: Internal and external identity
      • ADR 0003: Compound media model
      • ADR 0004: Standards-aware metadata
      • ADR 0005: Activity-based provenance
      • ADR 0006: Rational time
      • ADR 0007: Revision and event model
      • ADR 0008: Python binding over the C ABI
      • ADR 0009: Explicit SQL without an ORM
      • ADR 0010: OpenAssetIO boundary
      • ADR 0011: Host-object binding
      • ADR 0012: Root container naming
      • ADR 0013: Namespace policy
      • ADR 0014: Native concurrency contract
      • ADR 0015: Availability semantics and collection fingerprints
      • ADR 0016: Documentation site generator
      • ADR 0017: Portable root identity
      • ADR 0018: Discovery index location
      • ADR 0019: Media inspection boundary
      • ADR 0020: Integration-preview compatibility tier
      • ADR 0021: Fingerprint observations and activity snapshots
      • ADR 0022: Managed-artifact state and staleness
      • ADR 0023: Job model and execution boundary
      • ADR 0024: Dependency relationships
      • ADR 0025: Reference local executor
      • ADR 0026: Domain query cursors
      • ADR 0027: Change delivery
      • ADR 0028: Comparable and foreign fingerprint domains in resolution
      • ADR 0029: Content fingerprints and observation for hosts
      • ADR 0030: Canonical locator spelling for hosts
      • ADR 0031: Resolution scope, budgets, batches, and cancellation
      • ADR 0032: C++ error reporting without exceptions
      • ADR 0033: Propagating C++ results
      • ADR 0034: A warning-free C++ header in host builds
      • ADR 0035: Reporting the outcome of a content observation
      • ADR 0036: Readable C++ metadata values
      • ADR 0037: Media sources for import and representations
      • ADR 0038: Image-sequence file names belong to the locator
      • ADR 0039: Platform wheels carrying the native library
      • ADR 0040: ABI usage evidence and compatibility families
      • ADR 0041: Known-media adoption
      • ADR 0042: Semantic optimistic write conflicts
      • ADR 0043: Local shared productions
      • ADR 0044: Closed transaction guard ownership
      • 0045: Coherent read views and atomic commit receipts
      • 0046: Python identity hints and explicit object references
      • 0047: Local query cursor scope and lifetime
      • 0048: Immediate native option and token validation
      • 0049: Native semantic identities
      • 0050: Bounded revision-event reads
      • 0051: Closed job-state projections
      • 0052: Mergeable metadata and destructive decisions
      • 0053: Fresh bounded media-root reads
      • 0054: C++ dynamic reference values
      • 0055: CLI dependency submission outcomes
      • 0056: Decision-bound content observations
      • 0057: Authority-controlled job leases
      • 0058: Job input decisions
      • 0059: CLI output and error categories
      • 0060: Bounded convenience reads
      • 0061: Representation content values
      • 0062: Artifact result alternatives
      • 0063: Resolution outcome values
      • 0064: Binding boundary error categories
      • 0065: Portable knowledge exchange
      • 0066: Preserve incomplete development history during resynchronization
      • ADR 0067: Native portable exchange projection
      • 0068: Python asset scans belong to a retained view
      • 0069: Atomic C++ resolution configuration
      • 0070: One Python edit type covers staged writes
      • 0071: Python metadata accepts unambiguous native inputs
      • 0072: Native resolution options are created atomically
      • 0073: Single files stage directly from native paths
      • 0074: One commit operation returns its receipt
      • 0075: CLI decisions use one production-scoped token
      • 0076: C++ target-wide metadata reads
      • 0077: Canonical known-media lookup inputs
      • 0078: Completed output registration does not require a job
      • 0079: Import returns the actual representation identity
      • ADR 0080: Create edits with their decision and attribution
      • 0081: Stage produced media and its actual activity together
      • 0082: Carry verified relink choices with their coherent decision
      • 0083: Use ordinary Python values for exact metadata reads and writes
      • 0084: Discover worker and exchange values in explicit Python modules
Back to top
View this page
Edit this page

0082: Carry verified relink choices with their coherent decision¶

Status: accepted for development C ABI 57.

Relink callers repeat confidence checks and copy resource IDs, candidate URIs, roots and sequence naming. Counting candidates alone loses search completeness and the distinction between presence, sampled evidence and verified content.

Add an explicit verified selection on a representation resolution. It returns copied locations and the original coherent decision base. Selection requires complete required content, one fully verified candidate for every required resource and no truncated or failed search. Unavailable or unverified optional members remain in diagnostics and are omitted from the selection. Multiple representations always require the caller to name the representation.

Selection reads recorded results; it performs no additional scan or media I/O. Confirmation validates the edit’s original decision base and prepares every locator before staging any. An already recorded resource/URI/naming identity is a guarded no-op and keeps its annotations. Commit stays explicit. Copied selections outlive the read view and native result owner. Database guards do not make filesystem changes atomic or replace host association/generation checks.

Keep explicit locator confirmation for independently reviewed or manually supplied locations; it has a distinct policy and does not assert verification. Host-specific sampled policies remain explicit: Kdenlive additionally checks its own clip hash; Blender and Ardour may reuse already recorded sampled file addresses; sequence pilots require complete frames before accepting sampled collection evidence. None of these cases is a fully verified SDK selection. Batch resolution and all diagnostics remain available. Native resolution captures its decision and storage inputs from one coherent view, then releases the view before scanning or hashing.

ABI 57 adds borrowed selection/location structs and selection/confirmation operations; loader guards and installed consumers change together. Schema 27, exchange framing major 1 and CLI JSON 1 are unchanged. Deferred proposals use versioned command kind locator.confirm.v1; older decoders reject this kind as unsupported. Existing command/record encodings are unchanged, and replay captures only newly added locators. No-op confirmation retains its locator-set guard through submission. Standards-policy review: no identifier, vocabulary, normalization or standards mapping changes.

Next
0083: Use ordinary Python values for exact metadata reads and writes
Previous
0081: Stage produced media and its actual activity together
Copyright ©
Made with Sphinx and @pradyunsg's Furo