fix: replace deprecated openai.gpt-5.5 model id; add OCIBucketBackend retry strategy#38
Merged
Merged
Conversation
… retry strategy Two production audit fixes from the 2026 best-in-class assessment. 1. Model id correction `openai.gpt-5.5` is not a real model in OCI's catalogue (the actual id is `openai.gpt-5`). The deprecated form had spread across 47 files in docs, examples, and provider docstrings — meaning a new user copying the quickstart would hit ModelNotFoundError on first run. Replaced everywhere; added a regression test (`tests/unit/test_model_id_consistency.py`) that fails if `gpt-5.5` ever reappears. 2. OCIBucketBackend retry strategy The OCI Object Storage checkpointer made every put/get/delete/list call without a retry strategy, so any transient 429 / 5xx / connection error caused an immediate save failure. Now the backend threads `oci.retry.DEFAULT_RETRY_STRATEGY` (exponential backoff + jitter) into all six call sites by default, with an explicit `retry_strategy=` constructor kwarg for override (pass `oci.retry.NoneRetryStrategy()` to disable). Six new unit tests in `tests/unit/test_oci_bucket_retry.py` mock the OCI client and assert the strategy is preserved across put_object / get_object / delete_object / list_objects / get_bucket / create_bucket. Files: 50 changed (47 model-id refs + oci_bucket.py + 2 new test files); all 3,212 unit tests pass; pre-commit clean; mkdocs --strict clean. Audit issues filed for the larger items: #32 (agent.py decomposition), #33 (memory/store.py redesign), #34 (mypy ignore_errors migration), #35 (Anthropic prompt caching), #36 (OpenAI structured outputs at provider layer), #37 (Dockerfile + Helm chart). Signed-off-by: Federico Kamelhar <federico.kamelhar@oracle.com>
fede-kamel
added a commit
that referenced
this pull request
May 2, 2026
…ro + Capabilities + dark-mode diagrams Concept-page rewrites — same template as the provider pages: pitch / when to pick / getting started / capabilities (each runnable) / gotchas / source. Pages sized 74→156, 56→138, 82→148, 68→140, 51→139. Homepage rewrite: - H1 → "Build agents that reason and solve together." (verb-led, two beats, captures both reasoning + multi-agent pillars). - Subhead → "The Oracle Gen AI Multi-Agent Reasoning SDK." (matches the logo wordmark, Oracle-anchored category claim). - Body → reasoning lives inside the loop (Reflexion / Grounding / Causal) + six-shape verb chain (Compose / Orchestrate / Swarm / Handoff / StateGraph / Functional / A2A) + Oracle proof closer. - "Six things you can ship" section — developer-narrative ordering (Reason → Act → Coordinate → Mesh → Decide → Deploy), benefit-led H3 titles, 14–20-line code blocks with real imports + commented output, descriptive concept + tutorial links (no opaque "Tutorial 03" labels). - H1 margin tightened (1.4rem → 0.6rem) so subhead sits closer. - Drop title='travel_concierge.py' from the hero code block. Capabilities page (renamed from "Feature matrix"): - Honest naming — it's a capability list, not a comparison matrix. - New top-of-page Oracle-distinctive admonition (Oracle-red border + sand-tinted gradient + red star icon, defined in CSS) calls out the six wedge features at a glance. - Every section uses the same 3-column table (Feature / What it does / Surface + concept link). Drops the prose dumps. - mkdocs.yml nav label updated. Dark-mode diagrams: - Architecture SVGs (agent-loop, multi-agent-patterns, the per-pattern SVGs under img/patterns/, architecture, sequence-26ai) were authored against a light background; dark-mode rendering hid the dark-grey strokes. Added a near-white card in slate scheme. Model id fix mirrored: openai.gpt-5.5 → openai.gpt-5 in homepage code blocks, README, and openai provider doc. (Same fix shipping in PR #38 across the rest of the codebase.) Signed-off-by: Federico Kamelhar <federico.kamelhar@oracle.com>
4 tasks
fede-kamel
added a commit
that referenced
this pull request
May 2, 2026
…ro + Capabilities + dark-mode diagrams (#29) Concept-page rewrites — same template as the provider pages: pitch / when to pick / getting started / capabilities (each runnable) / gotchas / source. Pages sized 74→156, 56→138, 82→148, 68→140, 51→139. Homepage rewrite: - H1 → "Build agents that reason and solve together." (verb-led, two beats, captures both reasoning + multi-agent pillars). - Subhead → "The Oracle Gen AI Multi-Agent Reasoning SDK." (matches the logo wordmark, Oracle-anchored category claim). - Body → reasoning lives inside the loop (Reflexion / Grounding / Causal) + six-shape verb chain (Compose / Orchestrate / Swarm / Handoff / StateGraph / Functional / A2A) + Oracle proof closer. - "Six things you can ship" section — developer-narrative ordering (Reason → Act → Coordinate → Mesh → Decide → Deploy), benefit-led H3 titles, 14–20-line code blocks with real imports + commented output, descriptive concept + tutorial links (no opaque "Tutorial 03" labels). - H1 margin tightened (1.4rem → 0.6rem) so subhead sits closer. - Drop title='travel_concierge.py' from the hero code block. Capabilities page (renamed from "Feature matrix"): - Honest naming — it's a capability list, not a comparison matrix. - New top-of-page Oracle-distinctive admonition (Oracle-red border + sand-tinted gradient + red star icon, defined in CSS) calls out the six wedge features at a glance. - Every section uses the same 3-column table (Feature / What it does / Surface + concept link). Drops the prose dumps. - mkdocs.yml nav label updated. Dark-mode diagrams: - Architecture SVGs (agent-loop, multi-agent-patterns, the per-pattern SVGs under img/patterns/, architecture, sequence-26ai) were authored against a light background; dark-mode rendering hid the dark-grey strokes. Added a near-white card in slate scheme. Model id fix mirrored: openai.gpt-5.5 → openai.gpt-5 in homepage code blocks, README, and openai provider doc. (Same fix shipping in PR #38 across the rest of the codebase.) Signed-off-by: Federico Kamelhar <federico.kamelhar@oracle.com>
fede-kamel
added a commit
that referenced
this pull request
May 2, 2026
…id fix) Signed-off-by: Federico Kamelhar <federico.kamelhar@oracle.com>
fede-kamel
added a commit
that referenced
this pull request
May 2, 2026
…fix) Signed-off-by: Federico Kamelhar <federico.kamelhar@oracle.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two production audit fixes from the 2026 best-in-class assessment.
1. Model id correction —
openai.gpt-5.5→openai.gpt-5`openai.gpt-5.5` is not a real model in OCI's catalogue (the actual id is `openai.gpt-5`). The deprecated form had spread across 47 files in docs, examples, provider docstrings, and a hero SVG. Net effect: a new user copying the quickstart hits ModelNotFoundError on first run.
Replaced everywhere; added a regression test (`tests/unit/test_model_id_consistency.py`) that fails if `gpt-5.5` ever reappears in `src/`, `docs/`, `examples/`, or `README.md`.
2. OCIBucketBackend retry strategy
The OCI Object Storage checkpointer made every put / get / delete / list call without a retry strategy, so any transient 429 / 5xx / connection error caused an immediate save failure — a real risk in multi-region failover scenarios.
Now the backend threads `oci.retry.DEFAULT_RETRY_STRATEGY` (exponential backoff + jitter) into all six call sites by default. New `retry_strategy=` constructor kwarg lets callers override (pass `oci.retry.NoneRetryStrategy()` to disable for tests).
Six new unit tests in `tests/unit/test_oci_bucket_retry.py` mock the OCI client and assert the strategy is preserved across:
Plus the default-resolution test (`oci.retry.DEFAULT_RETRY_STRATEGY` when none passed).
Companion issues filed
The audit surfaced larger items that need their own PRs:
Test plan