Revised 0.9 workflow design

Inspected 2026-10-12 at SDK f456958c. The qualified ABI-53 candidate is unpublished; its checks remain evidence for that source. The selected contracts below are implemented in ABI 57. Integrated qualification is recorded separately from the preserved ABI-53 evidence.

Concepts and public surfaces

Rust domain types, C structs/owners, C++ values and Python UUID hints describe the same knowledge. CLI task commands expose explicit effects. Keep the distinctions below; simplify construction rather than reducing their meaning.

Family

Treatment and integration depth

Production, identity, local storage

Keep as the entry point; distinguish local sharing, handoff and exchange

Internal IDs and object kinds

Keep semantic Rust/native IDs and Python UUID hints; heterogeneous references retain a runtime kind

Host bindings and external identifiers

Keep both directions of association; serialization belongs in first host recipes

Assets and representations

Keep; return the imported representation identity with the asset

Resources and membership

Keep compound content below the ordinary file path

Frames, rates, naming and roles

Keep exact content and location descriptors separate; no per-frame resource expansion

Locators, roots and mappings

Accept paths for file lookup; retain explicit URI/sequence inputs and local mappings

File facts, fingerprints and observations

Keep evidence domains and history; no implicit hashing in reads

Inspection and inventory

Keep optional, explicitly invoked adapters

Known-media lookup and adoption

Consolidate lookup inputs; preserve candidates, continuation and explicit host selection

Resolution and confirmation

Carry copied candidate evidence with the decision base; retain batch/compound decisions

Metadata assertions, keys and values

Add target-wide C++ reads; project only unambiguous Python values, retaining exact tagged alternatives

Vocabulary/identifier registries

Keep advisory and advanced; unknown valid terms round-trip

Rational time and ranges

Keep checked exact arithmetic and explicit frame context

Activities, tools, agents and parameters

Stage outputs and the actual activity together; retain multi-output graph composition

Authored dependencies and observations

Keep separate from provenance; absent, observed-empty and extraction-needed remain distinct

Managed artifacts and explanations

Keep representations with producer evidence; no new artifact identity

Availability and work state

Keep separate from artifact knowledge

Recorded recipe completeness

Clarify wording; retain all missing conditions without implying executable reproduction

Edits, views and detached bases

Consolidate native construction into additive, retained and detached edits

Receipts, revisions, origins and conflicts

Keep own/no-op receipts, terminal attempts and structured conflicts

Queries, pages, scans and cancellation

Keep point/page/view-owned scans; bounds and exhaustion remain separate

Revision feeds and observers

Keep advanced; filtered progress and wakeup-as-hint remain explicit

Jobs, leases and guarded completion

Keep optional; compose completion in the output edit, never on finalization

Proposals and outcomes

Keep advanced; staged proposals and deferred command builders have distinct purposes

Records, checkpoints and passive mirrors

Keep advanced; distinguish replication positions from query/notification cursors

Backends, ownership and errors

Keep domain interfaces and necessary owners; no generic CRUD facade

Standards and host adapters

Keep mappings outside core and host project semantics in each host

Selected task contracts

These contracts are implemented across the five offered surfaces. The migration guide names the removed forms and their replacements.

Task

Canonical direction

Removed caller work

Import

Return asset and original representation IDs from preparation/import

Listing representations to rediscover the imported one

Adopt

Python/C++ lookup accepts a path, exact locator identity or fingerprint

Path-to-URI and locator-wrapper construction; duplicate lookup method names

Relink

Select a representation explicitly; selection carries resource/candidate evidence and the original decision base

First-member assumptions and repeated candidate-field copying

Output

Stage one or more output sources and one actual activity with input roles, tool/agent and parameters

Trivial activity-edge wrappers and separate output/activity assembly

Revisions

Retain bounded scans on an explicitly owned coherent view

No new scan owner or hidden connection

Native edit construction accepts optional origin/message at creation. C++ uses production.edit(context), view.edit(context) or production.edit(base, context). beginTransaction, revision-only construction and separate public context setters are removed; maintained callers use the canonical edit family. Decision bases come from coherent reads, including an empty journal.

Lookup stays read-only. Zero, multiple or incomplete candidates remain explicit; matching bytes never merge logical assets. Relinking requires complete required member coverage and sufficient verification, with cancellation/truncation kept visible. Confirmation is a separate staged write. A detached database decision does not guarantee that external files have stayed unchanged.

Output staging does not invent jobs or authored dependencies. Record dependency observations only after inspecting actual references. Multi-output activities and guarded job completion remain possible in one edit. Staging errors and failed commits cannot leave half-published outputs. Commit stays explicit; uncommitted exit rolls back, and retries require a fresh decision and edit.

Version and verification consequences

Keep package 0.9.0-alpha.1 / Python 0.9.0a1 while unpublished. Native signature/removal changes require ABI/soname and loader-guard updates. Do not bump schema 27, exchange protocol 1 or CLI JSON 1 for projection-only changes. Version an actual encoding change independently. Preserve the original review artifacts and publish new source/checksum evidence separately.

The repository inventory records each maintained caller migration and its source-scoped checks. ABI 57 has 344 exports and 45 layouts. Python moves worker and exchange values into explicit modules and projects unambiguous metadata as scalars and tuples. Relink proposals use the new locator.confirm.v1 command; older decoders reject it. Historical qualification remains limited to its source.

Standards-policy review: these changes alter construction and teaching, not identifier schemes, vocabulary mappings, cardinality or normalization. Preserve unknown values and exact stored data; no new normative mapping is proposed.