Skip to content

Truss v0.0.45

Choose a tag to compare

@easel easel released this 21 Oct 20:01
· 85 commits to main since this release
d068a2e

ddx:
id: RELEASE-PYTHON-0.0.45
type: release-notes
activity: deploy
status: draft
authoring:
home: repo
links:
- id: truss.implementation-plan
kind: informed_by

Truss v0.0.45

Release scope

2026-10-21 UTC; Python host performance and registration diagnostics for the
Hohfeld T1–T8/W1–W3 request. Cohort: Python3.11+, PostgreSQL18.6,
psycopg3.3.6, Weft0.4.49, UMF0.10.0 and mini-racer0.14.1.
The native identifier remains0.72-candidate; the manifest digest distinguishes
these new SQL bytes. Only fresh current installations are supported.

Audience and channels

Python embedders receive API/adoption instructions in the
package guide and these GitHub release
notes. Operators must retain the matching compiler/runtime cohort and follow
the fresh-install policy.

Highlights and changes

  • Verify immutable runtime files once per process; return fresh manifest copies.
  • Reuse bounded successful compiler results only for identical complete inputs.
    Parameter changes miss; current native authorization still runs on every call.
  • A conditional query-binding observer omits the full source on unchanged
    digest/current-person checks. Conditional reader-catalog semantics remain
    access-aware and current.
  • query_with_catalog_in_transaction returns catalog observation, source bytes
    and digests, and query rows in one operation on the caller's adopted transaction.
    Hosts must adopt this API to replace separate catalog/query transactions.
  • Eligible independent rootless object imports share the native set-based group
    writer and indexed original provenance. Mixed/ineligible records retain the
    per-record behavior. Resource, stale, cancellation and transaction-retry failures
    are not retried by the batch fast path.
  • Weft0.4.49 materializes each native entity-facts helper once per source row,
    retaining nested authority proofs and all outputs.
  • Registration refuses unnamed Records/Fields with all element-specific
    TRUSS-NAME-MISSING diagnostics. The original UMF producer continues to accept
    optional names; no UMF schema or producer changes are made.

Required actions and compatibility

Supply nonempty authored names on every Record and Field before Truss registration.
Pin Weft0.4.49 from the release assets and verify SHA256SUMS. Package replacement
requires a process restart to discard immutable caches. Existing installations
cannot be upgraded in place; no reset or migration is performed automatically.

Migration or rollback guidance

Use the package guide for fresh installation. Hold adoption on authority,
source-preservation or integrity failures. Retain the previous matched release
and its database separately when evaluating this candidate; reverting the package
does not migrate a database created with different runtime bytes.

Qualification and known issues

Local macOS ARM64/PostgreSQL18.6 checks cover exact cache inputs/eviction,
concurrent immutable verification, current permissions and source digests,
read-only combined reads, compiled result parity, indexed provenance, fallback,
no retry, audits and the 153/3,072/3,073-condition bounds. The Weft artifact has
372 affected Rust tests and five native/actual-Chromium byte-parity cases.
Published Linux qualification has its separate workflow receipts.

The frozen historical Hohfeld samples omit names and now have explicit refusal
coverage. Positive sample workflows use separately hashed named fixture
revisions; the original compressed archive is unchanged. The benchmark's
--author-fixture-names option is explicit and records both original/revised
hashes. This does not qualify unchanged unnamed source for registration.

Measured public operation budgets exclude connection, transaction setup,
adoption and settlement: direct key/page/enumeration/catalog-hit/group-preparation
calls use three client statements; the tested single-create uses four; the
three-effect group uses three; compiled and combined reads use11.

The original Hohfeld adapter still uses separate catalog and query transactions.
In100 sequential warm calls under load29.9→22.0, singleton-with-facts p95 was
28.19ms, three-effect action208.51ms, enumeration10.51ms and51-record list13.66ms.
These samples establish neither quiet-host certification nor all proposed latency
targets. The earlier candidate sample with Weft0.4.48 under load12 measured
30.68/70.62/13.01/16.29ms respectively; different loads are not a controlled
compiler comparison. The51-record facts sample improved from315.1 to154.5ms,
with the same limitation. No general10× import claim is made.

ABI1.1 retains the10,000-row complete source-population bound before predicates,
joins, aggregates and LIMIT. Complete-entity related keys retain their100-key
bound. Wildcard duplicate names refuse; explicit aliases/projection lists are
the workaround. EXCLUDE/REPLACE syntax has no selected delivery date.

References and support

See exact evidence and reproduction,
delivery plan
and the issue tracker.