Revised 0.9 workflow comparison¶
The before program is the exact
qualified f456958c example, run with its preserved ABI-53 wheel. The
current program runs with the ABI-57 wheel.
Both complete all five tasks in fresh fixtures. The original
0.8 comparison remains available.
Task |
Nonblank lines, before → current |
Caller work removed or retained |
|---|---|---|
Import |
8 → 9 |
Returns both identities; the additional assignment retains the asset ID for later tasks without another query |
Adopt |
9 → 8 |
One path lookup replaces fallible path-to-URI conversion and a locator wrapper; ambiguity and continuation checks remain |
Relink |
21 → 17 |
Verified selection carries evidence and the original base; removes first-member assumptions and copying locator fields |
Output |
27 → 15 |
One output/activity operation replaces separate staging and edge wrappers; uses the retained input ID, actual tool and parameter |
Revisions |
5 → 5 |
The explicit-view bounded scans remain useful and unchanged |
Counts include comments and assertions. They are supporting evidence rather than an acceptance threshold. The before output also incorrectly recorded a provenance input as an authored dependency. Removing that assertion corrects meaning; it is not an API convenience saving. The current harness checks that no dependency observation was invented. A separate scene fixture demonstrates actual authored references.
Relinking now rejects partial verification, missing required members and incomplete search. Selection survives disposal of the native result and view; confirmation stages all locations against its original base. An existing location is a guarded no-op. Commit remains explicit, conflicts remain visible, and database guards do not guarantee unchanged external files.
No convenience operation adds a scan, subprocess or automatic retry. Paths convert once; import/output preparation hashes before taking the write edit; resolution releases its temporary production read before filesystem work. Explicit retained views still have caller-controlled lifetimes. Python metadata reads use scalars and immutable tuples, retaining tags for ambiguous meanings and ordered repeated fields. Jobs and exchange live in discoverable modules; their distinct ownership and deferred-intent capabilities are preserved.
All five surfaces have installed runnable recipes linked from the migration guide. Native contracts and Python regressions cover malformed inputs, incomplete/ambiguous selection, copied evidence lifetime, terminal conflicts, no-op receipts, exact metadata and effect capture/replay. Symbol counts and shorter snippets do not establish those semantics.