Addressing #600 and #664 (partially) ## Bug Codex was staging duplicate items in output running when the same response item appeared in both the streaming events. Specifically: 1. Items would be staged once when received as a `response.output_item.done` event 2. The same items would be staged again when included in the final `response.completed` payload This duplication would result in each message being sent several times in the quiet mode output. ## Changes - Added a Set (`alreadyStagedItemIds`) to track items that have already been staged - Modified the `stageItem` function to check if an item's ID is already in this set before staging it - Added a regression test (`agent-dedupe-items.test.ts`) that verifies items with the same ID are only staged once ## Testing Like other tests, the included test creates a mock OpenAI stream that emits the same message twice (once as an incremental event and once in the final response) and verifies the item is only passed to `onItem` once.
3.5 KiB
3.5 KiB