Skip to content

fix: replace deprecated openai.gpt-5.5 model id; add OCIBucketBackend retry strategy#38

Merged
fede-kamel merged 1 commit into
mainfrom
audit/fix-model-ids-and-oci-retry
May 2, 2026
Merged

fix: replace deprecated openai.gpt-5.5 model id; add OCIBucketBackend retry strategy#38
fede-kamel merged 1 commit into
mainfrom
audit/fix-model-ids-and-oci-retry

Conversation

@fede-kamel
Copy link
Copy Markdown
Contributor

Summary

Two production audit fixes from the 2026 best-in-class assessment.

1. Model id correction — openai.gpt-5.5openai.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:

  • `put_object`
  • `get_object`
  • `delete_object`
  • `list_objects`
  • `get_bucket`
  • `create_bucket`

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

  • All 3,212 unit tests pass (`hatch run test`)
  • `pre-commit run --all-files` clean (ruff lint + format, mypy, codespell, markdownlint, gitleaks)
  • `hatch -e docs run mkdocs build --strict` clean (zero warnings)
  • DCO sign-off
  • `grep -rE "gpt-5\.5" src/ docs/ examples/ README.md` returns zero matches
  • New `test_model_id_consistency.py` catches any future regression

… 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>
@oracle-contributor-agreement oracle-contributor-agreement Bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label May 2, 2026
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>
@fede-kamel fede-kamel merged commit 99c1337 into main May 2, 2026
10 checks passed
@fede-kamel fede-kamel deleted the audit/fix-model-ids-and-oci-retry branch May 2, 2026 14:11
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant