Skip to content

fix: allow model fallback on Claude session limits - #11

Open
LaurensBosscher wants to merge 6 commits into
DevVig:mainfrom
LaurensBosscher:upstream/06-session-limit-fallback
Open

LaurensBosscher wants to merge 6 commits into
DevVig:mainfrom
LaurensBosscher:upstream/06-session-limit-fallback

Conversation

@LaurensBosscher

Copy link
Copy Markdown

Changes

  • Report Claude Code's session-limit notice as a rate-limit error before emitting it as assistant text, so OMP can safely retry on its configured fallback model.

Stacked after #10: this branch includes earlier commits until their PRs merge.

Verification

  • A live request hit the Claude session limit, switched to openai-codex/gpt-6.1-terra, and completed.
  • All 26 local unit tests passed.
  • Local type checking is blocked by missing @earendil-works/* declarations.

omp-install and others added 6 commits September 18, 2026 09:47
Deep @oh-my-pi/* imports fail under OMP 18.2.5 extension loading because
host onLoad only rewrites legacy scopes onto in-process shims. Switch to
@earendil-works root imports (proven on this host) and register
claude-opus-5 so existing modelRoles/fallbackChains keep resolving.
…, Fable 5.1, Mythos) + max effort

Derive the picker from the host's anthropic catalog instead of a hardcoded id
list, keeping the 1M/200K variant entries. Measured [1m] entitlements stay in
tables; unmeasured 1M-capable models default to 200K with a -1m alternate.
Map thinking levels onto each model's catalog effort ladder (adds max).
Fix unsuffixed entries throwing when their preferred window has no runtime.
OMP 18 ends some turns with developer messages (subagent reminders, synthetic
continues). The bridge only read user messages, so it replaced them with
"[continue]" and dropped them from rebuilt history. Treat them as user turns,
matching OMP's anthropic provider; empty ones are skipped.
…session per OMP session

OMP 18 clears each extension source's providers when it creates a session on
the shared ModelRegistry and replays only that instance's registrations. The
re-registration guard made parallel subagents lose the provider entirely
("No API key found for claude-bridge"). Always register; streamSimple still
routes to the first active instance.

Subagents share this module instance, so the single global sharedSession let
parallel sessions resume each other's Claude Code session (cross-talk) and let
a subagent's session_start/shutdown reset the parent's. Key session state by
OMP session id.
@coderabbitai

coderabbitai Bot commented Oct 27, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 9ff80033-240a-4423-a0d8-779706bad453
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-27T09:50:35.846825Z 5ed40d8 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5ed40d8e09

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/index.ts
const allResults = activeQueryContexts.size > 0 ? extractAllToolResults(context) : [];
const resultCtx = allResults.length > 0 ? contextForToolResults(allResults) : undefined;
const isReentrantUserQuery = activeQuery && lastMsgRole === "user" && allResults.length === 0;
const isReentrantUserQuery = activeQuery && lastMsgRole != null && isPromptRole(lastMsgRole) && allResults.length === 0;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Replay developer prompts that accompany tool results

When OMP appends a developer reminder or synthetic continue in the same provider call as a matching tool result, allResults.length > 0 sends the call through the result-delivery path instead of the newly broadened prompt path here. That path's deferral guard at line 1177 still accepts only lastMsgRole === "user", even though extractUserPrompt now accepts developer, so the reminder is neither sent immediately nor added to deferredUserMessages and Claude silently skips it; apply isPromptRole to that guard as well.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant