Omniscio documentation
Browse all documentation
  1. Getting Started13
  2. Sessions & Agents115
  3. Inbox & Notifications59
  4. Projects & Tasks95
  5. Automation & Scheduling75
  6. Knowledge & Memory26
  7. AI Features60
  8. Integrations100
  9. Plugins & Marketplace33
  10. Cloud & Teams56
  11. Settings & Customization58
  12. Account & Billing28
  13. Troubleshooting84
  14. CLI & API Reference22
  15. Legal & Policies4
  16. Uncategorised22

Shared chat engine for non-Claude sessions (unified turn engine)

Shared chat engine for non-Claude sessions makes Codex, Pi, Gemini, OpenClaw and the other non-Claude engines store and display a conversation the same way Claude does, so their chats look consistent. It has no switch: since 2026-10-02 the shared engine is the only path.

What it is

What it does

Shared chat engine for non-Claude sessions makes Codex, Pi, Gemini, OpenClaw and the other non-Claude engines store and display a conversation the same way Claude does, so their chats look consistent. It lives at Settings → Chat → "Shared chat engine for non-Claude sessions" and is on by default.

The most visible effect: when one of these engines continues a turn on its own (a "self-resume" — for example, after its own background tool finishes and the app re-invokes it), its new reply now opens a fresh chat message instead of being merged onto — and hiding — the previous reply. That hidden-final-message glitch, and the older "the dot stays amber while the engine is still typing" glitch, are what this fixes.

Claude is the gold standard the others are being brought up to. Claude itself is not changed by this toggle yet — it moves onto the same shared engine last, behind the same switch, so its hard-won behavior can always be restored instantly.

Where to find it

Settings → Chat — the toggle Shared chat engine for non-Claude sessions.

How it behaves

Why it exists

Each non-Claude engine used to run its own stripped-down copy of Claude's turn logic, which is why their chats rendered rougher and kept hitting the same class of bug. The shared engine routes them all through ONE "seal a turn" step that writes the same turn information Claude writes — so a fix lands once, for every engine.

Turning it off (rollback)

Not possible, and that is deliberate. The Settings toggle and the AMC_DISABLE_UNIFIED_TURN_ENGINE=1 kill switch were REMOVED on 2026-10-02 (Slice 8 A2). Both kept a second, older seal body alive as the thing to revert TO, and that body was never the one production ran — it had been unreachable since this feature went live on 2026-06-14. A route nobody runs is not a rollback; the rollback for a deleted route is a git revert.

For agents

Under the hood (for agents with repo access)

  • No setting and no flag: the seal has ONE path since Slice 8 A2. The fork that chose between the shared finalize and the legacy bare row, and the unified-turn-engine-flag.ts module behind it, are deleted.
  • The shared "seal a turn" leaf is external-turn-finalize.ts (finalizeExternalTurnRow
    • buildExternalTurnMetadata). The self-resume "new turn" marker (metadata.turnBoundary) is armed in maybeResumeOnStream — on a needs_you bounce ONLY, never a stalled mid-turn bounce — in base-external-session-manager.ts.
  • Invariants the-unified-turn-path-is-a-kill-switch–no-new-hardcoded-provider-branch in provider-registry-contract.md; program tracker docs/plans/2026-06-11-unified-turn-lifecycle-design.md.

Related

Switching providers explains how a non-Claude engine is chosen in the first place, and AI providers is the landing page for the full provider matrix; this page covers how that conversation is then stored and displayed. The provider's own CLI keeps its own transcript.

Last verified 2026-10-06