# OMP integration field issues

Status: **bridge experiment retired; native successors tracked** (2026-07-14)

This record closes the field failures observed when `omp-spt` temporarily used
a headless RPC child as the hosted endpoint. ADRs 0008–0013 removed that
topology. The table preserves the paid-for findings without treating the bridge
as a supported or repairable product surface.

## Retired incident findings

| Finding | Native disposition | Status |
|---|---|---|
| Helper executable was indistinguishable from another harness adapter | `omp-spt` is only the adapter helper; `host_binaries` advertises only `omp`, and the launch shim validates the real Oh My Pi executable | Closed by cutover |
| Nested bridge/listener children survived endpoint stop | There is no nested bridge process tree; the extension owns listener teardown inside the native OMP process | Closed by cutover |
| Attached operators saw logs rather than the agent interface | Native OMP owns the broker PTY for every endpoint | Closed by cutover |
| Blocking RPC reads could wedge forever | RPC turn driving is removed; extension submission is event-driven and listener recovery is bounded | Closed by cutover |
| One relay blocked all later deliveries | The extension serializes explicit custody and advances after a reply or reported failure | Closed by cutover |
| Child death was discovered only on the next message | Listener exit is observed directly and starts bounded recovery | Closed by cutover |
| Bare executable lookup could select a collision | Fresh/resume launch share a validating native resolver | Closed by cutover |
| A failed turn emitted an empty reply | A failure outcome is explicit and correlated; it is never converted to an empty success | Closed by cutover |
| Adapter binding trapped a session on the experimental topology | The experimental topology no longer exists; changing OMP sessions requires explicit endpoint relaunch | Closed by cutover |

## Native release blockers

These are the successor checks, not bridge follow-ups:

1. **Custody:** every accepted delivery ends in a correlated answer or explicit
   failure, including OMP submission rejection.
2. **Listener lifecycle:** recovery is bounded; exhaustion performs session-end
   and OMP shutdown, leaving no false-online endpoint.
3. **Session identity:** in-TUI switching is blocked; native resume happens only
   at endpoint launch.
4. **Executable identity:** the resolver rejects a non-Oh-My-Pi `omp`, and the
   adapter helper is never a host match key.
5. **Operator surface:** fresh and resumed endpoints expose the native,
   attachable OMP TUI.
6. **Release boundary:** same-node message/turn/reply behavior is required;
   cross-node transport is not re-tested by the adapter.

## Public-contract status

- **SPT seams:** complete on the published manifest plus `spt api` surface.
- **Relative continuity path:** expressible and supported on spt-core v0.29.0;
  `.spt/` resolves against the endpoint's recorded cwd, not the daemon cwd.
- **OMP skill distribution:** **open public-contract gap.** No OMP-native
  command/skill registration and release path has been proven for this adapter,
  so no skills are shipped. The removed foreign plugin is not a fallback.
- **Cross-node adapter acceptance:** intentionally absent; subnet transport is
  owned and tested by spt-core.

The retired RPC implementation and acceptance test carry no active requirement
evidence.
