Skip to content

Resident components

The NOW Extension performs only work that must run in a foreign application context. The PowerPC application is the sole reader of foreign memory and exposes the result to the rest of the product. The extension is optional: the application must report an unavailable plane honestly and keep non-resident features usable.

The public feature coverage matrix starts with user outcomes. This page owns the deeper P0–P8 execution, memory, shared-header, bake, and recovery contracts.

flowchart LR F["Foreign application context"] -->|"bounded resident callbacks"| X["NOW Extension"] X -->|"versioned peek table"| P["NOW PowerPC application"] P -->|"validated facts and acts"| W["Wire contract"] P -.->|"extension absent: unavailable, not fabricated"| W

Text equivalent: resident callbacks observe or act in the foreign application, write a versioned shared table, and the NOW application validates and reads it before publishing results. Without the extension, the application reports unavailability rather than emulating resident state.

contract/peek_table.h is compiled by every reader and writer, with layout assertions. contract/resident_version.h owns the one release identity shared by the memory table and the resident liveness connection. The major version is an exact compatibility boundary; the minor version is the monotonically increasing release sequence within that boundary.

A change to ext/, either shared contract header, or resident behavior must advance that tuple and have an exact-source bake receipt before landing on main. The main-reference gate evaluates the proposed tree itself; a written deferral may permit a branch checkpoint but never the landing.