Goal
Deliver first-class Pi and OMP structured Native Chat on current Orca architecture using one shared Pi-family provider implementation.
The project is now a re-port, not a continuation of the old #22–#30 implementation series.
Canonical design: #20
Prototype/reference implementation: #51
Pi upstream tracking: stablyai#21558
OMP upstream tracking: stablyai#22650
Architectural boundary
The project follows one rule:
We own Pi/OMP semantics; upstream Orca owns the generic structured-provider lifecycle.
Do not write the real Pi/OMP providers until we have selected and proven the upstream generic provider contract.
Why the epic was reset
The original child plan (#22–#30) targeted an older Orca structured-session architecture and assumed this fork would own:
- provider-router widening;
- durable provider handle plumbing;
- process lifecycle;
- journal/timeline translation;
- restart/handoff scaffolding.
Upstream Orca is now actively generalizing those areas for third providers. Continuing the old implementation would create a competing provider framework and a large long-term fork surface.
The old issues are retained as historical implementation/specification references but are superseded by #52–#59.
Current execution plan
Phase 0 — choose the upstream architecture before provider implementation
Gate: no real Pi/OMP provider integration until #54 passes through the real StructuredAgentSessionHost.
Phase 1 — provider protocol semantics
These issues should remain mostly independent of generic Orca journal/UI internals.
Phase 2 — real provider
Phase 3 — integration and upstream readiness
Dependency graph
#52 sync
↓
#53 choose upstream generic contract
↓
#54 fake-provider conformance spike
↓
#55 Pi-family RPC transport
↓
#56 Pi/OMP dialect + history + version policy
↓
#57 real Pi-family provider
↓
#58 controls/interactions/restart hardening
↓
#59 integration/cleanup/upstream readiness
#55 may begin exploratory pure-protocol work while #54 is finishing, but no production Orca-facing provider wiring should precede the #54 contract decision.
Upstream work to monitor
At the start of each child issue, re-check whether these have merged or materially changed:
Also track:
Do not build compatibility wrappers around an upstream draft that has already been superseded. Re-evaluate at the start of each phase.
PR #51 status
PR #51 demonstrated useful provider behavior but is not the merge plan.
Treat it as a reference for:
- Pi-family protocol behavior;
- OMP edge cases;
- history semantics;
- dispatch reliability;
- test scenarios.
Do not transplant its generic Orca lifecycle/journal architecture unless #53 explicitly finds that current upstream still requires it.
Epic invariants
- Pi and OMP remain distinct durable providers backed by one shared Pi-family implementation.
- Native Chat does not route through
orca-pi or plugin IPC.
- Generic Orca provider infrastructure is reused rather than duplicated.
- Provider request/result correlation is exact and fail-closed.
- OMP whole-session quiescence uses the modern provider contract, not terminal
agent_end alone.
- Unknown delivery is never automatically resent.
- Restart settlement uses provider evidence.
- Existing Pi terminal behavior and OMP terminal/transcript Native Chat remain functional.
- Same-session structured↔TUI handoff is out of the initial scope.
- Claude/Codex semantics must not be weakened.
Superseded implementation series
The following issues describe the previous architecture and are closed as superseded:
They remain useful historical detail, especially for requirements and tests, but are not execution dependencies.
Epic completion criteria
Goal
Deliver first-class Pi and OMP structured Native Chat on current Orca architecture using one shared Pi-family provider implementation.
The project is now a re-port, not a continuation of the old #22–#30 implementation series.
Canonical design: #20
Prototype/reference implementation: #51
Pi upstream tracking: stablyai#21558
OMP upstream tracking: stablyai#22650
Architectural boundary
The project follows one rule:
Do not write the real Pi/OMP providers until we have selected and proven the upstream generic provider contract.
Why the epic was reset
The original child plan (#22–#30) targeted an older Orca structured-session architecture and assumed this fork would own:
Upstream Orca is now actively generalizing those areas for third providers. Continuing the old implementation would create a competing provider framework and a large long-term fork surface.
The old issues are retained as historical implementation/specification references but are superseded by #52–#59.
Current execution plan
Phase 0 — choose the upstream architecture before provider implementation
Gate: no real Pi/OMP provider integration until #54 passes through the real
StructuredAgentSessionHost.Phase 1 — provider protocol semantics
These issues should remain mostly independent of generic Orca journal/UI internals.
Phase 2 — real provider
Phase 3 — integration and upstream readiness
Dependency graph
#55 may begin exploratory pure-protocol work while #54 is finishing, but no production Orca-facing provider wiring should precede the #54 contract decision.
Upstream work to monitor
At the start of each child issue, re-check whether these have merged or materially changed:
Also track:
Do not build compatibility wrappers around an upstream draft that has already been superseded. Re-evaluate at the start of each phase.
PR #51 status
PR #51 demonstrated useful provider behavior but is not the merge plan.
Treat it as a reference for:
Do not transplant its generic Orca lifecycle/journal architecture unless #53 explicitly finds that current upstream still requires it.
Epic invariants
orca-pior plugin IPC.agent_endalone.Superseded implementation series
The following issues describe the previous architecture and are closed as superseded:
They remain useful historical detail, especially for requirements and tests, but are not execution dependencies.
Epic completion criteria