mirror of
https://github.com/zhukunpenglinyutong/jetbrains-cc-gui.git
synced 2026-11-03 14:30:42 +08:00
Codex streaming could omit commentary, reasoning, and edit cards between batches until the conversation was reloaded. Historical exec wrappers also collapsed supported parallel calls into generic exec cards and used command labels that differed from live rendering. Preserve snapshot ordering and complete message corrections: - Compare complete raw message content when selecting the transported suffix; keep structural signatures limited to snapshot scheduling. - Apply a buffered full snapshot before its dependent tail update advances the sequence barrier, retaining intermediate items during React batching and stream completion. Restore recorded tool batches without guessing result ownership: - Associate Promise.all and Promise.allSettled results with their original array slots, including independently printed index labels in forEach and bounded for loops. - Retain labeled arrays, primitives, plain text, and label-like values. - Restore mixed command and write_stdin batches while keeping polling tied to the original process card. - Match identical commands through confirmed process identities or unique explicit absolute working directories, including file URIs and Windows paths, while preserving literal POSIX backslashes. - Never assign unindexed parallel process receipts by arrival order; retain the original wrapper whenever ownership cannot be established. Keep local Promise computations out of the visible tool timeline: - Preserve Promise.resolve expressions and indexed results as internal data without executing historical source. - Filter these entries through the shared rendering predicate so they neither create cards nor interrupt command groups in live or historical messages. - Separate rejection metadata from result fields, distinguish Promise.all values from settled envelopes, and decode nested local receipts only when the source proves that the complete settled receipt was printed. - Keep flattened local Promise.all output in its original wrapper rather than interpreting data fields named status or error as execution outcomes. Align historical command rows with live presentation: - Preserve recorded summaries, approval reasons, and parsed command actions. - Accept both list_files and listFiles directory action names. - Remove generated English command summaries and retain Bash tool identities for legacy reads and searches so the shared renderer controls row labels. Extend Java, React, and browser regression coverage for snapshot ordering, process ownership, mixed batches, local result preservation, command labels, and continuous tool grouping. Update the Codex runtime documentation and browser fixtures to describe the resulting behavior. Validation: - 199 Java tests passed across CodexKnownExecReplayTest, HistoryMessageInjectorTest, CodexHistoryPageIndexTest, and StreamMessageCoalescerStreamEndHookTest. - Gradle checkstyleMain passed. - 67 targeted frontend tests passed across snapshot callbacks, MessageItem, GenericToolBlock, tool constants, and command presentation. - TypeScript test-project checking and git diff --check passed.