Cross-impl action-manifest parity — structural diff + assertion over two
ActionManifests captured via the _testing_action_manifest RPC action.
The action-surface twin of schema_parity.ts: two live impls (the TS
fuz_app spine and the Rust testing_spine_stub) are each other's parity
reference. After both bootstrap, dump each one's live RPC method set, diff,
fail loudly on drift. The diff entries name the specific divergence (a
method only one impl mounts, a per-method auth-axis or side-effect
mismatch) so the error message points at the source.
const manifest_a = await capture_action_manifest(ts_handle);
const manifest_b = await capture_action_manifest(rust_handle);
assert_action_manifests_equal(manifest_a, manifest_b, {a: 'ts', b: 'rust'});Non-coverage: the manifest captures `{method, side_effects, account, actor,
roles, credential_types}` — the wire-relevant auth shape. It does not
capture input/output schemas (the declared-surface wire shape is gated by
rpc_round_trip) nor the protocol actions heartbeat / cancel (excluded
by construction — see action_manifest.ts).