Skip to content

fix(aionrs): scope tool call IDs by conversation - #706

Open
catPaw-s wants to merge 1 commit into
iOfficeAI:mainfrom
catPaw-s:codex/fix-aionrs-tool-call-id-scope
Open

fix(aionrs): scope tool call IDs by conversation#706
catPaw-s wants to merge 1 commit into
iOfficeAI:mainfrom
catPaw-s:codex/fix-aionrs-tool-call-id-scope

Conversation

@catPaw-s

Copy link
Copy Markdown

Summary

  • namespace AionRS tool-call message IDs by conversation
  • reject cross-conversation message-ID collisions in the SQLite upsert path
  • preserve the original conversation row and recency when a collision is rejected

Problem

Tool-call messages use call_id as the globally unique messages.id. When different conversations receive the same upstream tool-use ID, the previous aionrs-{tool_use_id} mapping lets the later upsert patch the existing row while that row still belongs to the first conversation.

Verification

  • just push -u origin codex/fix-aionrs-tool-call-id-scope
    • migration immutability check
    • workspace clippy and formatting checks
    • cargo nextest run --workspace: 7531 passed, 18 skipped
  • regression tests cover conversation-scoped AionRS IDs and database rejection of cross-conversation collisions

Observability

Existing tool-call persistence error logging already reports rejected upserts without logging prompts, tool input/output, or other sensitive payloads, so no new logging was added.

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