Skip to content

Releases

TTX 0.5.1

Choose a tag to compare

@MatthewKaes MatthewKaes released this 29 Oct 09:55

TTX 0.5.1 replaces legacy graph retention with synchronous transactional observation and adds Selection for provider-owned, consumer-context visitation. Stateful ownership and release now belong to typed contracts, while None is the Constant closed graph dead end.

This release also adds the Simulacra architecture reference, strengthens graph observation invariants, makes AMD64 canonical-form fixtures explicit, and restores Web validation.

The Graph ABI changed from 0.5.0. Providers and consumers must upgrade together.

TTX 0.5.0

Choose a tag to compare

@MatthewKaes MatthewKaes released this 28 Oct 06:32

TTX 0.5.0 sharpens the core graph boundary now used by Coherence, Compute and Godot.

Native C++ values can project into an Abstract through Graph::Projection, while portable domain contracts remain independently negotiated. Human readable metadata is available through Describe. Type and callable models now live above TTX in Coherence, keeping the TTX graph open to other identity systems.

Changes:

  • Add Graph::Projection for native C++ recovery, graph reentry and generated Abstract operation tables.
  • Add Describe for optional names and documentation without assigning route, uniqueness or type identity.
  • Remove the type-specific Callable capability from the TTX core. Consumers requiring type and callable reflection use Coherence.
  • Preserve the independence of support signals and bindable contracts in projected providers.
  • Update the build to Toolchain 0.5.0 and Perimortem 0.5.0.
  • Package static and shared SDKs for Linux, Windows and Wasm.

Validation includes the complete 132-test Debug suite, Release benchmarks, source builds, formatting policy and SDK packaging. Native runtime validation was performed on Linux. Windows and Wasm artifacts were cross-compiled and packaged.

This is a new package revision with public API removals. Existing 0.4.1 artifacts remain unchanged.

TTX 0.4.1

Choose a tag to compare

@MatthewKaes MatthewKaes released this 24 Oct 04:09

TTX 0.4.1 makes retained cleanup outcomes explicit across C and C++ boundaries and updates the build dependency to Toolchain 0.4.2.

Main update:

Retained release returns Success or CleanupFailed. Both outcomes consume the acquisition and end access through its associated interfaces. Independent acquisitions remain valid. Providers report cleanup required by dependent resources through the same result, which remains usable after provider state has been released.

Features:

  • Return a value status from the C Retained release operation and a typed status from the C++ interface.
  • Assign new Retained and Retain UUIDs for the revised callable contract. Providers and consumers must negotiate the new UUIDs before using the returned status.
  • Keep release failure separate from binding and data-transfer outcomes.
  • Use Toolchain 0.4.2 for composed SDK runtime and host-provided link-interface support.
  • Distribute static and shared SDKs for Linux, Windows and Wasm with matching Perimortem dependency linkage.

This is a new package revision. Existing 0.4.0 artifacts remain unchanged. Native Windows execution remains unvalidated.

TTX 0.4.0

Choose a tag to compare

@MatthewKaes MatthewKaes released this 22 Oct 03:19

TTX 0.4.0 establishes the Data, Semantic and Graph layers for composing independently developed systems through explicit contracts.

Main update:

The bootstrap follows a single path: load a published Storage record, validate and transfer its Query API, then negotiate an Abstract or another callable contract. Data performs representation checks and transfer, Semantic negotiates complete callable APIs, and Graph provides route navigation and UUID binding. Providers interpret their own opaque context; consumers preserve each API's supplied context and operations.

Features:

  • Compile canonical representations at build time or runtime, with runtime Representation values owning their descriptor storage.
  • Keep the C data records separate from the C++ interfaces while sharing their underlying descriptor arrays.
  • Validate data layout, callable signatures and calling conventions before transferring a complete API record.
  • Negotiate callable contracts through Query without requiring a transport session or implicit lifetime management.
  • Replace the Concept layer with Graph. Abstract exposes supports, bind, resolve_route, visit_routes and get_state; typed payload operations belong to independently bound contracts.
  • Establish the Abstract ABI during Semantic bootstrap, then bind Graph contracts by UUID and their agreed C records.
  • Provide reserved None and Unknown results, with explicit rules distinguishing graph state from negotiation status.
  • Preserve the binding location through provider-supplied get_abstract operations, including providers that compose different context layouts and operation tables.
  • Keep Constant selection, Ordered visitation and Retain/Retained lifetime contracts independent. Create, Callable, Import and Export compose through the same graph model.
  • Package Data, Semantic and Graph header components with shared and static libraries for Linux, Windows and WebAssembly.
  • Bundle matching Perimortem dependencies: static TTX uses Perimortem's static archive, while shared TTX includes its shared runtime dependency.
  • Use Core::Identity::Uuid from Perimortem 0.4.0, removing TTX's dependency on Serialization. SDK packaging uses Toolchain 0.4.1.

This release changes the public API and Abstract ABI. Consumers using the earlier Concept and transport interfaces must migrate to the Data, Semantic and Graph contracts.

Native Windows execution has not yet been validated.

TTX 0.1.0

Choose a tag to compare

@MatthewKaes MatthewKaes released this 27 Sep 21:58

TTX 0.1.0 provides the Data, Semantic and Concept contracts used by Tetrodotoxin.

The SDK includes C and C++ headers, source, and shared libraries for Linux x86_64-v3, Windows x64 MSVC and Wasm32 Emscripten. The Windows archive includes its import library. SHA256 checksums are supplied for all five archives.

All transport consumers share one Data interface. Flow exposes consumer/provider UUID pairs, and Block providers write directly into each operation's Storage.

Use the Toolchain 0.2.0 and Perimortem 0.1.0 pins in MODULE.bazel, then add TTX to that SDK extension:

sdks.release(
    name = "ttx",
    project = "TTX",
    version = "0.1.0",
    archives = {
        "headers": "05a389c9cc3a2a896614c0c8776778bec8e68ed801cd0c5d1796b147c534ee61",
        "linux-x86_64-v3": "7603d82082c5c1f9865b3416d5cc003655408eeaea399481dac80849f59e4526",
        "windows-x86_64-msvc": "f4975cf5e3a3b13b20069bedd47794a4580d76f3c40f0ea4ff5e7f7855c785d3",
        "wasm32-emscripten": "f7f1cc60e84b84bec11578a0bb3154a063f54e9736ca51fc6327d08f081afdf1",
    },
    deps = ["@perimortem"],
)
use_repo(sdks, "ttx")

Linux requires x86-64-v3 with RDRAND and the glibc 2.35 baseline. Wasm libraries require their Emscripten host runtime.

Validation: all 129 tests pass in default and release configurations against the published dependencies. The source archive also passes all 129 tests without local module or repository overrides. All three target SDKs build. Windows and Wasm runtime execution was not part of this validation.