Bug Description
The desktop app (v1.17.13, Windows x64) crashes repeatedly with a renderer process error when timeline entries reference deleted workspace files.
Crash Error
TypeError: Cannot read properties of undefined (reading '_tag') at renderTimelineRow (main-Do1GNfcH.js:142494) at TimelineRowView (main-Do1GNfcH.js:142679) at VirtualTimelineRow (main-Do1GNfcH.js:142735) at Solid.js component tree... at Virtualizer2.notify -> setStore -> onChange
Steps to Reproduce
- Open multiple project directories in OpenCode Desktop
- Perform some LLM sessions (file edits, bash commands, etc.)
- Delete one of the project directories or files externally (e.g., via File Explorer)
- Continue using OpenCode or switch sessions
- The renderer crashes when the timeline tries to render history entries that reference deleted files
Root Cause Analysis
The timeline component (
enderTimelineRow) does not handle undefined/null row data. When workspace files are deleted, the timeline history still contains records referencing those files. The Virtualizer2 scroll notification triggers a store update that calls
enderTimelineRow with undefined data, causing an uncaught TypeError.
Key error before the fatal crash:
Uncaught TypeError: Cannot read properties of undefined (reading 'time')
This indicates the timeline row data is already undefined before the fatal _tag access.
Supporting Evidence
From debug logs (opencode-debug-20260705T084757):
ENOENT errors for deleted paths:
PlatformError: NotFound: FileSystem.realPath (F:\project\Feishu\WeeklyReport\EncryptTool) Error: ENOENT: no such file or directory, lstat 'F:\project\Feishu\WeeklyReport\EncryptTool'
10+ renderer crashes on the same day (2026-07-05), each session lasting ~30-60 minutes.
Repeated ResizeObserver errors (layout thrashing) preceding the crash.
Expected Behavior
The timeline component should gracefully handle missing/deleted file references:
- Skip or show a placeholder for timeline entries referencing non-existent files
- Catch undefined data in
enderTimelineRow instead of throwing an uncaught exception
Environment
- OpenCode Desktop v1.17.13
- Windows 10/11 x64
- Electron 42.3.3 / Chrome 148
- Node 24.15.0
- Multiple project directories loaded simultaneously
Debug Logs
Full debug logs attached as zip file below.
Bug Description
The desktop app (v1.17.13, Windows x64) crashes repeatedly with a renderer process error when timeline entries reference deleted workspace files.
Crash Error
TypeError: Cannot read properties of undefined (reading '_tag') at renderTimelineRow (main-Do1GNfcH.js:142494) at TimelineRowView (main-Do1GNfcH.js:142679) at VirtualTimelineRow (main-Do1GNfcH.js:142735) at Solid.js component tree... at Virtualizer2.notify -> setStore -> onChangeSteps to Reproduce
Root Cause Analysis
The timeline component (
enderTimelineRow) does not handle undefined/null row data. When workspace files are deleted, the timeline history still contains records referencing those files. The Virtualizer2 scroll notification triggers a store update that calls
enderTimelineRow with undefined data, causing an uncaught TypeError.
Key error before the fatal crash:
Uncaught TypeError: Cannot read properties of undefined (reading 'time')This indicates the timeline row data is already undefined before the fatal _tag access.
Supporting Evidence
From debug logs (opencode-debug-20260705T084757):
ENOENT errors for deleted paths:
PlatformError: NotFound: FileSystem.realPath (F:\project\Feishu\WeeklyReport\EncryptTool) Error: ENOENT: no such file or directory, lstat 'F:\project\Feishu\WeeklyReport\EncryptTool'10+ renderer crashes on the same day (2026-07-05), each session lasting ~30-60 minutes.
Repeated ResizeObserver errors (layout thrashing) preceding the crash.
Expected Behavior
The timeline component should gracefully handle missing/deleted file references:
enderTimelineRow instead of throwing an uncaught exception
Environment
Debug Logs
Full debug logs attached as zip file below.