Render file change rows in thread conversation#9
Render file change rows in thread conversation#9SHAREN wants to merge 10 commits intofriuns2:mainfrom
Conversation
Review Summary by QodoRender file change rows in thread conversation
WalkthroughsDescription• Render persisted file change items from thread/read as inline expandable rows • Parse and normalize file change data with diff statistics extraction • Preserve live file change updates in shared system-message pipeline • Display file change summaries with verb, path, and line statistics Diagramflowchart LR
ThreadItem["ThreadItem fileChange"] -->|normalizeThreadItemV2| UiMessage["UiMessage with fileChange"]
UiMessage -->|live updates| LiveCommand["Live command pipeline"]
LiveCommand -->|upsertLiveCommand| ThreadConversation["ThreadConversation component"]
ThreadConversation -->|render| FileChangeRow["Expandable file change row"]
FileChangeRow -->|display| DiffView["Diff viewer with stats"]
File Changes1. src/types/codex.ts
|
Code Review by Qodo
1.
|
|
@friuns2 короче я "навайбкодил" у себя в локальном проекте, но там маленько порядок у меня нарушился, но короче говоря еще несколько фич добавил. fast speed mode, drag-n-drop, вставку изображекний из буфера обмена, отображения хода сжатия контекста, частичную поддержку с codex app. Ну и сейчас понял короче что теперь тяжело мне будет разбираться чтобы сделать правильно PR чтобы ничего не забыть как сейчас 🤯 я постараюсь аккуратно теперь с этим разобраться |
|
ну мне мерджить или подождать? |
подождать, но я позже разберусь |
|
Дозалил недостающие правки из локального репозитория и перепроверил ветку заново. Что обновил:
Проверка:
Отдельно прогнал light/dark + desktop/mobile/tablet. |
|
и rebase надо сделать там конфликты появились |
What changed: - restored basename-first inline row layout and browse-line linking for file-change summaries - hid collapsed detail bleed and added dark-theme overrides for the file-change renderer - kept live file-change rows merged into the thread and suppressed the duplicate live overlay while inline rows are present Why: - the clean PR branch missed part of the original local fixes, which left the upstream PR with mobile/layout regressions and incomplete live behavior Impact: - file-change rows now stay compact on small screens, read correctly in dark mode, and expand without detail bleed - live file-change rows remain visible through turn completion until persisted history catches up, avoiding duplicate or flickering UI Validation: - npm run build - node output/playwright/verify-file-change.mjs - node output/playwright/verify-file-change-live.mjs - node output/playwright/verify-file-change-snake-case.mjs - node output/playwright/verify-file-change-theme-matrix.mjs
What changed:
- added a shared command resolution helper that can find the installed Codex CLI from Windows npm locations, including the vendored codex.exe path
- updated the CLI bootstrap to reuse that resolver and to repair PATH handling for user-prefix npm installs on Windows
- updated the app-server bridge and schema generation path to stop hardcoding spawn('codex', ...) and use the resolved executable instead
Why:
- the clean clone could build, but it could not launch the real Codex app-server on this machine because Node spawn could not resolve the Windows shell shim reliably
- that left http://127.0.0.1:4175 serving the shell without real threads
Impact:
- the clean clone can now serve real Codex data on both localhost and the LAN bind address
- this stays local to the runtime branch and does not alter the upstream PR branch
Validation:
- npm run build
- verified http://127.0.0.1:4175/ and http://192.168.0.119:4175/ return 200
- verified /codex-api/rpc thread/list returns real threads
- captured headless Playwright screenshots for local light, local dark, LAN light, and an opened real thread in light/dark
(cherry picked from commit 6431531c3488b14aaf172d2631985e3742a1f274)
What changed: - tracked the live arrival order of assistant, command, and file-change items per thread - merged current-turn persisted messages against that live order instead of falling back to raw persisted ordering after the stream ends - kept persisted-only items in place while reordering known live items and inserting live-only items near their ordered neighbors Why: - PR9 no longer hard-jumped the scroll position, but completed turns could still reorder into assistant text first with cmd/file rows sinking to the bottom of the turn Impact: - Edited rows and command rows stay in their live sequence even after the turn finishes and live buffers are cleared - the thread no longer regresses into a trailing cmd/file tail once persisted messages replace the live state Validation: - npm run build - live Playwright check on http://localhost:4176/#/thread/019d24ab-cd48-7890-bcad-21dbd2ca9414 with a single open page and a 3-cycle edit/whoami/report prompt; sawCmdWhileOpen=true, sawFileWhileOpen=true, trailingKinds=[] (cherry picked from commit 68f0b6b28c1811da496cd6124280832dcda9f130)
What changed: - derived and stored the full displayed order of the current turn instead of treating the order cache as a live-only item queue - refreshed that cached turn order whenever persisted messages, live agent messages, or live command/file rows changed - reused the cached displayed order when merging persisted assistant history with live-only command and file-change rows Why: - thread/read persists assistant messages for these turns but does not persist the commandExecution and fileChange rows - when the persisted assistant history arrived after the stream, it could push already-visible Edited/cmd rows down into a bottom tail Impact: - Edited and command rows keep the on-screen order they reached during the live turn - persisted assistant updates no longer collapse those rows to the bottom after Worked and the final assistant message Validation: - npm run build - live Playwright check on http://localhost:4176/#/thread/019d24ab-cd48-7890-bcad-21dbd2ca9414 with the 3-cycle edit/whoami/report prompt; sawCmdWhileOpen=true, sawFileWhileOpen=true, trailingKinds=[] - artifact: D:\RENAT\Documents\codexui-fork\output\playwright\pr9-triplet-live-order-summary-1774446177592.json (cherry picked from commit 40e036c71080331a268b1397d874507ba02ac8a6)
What changed: - reintroduced the small npm PATH helper functions used by the CLI install fallback - kept the rebased branch on the newer utils/commandInvocation path instead of reviving the removed commandResolution module Why: - the PR branch started failing to build after rebasing onto upstream/main because the install fallback still referenced helper functions that were no longer imported Impact: - the rebased PR branch builds cleanly again - Windows-friendly PATH updates stay intact for the CLI install fallback Validation: - npm run build
Add the screenshot captured from the live PR9 verification flow so the GitHub comment can embed visual proof of the final Edited/cmd ordering fix.
4890668 to
7646637
Compare
|
Дозалил фиксы по багу из комментария про то, что старые Что обновил:
Что это чинит по сути:
Проверка:
Скрин после фикса: |
|
на модели codex 5.2 тестируй тоже |




Summary
fileChangeitems fromthread/readas inline expandable rows inThreadConversationfileChangeupdates in the shared live system-message pipeline so active edits show up inside the thread during a running turncodex-web-localhistory mixed inTesting
npm run buildnode output/playwright/verify-file-change.mjsnode output/playwright/verify-file-change-live.mjs