Repository navigation
Conversation
binjamshid
left a comment
There was a problem hiding this comment.
A thorough draft. The RPC framing, process-group teardown, and the launch-arg reservation list are careful. My comments are on the OMP-specific session-copy logic and on scope.
-
Low: the session-copy prefix check assumes
/separators (packages/provider-omp/src/server/adapter.ts:2565).
registerThreadbuilds${host.paths.stateDir}/omp-sessionsby string concatenation and compares withstartsWith(${sessionDir}/). On WindowsstateDiruses backslashes, so if OMP reportssessionFilein native form (I couldn't confirm this), the T3-owned copy will never match. Each resume would then copy the copy under a newsourceIdentityname. Usingpath.joinand comparing normalized paths (orpath.relative) avoids depending on OMP's path format. The fork path at:3418builds its path the same way. -
Low: fork leaves its intermediate copy behind, and the "distinct file" check compares against the wrong file (
adapter.ts:3418-3420,:3467).
forkCopyexists only so OMP can resume from it without touching the source. Afterforkornew_sessionruns, OMP writes a new session file, andforkCopystays inomp-sessionson success and on failure. Over time each fork leaves an orphan file. The checkfile === sourceFilealso can't catch OMP returning the copy it resumed from, so compare againstforkCopytoo. RemovingforkCopyin a finalizer would fix the leak. -
Maintenance: most of the adapter mirrors provider-pi.
adapter.tsis about 3.8k lines, and a rough normalized diff againstpackages/provider-pi/src/server/adapter.tsdiffers in about 1.3k lines. The same goes forrpc.ts,usage.tsandmcpExtensionSource.ts. #11791 declined OMP mainly over maintenance cost. Making OMP a configuration or variant of the pi driver (binary, config root, session-dir rules, the RPC-UI dialog additions), or extracting the shared pieces into provider-core, would shrink this a lot and probably make the upstream case easier.
Process: as the description says, there is no maintainer sign-off on direction yet, and the PR bundles the provider, session import, usage and docs. Splitting import/usage into a follow-up after the provider question is settled may be easier to review.
|
This PR conflicts with See the conflict window. |
|
Note 🤖 Claude Opus 5.5 responding on behalf of Theo Closing. We are not taking new providers from outside PRs. Adding a provider is a product decision that needs maintainer approval before any code is written, and this PR has none. See prior approval. If you want to make the case for this provider, open an Ideas discussion. |
Problem
OMP users cannot select a native OMP provider or import their existing OMP conversations in T3 Code. This adds an opt-in native RPC provider on the current V2 architecture, targeting OMP 18.16.0 or newer.
Change
Adds native model/thinking and command/skill discovery, streaming tools and messages, interactive questions and permissions, T3 MCP tools, background-session settlement, compaction and usage. Session imports are idempotent snapshots; continuation and forks use T3-owned copies so original transcripts remain unchanged. Profile-aware discovery and install-aware version/update actions use the existing T3 service paths. Required shared contracts and client registrations are included; unrelated NetBird work is excluded.
Scope and approval
This revisits #11791 and #11973. #11791 declined bespoke OMP scope and its maintenance burden; #11973 was closed during the V2 rewrite with an invitation to reassess afterward. That invitation is not prior approval of this implementation. We recognize that explicit upstream direction approval is still missing and that draft status does not waive contribution requirements.
Our team is willing to maintain this integration and compatibility fixes as OMP and T3 evolve. This draft presents the concrete implementation for consideration; it does not claim upstream acceptance.
Verification
TMPDIR=/private/tmp vp run check:changed: passed all gates, including 168 tests, 8 compiler tests and affected typechecks for 41 packages. Canonical TMPDIR avoids an existing macOS/varversus/private/varscanner test issue, reproduced separately on the base revision.LIVE_OMP_OK 73, and completed normally.No full integrated web/desktop/mobile UI acceptance or screenshots are supplied yet. Actual OMP upgrade execution and continuity during a live upgrade are untested; no installed provider was updated. Child thread controls/approval forwarding, structured plan/TODO panels, custom terminal UI and live session synchronization are not supported. User documentation describes these limits.
Implemented using GPT-6-Astra through the Codex harness in T3 Code.