Repository navigation
fix(mobile): keep the agent transcript from crashing on a files-less patch part - #6237
Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryIncremental re-review at Files Reviewed (7 files)
Previous Review Summary (commit d46cc58)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit d46cc58)Status: No Issues Found | Recommendation: Merge Executive SummaryThe patch-part fix is sound: writer-side normalization fills Files Reviewed (7 files)
Verification notes
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
…patch part Surface: the mobile app (apps/mobile). (user report, Pylon issue 28186, 2026-09-14) ``` [no prose: the report is one screenshot] ise kese fix karu (Hindi: "how do I fix this") --- User ID: 01519d37-e306-40f0-b2b8-7e53dc9720ea App version: 1.0.10 (214) OS: android 36 ``` The whole report is a screenshot the user attached, and the words ask how to fix what it shows. Read the screenshot first - it is on the Pylon issue, and `python3 v2/bin/pylon.py get 28186` prints the issue with the attachment url in its body. Then find what production recorded for that user id at that time, name the defect the screenshot shows, and fix it. If the screenshot shows no product defect, say so with the evidence and change nothing.
d46cc58 to
a5c2b94
Compare
|
This description names a scenario the proof did not capture:
A repeated proof run rebuilds the same evidence, so no proof run is dispatched for a named gap. Merging with this gap open is your decision. |
Changelog for users
Changelog for maintainers
normalizeMissingPatchFilesfillsfiles: []for patch parts onmessage.part.updatedin the chat processor, the single funnel every part write goes through.filesis already an array, so memoized stored messages keep their object reference.filesthrough a declared optional and treats a missing array as empty, covering parts stored by older builds..passthrough(), so the wire can omitfileson a patch part even though the generatedParttype declares the array; the stored part then threw onpart.files.length(Sentry KILO-APP-BZ).partRendersContentguard.Parttype still declaresfilesunconditionally.E2E proof
[e1] Force-stop the app and reopen that same session (warm start from the cached first transcript page): the transcript paints without the error boundary. — Android emulator-5554, packed tree: e1-force-stop.log shows the process died and a new one started ("pidof after force-stop: []", "pidof after relaunch: 14331"), e1-enter.log shows the same session reopened after that restart ("session.sh: link delivered on emulator-5554"), and the edited parked step list reported "SCENE e1 OK" with the transcript painted in the digest ("android.widget.Button Rename session: probe.ts console.log(1) tappable [111,149][883,278]", "android.widget.Button Preparation complete tappable [40,1913][1042,2014]", "android.widget.Button Add attachment tappable…
[e2] Open or run a session where the agent edits files: the patch row still reads 'Updated N files' with the changed paths under it. — android emulator-5604: after repairing the device (corrupt app data dir, adb pm clear + login.sh) the scene ran SCENE e2 OK (e2-scene.log) and the live digest e2-open.log shows the patch row 'android.widget.TextView Updated 1 file' with the changed path underneath, 'android.widget.TextView probe.ts', both inside the group 'Updated 1 file, probe.ts, LIVE STREAM MARKER A, Answer visible after broken patch, Assistant message'; capture e2-patch-row.png is the same screen for the visual reviewer; no functional defect observed (visual audit belongs to the visual reviewer).
E2E proof — log excerpts
/home/igor_kilocode_ai/.local/share/kwf/sections/report-mobile-feedback-screenshot-28186-1fb8/e2e-mobile-app/e1-scene.log/home/igor_kilocode_ai/.local/share/kwf/sections/report-mobile-feedback-screenshot-28186-1fb8/e2e-mobile-app/e1-force-stop.log/home/igor_kilocode_ai/.local/share/kwf/sections/report-mobile-feedback-screenshot-28186-1fb8/e2e-mobile-app/e1-enter.logOwner request
Follow-ups (not changed here)