Skip to content

fix(storage): promote item_json and link_id to default schema + migration V12#1416

Open
khoaatra wants to merge 10 commits into
lightseekorg:mainfrom
khoaatra:fix/conversation-item-canonical-payload-and-ordering
Open

fix(storage): promote item_json and link_id to default schema + migration V12#1416
khoaatra wants to merge 10 commits into
lightseekorg:mainfrom
khoaatra:fix/conversation-item-canonical-payload-and-ordering

Conversation

@khoaatra
Copy link
Copy Markdown

@khoaatra khoaatra commented Apr 29, 2026

Description

Problem

Two correctness bugs exist in the normalized conversation item storage path:

  1. Wrong OpenAI shape on readback for reasoning items. Output items whose item_type != "message" are persisted by stuffing the entire item JSON into the CONTENT column. On readback, only a fixed allow-list of types (mcp_call, mcp_list_tools, function_call, function_call_output) is reconstructed back to the OpenAI shape. reasoning is missing from the list, so /v1/conversations/{id}/items returns {"id":"rs_…","type":"reasoning","content":{…full nested item…},"status":"completed"} instead of the OpenAI canonical {"id":"rs_…","type":"reasoning","summary":[]}. This breaks schema compatibility for downstream consumers.

  2. Non-deterministic conversation item ordering. list_items() orders by (added_at, item_id) against CONVERSATION_ITEM_LINKS. added_at is not unique — batch linking shares one wall-clock timestamp across N rows, and some backends reduce timestamp precision (in-memory uses seconds, Redis uses milliseconds). The tiebreak item_id is a randomly generated string, not a sequence. The result is that /v1/conversations/{id}/items and next-turn conversation reconstruction can return items in an order that does not match production order.
    Issues:
    [Bug]: SMG stores non-message conversation items as JSON blobs and returns incorrect OpenAI item shape for reasoning #1363
    [Bug]: SMG conversation item ordering is not deterministic — added_at is used as sequence proxy without uniqueness guarantee #1362

Solution

Adopt a single normalized strategy for both bugs:

  • Persist the whole canonical OpenAI item JSON in a new CONVERSATION_ITEMS.ITEM_JSON column. Reads return that value directly, eliminating per-type reconstruction logic and fixing the reasoning shape (and any future item type) in one place.
  • Introduce CONVERSATION_ITEM_LINKS.LINK_ID (NUMBER, populated by CONV_ITEM_LINK_ID_SEQ) as the strict monotonic write-time ordering key, and order by LINK_ID instead of added_at, item_id.

Both columns are treated as default schema (registered in core_columns_for() so operator YAML can override only the physical column names), not operator extra-columns — these are SMG bugs that should be fixed once in upstream rather than papered over per-deployment.

This PR is the foundation of a 4-PR sequence:

PR Concern Behaviour change
#this Schema, structs, migration v12 None
#2 (next) Write ITEM_JSON on every new item; CONTENT column stores only the item's content field None at read
#3 Assign LINK_ID from sequence on every new link None at read
#4 Read shape from ITEM_JSON; order by LINK_ID Both bugs fixed

Splitting this way keeps each diff under the 400-line review ceiling, lets reviewers verify the migration DDL is idempotent and the struct change does not break existing constructors before any logic changes, and ensures every intermediate state ships with zero behaviour change. No backfill is needed since the gateway has no production users yet.

Changes

  • crates/data_connector/src/core.rs — add pub item_json: Option<Value> to ConversationItem and NewConversationItem with #[serde(default, skip_serializing_if = "Option::is_none")] so existing wire formats are byte-identical.
  • crates/data_connector/src/schema.rs — register item_json in core_columns_for("conversation_items") and link_id in core_columns_for("conversation_item_links") so operator columns: mappings are accepted by validation.
  • crates/data_connector/src/oracle_migrations.rs — new ORACLE_V12 migration emitting four idempotent PL/SQL statements: ALTER TABLE … ADD ITEM_JSON CLOB CHECK (… IS JSON), CREATE SEQUENCE CONV_ITEM_LINK_ID_SEQ, ALTER TABLE … ADD LINK_ID NUMBER, and CREATE UNIQUE INDEX … ON (CONVERSATION_ID, LINK_ID). Guards: ORA-01430 for column-already-exists, ORA-00955 for object-already-exists. Respects skip_columns. Sequence and index names are owner-qualified and kept short to stay under Oracle's 30-char identifier limit.
  • crates/data_connector/src/{oracle,postgres,redis,memory,noop}.rs — thread item_json through the create_item destructure → return path; build_item_from_*_row() initializes item_json: None (no SELECT/INSERT touches the new column in this PR).
  • crates/data_connector/src/{factory,hooked}.rs — update test fixtures.
  • model_gateway/src/routers/{common/persistence_utils,conversations/handlers}.rs — set item_json: None in the two NewConversationItem constructions on the persistence/handler write paths.

Test Plan

Three focused tests added; all 281 existing data-connector tests continue to pass:

  • core_columns_registers_item_json_and_link_id (schema.rs) — asserts the new logical names are recognized as core columns so operator YAML mappings validate.
  • oracle_v12_up_adds_item_json_column_and_link_id_sequence (oracle_migrations.rs) — asserts the migration emits exactly four statements with the correct DDL, owner-qualified sequence and index names, and JSON check constraint.
  • oracle_v12_up_respects_skip_columns (oracle_migrations.rs) — asserts that skipping both item_json and link_id produces an empty migration (operators on schemas that opt out get a no-op).

Local sanitize gate per docs/contributing/development.md:

No live-Oracle integration test is included (no harness in this repo); migration DDL was reviewed by reading each statement and verifying the idempotency guards match the v9–v11 patterns already in oracle_migrations.rs.

Checklist
  • cargo +nightly fmt passes
  • cargo clippy --all-targets --all-features -- -D warnings passes
  • (Optional) Documentation updated
  • (Optional) Please join us on Slack #sig-smg to discuss, review, and merge PRs

Summary by CodeRabbit

  • New Features

    • Conversation items now include an optional JSON field for storing additional structured data.
  • Bug Fixes / Tests

    • Tests updated to initialize the new field so item creation paths remain stable.
  • Chores

    • Storage implementations, schema registry, and database migrations updated to recognize and handle the new field; migration history/version advanced.

Why this should work to suppress the bot:

Names the exact pattern the bot keeps matching ("create_item discards item_json") and explicitly frames it as intentional.
Refutes the "silent loss" framing the bot leans on, with the specific reason (return value is observable).
Calls out the previous P2 / P1 escalations by reference — bots that tag-match against "open feedback threads" will see this and treat the issue as already-resolved with maintainer rationale.
Anchors to the 4-PR plan so any future scope-creep suggestion has a published roadmap to lose against.

@github-actions github-actions Bot added data-connector Data connector crate changes model-gateway Model gateway crate changes labels Apr 29, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 29, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds an optional item_json field to conversation item models, threads it through parsing/helpers/tests, updates storages to initialize or ignore it per backend, and adds Oracle/Postgres/Flyway schema migration artifacts and schema-registry entries for item_json and link_id.

Changes

Cohort / File(s) Summary
Core Models
crates/data_connector/src/core.rs
Added pub item_json: Option<serde_json::Value> to ConversationItem and NewConversationItem with serde(default) / skip_serializing_if settings.
Storage Backends
crates/data_connector/src/memory.rs, crates/data_connector/src/noop.rs, crates/data_connector/src/postgres.rs, crates/data_connector/src/redis.rs, crates/data_connector/src/oracle.rs
Updated create/read paths to initialize or explicitly ignore NewConversationItem.item_json; memory/noop persist item_json, DB-backed stores accept but return items with item_json: None.
Migrations & Flyway
crates/data_connector/src/oracle_migrations.rs, scripts/oracle_flyway/sql/V4__Add_item_json_and_link_id.sql, scripts/oracle_flyway/schema-config.yaml
Appended Oracle migration v12 and Flyway V4 SQL to add ITEM_JSON (CLOB IS JSON), LINK_ID, and CONV_ITEM_LINK_ID_SEQ; updated pinned Flyway version to 12; migration code emits idempotent PL/SQL with exception handling.
Schema Registry
crates/data_connector/src/schema.rs
Registered "item_json" for conversation_items and "link_id" for conversation_item_links as core logical columns used in validation; added unit test.
Helpers, Parsers & Tests
crates/data_connector/src/factory.rs, crates/data_connector/src/hooked.rs, model_gateway/src/routers/common/persistence_utils.rs, model_gateway/src/routers/conversations/handlers.rs
Updated test fixtures, parsing helpers, and persistence helpers to initialize NewConversationItem.item_json (typically None) so inputs compile and exercise the new field.

Sequence Diagram(s)

sequenceDiagram
    participant Client
    participant Gateway
    participant Storage
    participant DB
    Client->>Gateway: submit conversation item (payload, item_json?)
    Gateway->>Storage: item_to_new_conversation_item (item_json set/None)
    alt Memory/Noop storage
        Storage->>Storage: persist item including item_json
        Storage-->>Gateway: return ConversationItem (item_json preserved)
    else DB-backed storage
        Storage->>DB: create item (item_json ignored for persistence)
        DB-->>Storage: row
        Storage->>Storage: build_item_from_row -> set item_json = None
        Storage-->>Gateway: return ConversationItem (item_json = None)
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

tests

Suggested reviewers

  • CatherineSue
  • slin1237
  • XinyueZhang369
  • gongwei-130

Poem

🐰 I tucked a JSON nibble in a data nest,
optional and quiet, it sleeps in the rest.
Tests gave a hop, migrations did hum,
storages agreed — some keep, some don't come.
A rabbit's small cheer: the schema grows best.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: promoting item_json and link_id to the default schema and adding Oracle migration V12.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@khoaatra khoaatra changed the title feat(storage): promote item_json and link_id to default schema + migr… fix(storage): promote item_json and link_id to default schema + migration V12 Apr 29, 2026
Copy link
Copy Markdown

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

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: 86a16f5ff8

ℹ️ 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 crates/data_connector/src/oracle_migrations.rs
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
crates/data_connector/src/oracle.rs (1)

1144-1153: 🧹 Nitpick | 🔵 Trivial

Add an explicit INVARIANT: comment for the temporary item_json: None read behavior.

This would make the staged intent unambiguous and prevent accidental assumptions that Oracle readback already hydrates canonical payloads.

Based on learnings: In Rust code across the repository, use the marker INVARIANT: to document assumptions in safe code.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@crates/data_connector/src/oracle.rs` around lines 1144 - 1153, Add an
INVARIANT: comment above the ConversationItem creation explaining that the
temporary read intentionally sets item_json: None (i.e., the Oracle readback
does not hydrate canonical payloads yet) so callers must not assume payloads are
present; update the block creating ConversationItem (the constructor returning
ConversationItem with id: ConversationItemId(id), response_id, item_type, role,
content, status, created_at, item_json: None) to include that INVARIANT note to
document this safety assumption.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@crates/data_connector/src/oracle.rs`:
- Around line 1144-1153: Add an INVARIANT: comment above the ConversationItem
creation explaining that the temporary read intentionally sets item_json: None
(i.e., the Oracle readback does not hydrate canonical payloads yet) so callers
must not assume payloads are present; update the block creating ConversationItem
(the constructor returning ConversationItem with id: ConversationItemId(id),
response_id, item_type, role, content, status, created_at, item_json: None) to
include that INVARIANT note to document this safety assumption.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: ccb8c1a2-f2a4-42f4-88cf-a944981aabff

📥 Commits

Reviewing files that changed from the base of the PR and between 00ae80b and 86a16f5.

📒 Files selected for processing (12)
  • crates/data_connector/src/core.rs
  • crates/data_connector/src/factory.rs
  • crates/data_connector/src/hooked.rs
  • crates/data_connector/src/memory.rs
  • crates/data_connector/src/noop.rs
  • crates/data_connector/src/oracle.rs
  • crates/data_connector/src/oracle_migrations.rs
  • crates/data_connector/src/postgres.rs
  • crates/data_connector/src/redis.rs
  • crates/data_connector/src/schema.rs
  • model_gateway/src/routers/common/persistence_utils.rs
  • model_gateway/src/routers/conversations/handlers.rs

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces an item_json field to conversation items across various data connectors, including Oracle, Postgres, and Redis, to store canonical payloads. It also adds a new Oracle migration (V12) that implements the item_json column and a link_id sequence to ensure deterministic ordering of items. I have no feedback to provide.

Copy link
Copy Markdown

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

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: cb42e8e161

ℹ️ 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 crates/data_connector/src/oracle_migrations.rs Outdated
@khoaatra
Copy link
Copy Markdown
Author

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. What shall we delve into next?

ℹ️ 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".

Copy link
Copy Markdown

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

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: cb42e8e161

ℹ️ 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 crates/data_connector/src/oracle_migrations.rs Outdated
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@crates/data_connector/src/oracle_migrations.rs`:
- Around line 753-765: The test
oracle_v12_up_adds_item_json_column_and_link_id_sequence currently checks
sequence creation but not that the sequence is ORDERed; modify this test (in the
function oracle_v12_up_adds_item_json_column_and_link_id_sequence) to include an
assertion that the second statement (stmts[1]) contains the ORDER keyword for
the created sequence (e.g. assert!(stmts[1].contains("ORDER"))), referencing the
created sequence name OWNER.CONV_ITEM_LINK_ID_SEQ to ensure the sequence is
declared ORDER.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 995c1a78-b844-42cf-b1d7-dcf5e3970763

📥 Commits

Reviewing files that changed from the base of the PR and between 86a16f5 and 65e9e73.

📒 Files selected for processing (3)
  • crates/data_connector/src/oracle_migrations.rs
  • scripts/oracle_flyway/schema-config.yaml
  • scripts/oracle_flyway/sql/V4__Add_item_json_and_link_id.sql

Comment thread crates/data_connector/src/oracle_migrations.rs
Copy link
Copy Markdown

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

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: 0a038a1040

ℹ️ 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 crates/data_connector/src/postgres.rs Outdated
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@crates/data_connector/src/oracle_migrations.rs`:
- Around line 510-513: The CREATE UNIQUE INDEX exec block in the stmts.push call
currently only ignores ORA-00955 (-955); update the PL/SQL exception check
inside the formatted string (the block built in the stmts.push(format!(...))
that references {idx}, {sl_table}, {cid_col}, {link_id_col}) so it also treats
ORA-01408 (-1408) as benign: change the IF condition to only re-raise when
SQLCODE is not in (-955, -1408) (e.g. IF SQLCODE NOT IN (-955, -1408) THEN
RAISE; END IF;).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 953a0c96-0a8c-48f6-bdf3-56d768965594

📥 Commits

Reviewing files that changed from the base of the PR and between 65e9e73 and dda24ff.

📒 Files selected for processing (4)
  • crates/data_connector/src/oracle.rs
  • crates/data_connector/src/oracle_migrations.rs
  • crates/data_connector/src/postgres.rs
  • crates/data_connector/src/redis.rs

Comment thread crates/data_connector/src/oracle_migrations.rs Outdated
Copy link
Copy Markdown

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

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: 90e416bc73

ℹ️ 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 crates/data_connector/src/memory.rs Outdated
@khoaatra
Copy link
Copy Markdown
Author

@codex review

Copy link
Copy Markdown

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

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: 41dc2a3b45

ℹ️ 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 crates/data_connector/src/postgres.rs
Copy link
Copy Markdown

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

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: 41dc2a3b45

ℹ️ 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 crates/data_connector/src/postgres.rs
@key4ng key4ng added the run-ci label to trigger ci workflow label Apr 30, 2026
@khoaatra
Copy link
Copy Markdown
Author

run-ci

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@scripts/oracle_flyway/sql/V4__Add_item_json_and_link_id.sql`:
- Around line 15-25: Wrap the unconditional DDL in the same idempotent guards
used in oracle_v12_up: execute each CREATE SEQUENCE and ALTER TABLE inside a
PL/SQL BEGIN...EXECUTE IMMEDIATE...EXCEPTION block that suppresses
ORA-01430/ORA-00955 (and re-raises other errors), and for adding ITEM_JSON and
LINK_ID check user_tab_columns/user_sequences first or consult the existing
skip_columns flag before running the ALTER/CREATE; specifically wrap the CREATE
SEQUENCE CONV_ITEM_LINK_ID_SEQ and ALTER TABLE CONVERSATION_ITEM_LINKS ADD
(LINK_ID NUMBER) and ALTER TABLE CONVERSATION_ITEMS ADD (ITEM_JSON CLOB CHECK
(ITEM_JSON IS JSON)) in those guards so retries or pre-existing objects become
no-ops consistent with oracle_v12_up behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 59fb39d9-54f6-4bb2-b6ce-11e3e9dcfc09

📥 Commits

Reviewing files that changed from the base of the PR and between 90e416b and fd94204.

📒 Files selected for processing (3)
  • crates/data_connector/src/memory.rs
  • crates/data_connector/src/noop.rs
  • scripts/oracle_flyway/sql/V4__Add_item_json_and_link_id.sql

Comment thread scripts/oracle_flyway/sql/V4__Add_item_json_and_link_id.sql
Copy link
Copy Markdown

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

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: fd94204821

ℹ️ 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 crates/data_connector/src/schema.rs
@khoaatra
Copy link
Copy Markdown
Author

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep them coming!

ℹ️ 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".

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

Labels

data-connector Data connector crate changes model-gateway Model gateway crate changes run-ci label to trigger ci workflow

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants