90d363afc9
fix(renderer): contain Monaco initialization failures ( #21555 )
...
* fix(renderer): add defensive error handling for Monaco editor crashes
Analyzed 34 crash reports for v1.4.205 released 2026-09-17. Identified and
added defensive fixes for React error boundary crashes in Monaco editor setup.
- Error: ReferenceError: thũs is not defined
- Location: Monaco editor initialization (editor.api2 bundle)
- Platforms: Linux, Windows, macOS
- Root cause: Undefined variable in Monaco setup or language registration
- Status: Added try-catch to prevent cascade crash
- Pattern: Cascading process deaths (network service + GPU service)
- Platforms: Primarily Windows
- Root cause: Infrastructure/concurrent process failure (not code defect)
- Status: Documented, requires Electron/Chrome infrastructure review
- Pattern: Renderer memory grows to 851MB on low-RAM Windows systems
- Root cause: Memory exhaustion on systems with <2GB free RAM
- Status: Existing memory monitoring detected; needs leak investigation
- Status: Requires minidump analysis with source maps
1. Added try-catch to Monaco editor mount callback (use-monaco-editor-mount.ts)
- Catches errors during editor initialization
- Logs file path and error for better diagnostics
- Prevents crash cascade to React error boundary
2. Added try-catch to Monaco language registration (monaco-setup.ts)
- Catches errors during Vue/Svelte/Astro/Nim language registration
- Logs failures without crashing Monaco setup
- Allows app to continue even if optional features fail
- Analyzed 34 crash reports across 3 categories
- Examined crash dumps, diagnostics, and memory profiles
- Reviewed Monaco setup and editor component code
- Checked git history for recent changes
- Crash breadcrumbs (memory, process state, user actions)
- Process metrics (heap, private memory, system memory)
- Component stacks (React error boundaries)
- Exit codes and system signals
- Error silently continues instead of crashing: Users get degraded experience
instead of app crash, can still use editor in most cases
- May hide underlying issues: Errors are logged for crash reports, but won't
be surfaced as prominently
- Type checking: pnpm tc:renderer (passed)
- Changes preserve existing error reporting through crash breadcrumbs
- Defensive coding only adds try-catch, no behavior change for success path
* fix(renderer): keep Monaco mount failures inside error boundary
* fix(renderer): isolate Monaco setup failures
* fix(renderer): contain Monaco mount failures at the editor surface
The try/catch around the onMount body did the opposite of containment: React
already routed that throw to the page boundary, so swallowing it left a
half-wired editor and hid the crash from the reporting pipeline. It also never
saw the reported failure, which is raised inside @monaco-editor/react's own
create effect before onMount runs.
Revert the hook to main and wrap the editor element in
RecoverableRenderErrorBoundary instead, so either throw degrades the file pane
only, still files a crash report, and retries by remounting on the existing
pane+path key.
* refactor(renderer): drive Monaco setup steps from one guarded table
Ten near-identical guarded calls, each repeating its own function name as a
label, become one [label, step] table run by a single loop. Same behaviour: an
optional registration that throws is logged and the rest still run.
loader.config and the editor model registry stay unguarded — they are
load-bearing, so catching there would only move the failure later.
* fix(renderer): breadcrumb swallowed Monaco setup-step failures
A guarded registration that throws was console-only, so a lost language or
behaviour guard never reached crash reports. Record a breadcrumb so the
containment stays visible in the field.
Claude-Session: ab8ff806-4870-4ea8-bbf5-bbd123b1166e
---------
Co-authored-by: m4air <m4air@Mac.localdomain >
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com >
2026-09-22 02:57:18 -04:00
..
2026-09-14 13:56:22 -07:00
2026-09-20 20:06:55 -07:00
2026-09-21 13:58:16 -07:00
2026-09-19 17:49:03 -07:00
2026-09-21 14:11:40 -04:00
2026-08-15 18:25:37 -07:00
2026-09-07 23:35:26 -07:00
2026-09-15 01:59:58 -07:00
2026-09-20 14:41:50 -07:00
2026-09-03 01:32:46 -07:00
2026-09-03 01:32:46 -07:00
2026-09-21 22:48:39 -07:00
2026-09-21 12:44:13 -07:00
2026-09-17 23:08:59 -07:00
2026-09-16 23:03:37 -04:00
2026-09-06 20:24:21 -07:00
2026-09-21 12:44:13 -07:00
2026-09-20 14:41:50 -07:00
2026-09-19 01:31:08 -07:00
2026-09-21 17:37:50 -04:00
2026-08-27 10:48:53 -07:00
2026-09-22 01:09:26 -04:00
2026-09-07 23:35:26 -07:00
2026-09-18 23:39:52 -07:00
2026-09-15 02:00:27 -07:00
2026-09-22 01:09:26 -04:00
2026-08-26 23:17:34 -07:00
2026-08-26 15:44:11 -07:00
2026-08-27 10:48:53 -07:00
2026-09-12 19:39:40 -07:00
2026-08-27 10:48:53 -07:00
2026-08-20 09:57:55 -07:00
2026-09-21 11:52:37 -07:00
2026-09-03 01:32:46 -07:00
2026-09-18 20:39:52 -07:00
2026-09-20 14:41:50 -07:00
2026-09-14 01:45:00 -07:00
2026-09-17 20:21:45 -07:00
2026-08-15 18:25:37 -07:00
2026-09-10 20:16:56 -04:00
2026-09-03 17:32:59 -07:00
2026-09-22 02:57:18 -04:00
2026-09-08 19:44:13 -07:00
2026-08-27 16:10:51 -07:00
2026-09-11 21:22:06 -07:00
2026-09-20 14:41:50 -07:00
2026-09-12 20:35:48 -07:00
2026-08-13 22:48:24 -07:00
2026-08-23 15:24:25 -07:00
2026-09-06 19:20:50 -07:00
2026-09-21 16:38:05 -07:00
2026-09-15 01:59:58 -07:00
2026-09-13 18:27:34 -07:00
2026-09-15 15:20:48 -07:00
2026-09-21 14:29:04 -07:00
2026-09-21 14:29:04 -07:00
2026-09-20 21:02:24 -07:00
2026-09-20 14:41:50 -07:00
2026-09-21 17:23:30 -07:00
2026-09-21 00:43:27 -07:00
2026-09-20 21:38:38 -07:00
2026-09-20 14:41:50 -07:00
2026-09-20 14:41:50 -07:00
2026-09-20 14:41:50 -07:00
2026-09-17 20:31:37 -07:00
2026-09-21 01:35:58 -07:00
2026-09-21 15:15:30 -07:00
2026-09-21 17:25:30 -04:00
2026-09-21 20:22:08 -07:00
2026-09-21 17:23:30 -07:00
2026-09-18 03:12:46 -04:00
2026-09-18 20:39:52 -07:00
2026-09-05 20:03:53 -07:00
2026-09-06 14:34:03 -04:00
2026-09-21 22:20:13 -07:00
2026-08-15 00:54:20 -07:00
2026-09-20 23:32:00 -07:00
2026-09-17 20:35:43 -07:00
2026-08-22 21:12:23 -07:00
2026-09-19 10:14:51 -07:00
2026-09-21 11:52:37 -07:00
2026-09-21 22:55:43 -07:00
2026-09-08 19:41:15 -07:00
2026-09-21 16:03:40 -07:00
2026-09-12 18:11:41 -07:00
2026-09-12 18:01:56 -07:00
2026-08-01 19:22:39 -07:00
2026-08-13 22:48:24 -07:00
2026-08-31 11:20:22 -07:00
2026-08-31 11:20:22 -07:00
2026-09-11 15:28:16 -07:00
2026-09-11 15:28:16 -07:00
2026-09-11 15:28:16 -07:00
2026-09-11 15:28:16 -07:00
2026-09-21 20:22:08 -07:00
2026-09-21 20:22:08 -07:00
2026-08-24 19:45:47 -07:00
2026-08-24 19:45:47 -07:00
2026-09-01 14:06:16 -07:00
2026-09-01 14:06:16 -07:00
2026-09-03 21:04:54 -07:00
2026-09-03 21:04:54 -07:00
2026-08-16 12:48:53 -07:00
2026-09-02 20:47:09 -07:00
2026-07-29 21:43:45 -07:00
2026-09-02 13:05:16 -07:00
2026-08-01 13:38:45 -07:00
2026-08-15 18:25:37 -07:00
2026-08-14 19:04:54 -04:00
2026-08-14 19:04:55 -04:00
2026-08-13 22:48:24 -07:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:55 -04:00
2026-08-13 16:23:22 -07:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:54 -04:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:55 -04:00
2026-08-13 16:23:21 -07:00
2026-08-13 16:23:21 -07:00
2026-08-25 02:32:21 -07:00
2026-08-01 13:38:45 -07:00
2026-08-01 13:38:45 -07:00
2026-09-17 12:59:03 -07:00
2026-08-16 23:51:53 -07:00
2026-08-17 20:43:29 -07:00
2026-09-14 14:54:53 -07:00
2026-09-14 14:54:53 -07:00
2026-08-13 22:48:24 -07:00
2026-08-02 17:40:58 -07:00
2026-08-02 17:40:58 -07:00
2026-09-16 10:31:01 -07:00
2026-09-01 02:07:33 -07:00
2026-09-13 22:36:01 -07:00
2026-08-15 18:25:37 -07:00
2026-09-14 14:52:35 -07:00
2026-09-15 01:19:32 -07:00
2026-08-15 18:25:37 -07:00
2026-09-18 00:53:09 -07:00
2026-08-29 01:53:31 -07:00
2026-08-15 18:25:37 -07:00
2026-08-29 01:53:31 -07:00
2026-08-15 00:54:20 -07:00
2026-09-14 14:52:35 -07:00
2026-09-15 01:19:32 -07:00
2026-09-03 21:04:54 -07:00
2026-09-03 21:04:54 -07:00
2026-08-31 15:16:38 -07:00
2026-09-01 17:35:38 -07:00
2026-08-22 16:38:00 -07:00
2026-09-18 00:53:09 -07:00
2026-09-18 00:53:09 -07:00
2026-08-01 13:38:45 -07:00
2026-09-09 03:36:41 -04:00
2026-08-30 18:13:36 -07:00
2026-08-30 18:13:36 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-08-30 12:11:21 -07:00
2026-08-19 17:12:17 -07:00
2026-09-02 01:39:48 -07:00
2026-09-02 01:39:48 -07:00
2026-09-01 22:47:29 -07:00
2026-09-01 22:47:29 -07:00
2026-08-29 16:06:15 -07:00
2026-08-29 16:06:15 -07:00
2026-09-14 14:52:45 -07:00
2026-09-14 14:52:45 -07:00
2026-09-20 14:41:50 -07:00
2026-07-31 00:51:39 -07:00
2026-07-31 00:51:39 -07:00
2026-08-27 13:44:03 -07:00
2026-09-01 02:07:33 -07:00
2026-08-27 13:44:03 -07:00
2026-08-31 08:17:40 -07:00
2026-07-31 00:51:39 -07:00
2026-07-31 00:51:39 -07:00
2026-07-28 15:34:52 -07:00
2026-07-28 15:34:52 -07:00
2026-09-22 01:09:26 -04:00
2026-09-22 01:09:26 -04:00
2026-09-04 16:42:42 -07:00
2026-09-04 16:42:42 -07:00
2026-09-07 09:18:38 -07:00
2026-09-04 16:42:42 -07:00
2026-09-02 22:31:59 -07:00
2026-08-27 20:10:17 -07:00
2026-08-15 00:54:20 -07:00
2026-09-01 17:20:17 -07:00
2026-09-01 17:20:17 -07:00
2026-09-06 18:29:19 -07:00
2026-08-22 21:47:46 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 00:54:20 -07:00
2026-09-14 01:04:43 -04:00
2026-08-15 00:54:20 -07:00
2026-09-19 14:30:25 -07:00
2026-09-02 21:35:28 -07:00
2026-09-02 21:35:28 -07:00
2026-09-01 17:20:17 -07:00
2026-09-02 21:35:28 -07:00
2026-08-17 15:25:25 -07:00
2026-09-03 20:57:57 -07:00
2026-08-24 20:45:53 -07:00
2026-09-01 17:20:17 -07:00
2026-08-29 19:41:01 -07:00
2026-08-22 22:30:11 -07:00
2026-08-22 22:30:11 -07:00
2026-08-22 22:30:11 -07:00
2026-09-03 21:21:22 -07:00
2026-08-15 00:54:20 -07:00
2026-09-06 18:29:19 -07:00
2026-09-21 22:20:13 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-09-01 17:20:17 -07:00
2026-08-22 22:30:11 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-09-03 20:59:53 -07:00
2026-09-03 20:59:53 -07:00
2026-09-03 02:00:42 -07:00
2026-08-26 09:50:12 -07:00
2026-09-02 21:35:28 -07:00
2026-09-03 20:59:53 -07:00
2026-09-01 17:20:17 -07:00
2026-08-15 00:54:20 -07:00
2026-09-03 21:30:45 -07:00
2026-08-22 22:30:11 -07:00
2026-09-18 20:39:52 -07:00
2026-08-26 09:50:12 -07:00
2026-08-26 09:50:12 -07:00
2026-08-24 20:45:53 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-09-01 17:20:17 -07:00
2026-09-16 22:24:33 -07:00
2026-08-22 21:47:46 -07:00
2026-08-15 21:41:01 -07:00
2026-08-15 21:41:01 -07:00
2026-07-31 11:58:46 -07:00
2026-09-01 23:21:14 -07:00
2026-09-01 23:21:14 -07:00
2026-09-20 14:41:50 -07:00
2026-08-31 20:32:59 -07:00
2026-09-18 20:39:52 -07:00
2026-08-22 22:30:11 -07:00
2026-08-22 16:38:00 -07:00
2026-08-31 19:08:05 -04:00
2026-08-31 19:08:05 -04:00
2026-09-07 00:12:32 -07:00
2026-09-04 15:55:20 -07:00
2026-09-17 20:58:02 -07:00
2026-09-04 15:55:20 -07:00
2026-09-04 15:55:20 -07:00
2026-08-21 21:05:24 -07:00
2026-08-21 21:05:24 -07:00
2026-08-26 12:48:52 -07:00
2026-09-01 02:07:33 -07:00
2026-08-26 15:09:22 -07:00
2026-08-01 19:22:39 -07:00
2026-08-04 01:37:25 -07:00
2026-09-07 09:18:38 -07:00
2026-08-22 21:34:39 -07:00
2026-09-21 20:22:08 -07:00
2026-08-16 23:51:53 -07:00
2026-08-16 23:51:53 -07:00
2026-09-03 00:49:36 -07:00
2026-09-03 00:49:36 -07:00
2026-09-03 00:49:36 -07:00
2026-09-03 00:49:36 -07:00
2026-09-20 14:41:50 -07:00
2026-09-20 14:41:50 -07:00
2026-09-03 00:49:36 -07:00
2026-09-03 00:49:36 -07:00
2026-09-05 20:02:25 -07:00
2026-09-05 20:02:25 -07:00
2026-09-05 20:02:25 -07:00
2026-09-05 20:02:25 -07:00
2026-09-01 19:06:44 -07:00
2026-09-01 19:06:44 -07:00
2026-09-14 14:54:53 -07:00
2026-09-14 14:54:53 -07:00
2026-08-31 14:58:10 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-09-04 23:27:30 -07:00
2026-09-04 23:27:30 -07:00
2026-08-12 20:55:29 -07:00
2026-08-30 18:13:36 -07:00
2026-08-30 18:13:36 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 14:31:42 -07:00
2026-08-18 03:12:47 -07:00
2026-08-12 20:55:29 -07:00
2026-08-12 20:55:29 -07:00
2026-08-30 18:13:36 -07:00
2026-08-18 15:59:17 -07:00
2026-08-18 15:59:17 -07:00
2026-08-18 03:12:47 -07:00
2026-09-04 16:40:28 -07:00
2026-09-20 14:41:50 -07:00
2026-09-20 14:41:50 -07:00
2026-09-03 16:13:03 -07:00
2026-09-03 16:47:32 -07:00
2026-08-13 22:48:24 -07:00
2026-08-30 18:50:56 -07:00
2026-08-30 18:50:56 -07:00
2026-09-05 21:54:37 -07:00
2026-09-05 21:54:37 -07:00
2026-08-05 01:13:13 -07:00
2026-08-05 01:13:13 -07:00
2026-08-05 01:13:13 -07:00
2026-08-05 01:13:13 -07:00
2026-08-22 21:12:23 -07:00
2026-08-16 23:51:53 -07:00
2026-08-16 23:51:53 -07:00
2026-09-02 23:13:57 -07:00
2026-09-02 13:10:05 -07:00
2026-09-02 23:13:57 -07:00
2026-08-16 23:51:53 -07:00
2026-08-22 21:12:23 -07:00
2026-08-22 21:12:23 -07:00
2026-09-02 13:10:05 -07:00
2026-09-02 13:10:05 -07:00
2026-08-13 22:48:24 -07:00
2026-08-22 21:12:23 -07:00
2026-08-13 22:48:24 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-08-30 12:10:11 -07:00
2026-08-30 14:42:07 -07:00
2026-07-28 19:58:58 -07:00
2026-08-30 12:10:11 -07:00
2026-08-30 14:42:07 -07:00
2026-09-21 11:52:37 -07:00
2026-09-21 11:52:37 -07:00
2026-09-21 11:52:37 -07:00
2026-09-21 11:52:37 -07:00
2026-09-21 11:52:37 -07:00
2026-09-21 11:52:37 -07:00
2026-08-31 13:22:27 -07:00
2026-09-15 01:24:30 -07:00
2026-08-31 13:22:27 -07:00
2026-08-31 13:22:27 -07:00
2026-08-31 02:17:00 -07:00
2026-08-31 13:22:27 -07:00
2026-08-31 13:22:27 -07:00
2026-08-31 13:22:27 -07:00
2026-08-31 13:22:27 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-08-31 13:22:27 -07:00
2026-08-31 13:22:27 -07:00
2026-08-31 13:22:27 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-21 11:52:37 -07:00
2026-07-29 18:21:26 -07:00
2026-08-15 00:38:13 -07:00
2026-08-15 00:38:13 -07:00
2026-08-24 18:12:42 -07:00
2026-08-24 18:12:42 -07:00
2026-09-06 17:36:29 -07:00
2026-09-06 17:36:29 -07:00
2026-09-04 16:42:42 -07:00
2026-09-12 20:10:49 -07:00
2026-09-04 16:42:42 -07:00
2026-08-28 16:45:58 -07:00
2026-09-05 21:42:34 -07:00
2026-09-12 20:45:42 -07:00
2026-09-16 23:03:37 -04:00
2026-09-16 23:03:37 -04:00
2026-09-16 23:03:37 -04:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-09-20 14:41:50 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-30 23:05:32 -07:00
2026-08-24 22:44:08 -07:00
2026-08-24 22:44:08 -07:00
2026-09-15 01:24:30 -07:00
2026-09-02 18:04:48 -07:00
2026-08-24 22:44:08 -07:00
2026-08-24 22:44:08 -07:00
2026-08-24 22:44:08 -07:00
2026-09-15 01:19:32 -07:00
2026-09-15 01:19:32 -07:00
2026-09-05 22:42:06 -07:00
2026-09-05 22:42:06 -07:00
2026-08-14 22:18:36 -07:00
2026-08-14 22:18:36 -07:00
2026-09-03 16:27:13 -07:00
2026-09-03 16:27:13 -07:00
2026-09-01 19:01:59 -07:00
2026-09-05 22:30:01 -07:00
2026-09-01 20:26:00 -07:00
2026-09-01 20:26:00 -07:00
2026-09-15 19:02:50 -04:00
2026-09-15 19:02:50 -04:00
2026-09-01 20:26:00 -07:00
2026-09-15 19:02:50 -04:00
2026-09-15 19:02:50 -04:00
2026-09-01 20:26:00 -07:00
2026-08-18 03:12:47 -07:00
2026-09-01 17:20:17 -07:00
2026-08-29 16:06:15 -07:00
2026-08-29 16:06:15 -07:00
2026-08-27 15:08:40 -07:00
2026-08-17 15:57:07 -07:00
2026-08-20 01:45:17 -07:00
2026-09-15 01:24:30 -07:00
2026-09-05 22:16:57 -07:00
2026-09-14 14:52:45 -07:00
2026-09-14 14:52:45 -07:00
2026-08-13 22:48:24 -07:00
2026-09-16 22:24:10 -07:00
2026-09-16 22:24:10 -07:00
2026-09-20 23:26:51 -07:00
2026-09-20 23:26:51 -07:00
2026-08-17 15:57:07 -07:00
2026-08-17 15:57:07 -07:00
2026-09-16 22:24:10 -07:00
2026-09-16 22:24:10 -07:00
2026-08-13 22:48:24 -07:00
2026-09-16 22:24:10 -07:00
2026-08-29 16:06:15 -07:00
2026-09-15 01:59:58 -07:00
2026-09-15 01:59:58 -07:00
2026-08-20 01:45:17 -07:00
2026-08-20 01:45:17 -07:00
2026-08-20 01:45:17 -07:00
2026-08-20 01:45:17 -07:00
2026-08-17 12:23:50 -07:00
2026-08-17 12:23:50 -07:00
2026-08-31 21:11:09 -07:00
2026-08-31 21:11:09 -07:00
2026-08-29 01:53:31 -07:00
2026-09-14 14:52:45 -07:00
2026-09-14 14:52:45 -07:00
2026-08-07 20:35:22 -07:00
2026-09-06 18:33:12 -07:00
2026-09-06 18:33:12 -07:00
2026-08-22 05:45:21 -07:00
2026-08-07 20:35:22 -07:00
2026-08-31 22:37:23 -07:00
2026-07-30 17:49:32 -07:00
2026-07-30 17:49:32 -07:00
2026-08-31 22:37:23 -07:00
2026-07-30 17:49:32 -07:00
2026-08-22 20:35:59 -07:00
2026-08-22 20:35:59 -07:00
2026-09-20 14:41:50 -07:00
2026-09-02 01:39:48 -07:00
2026-09-02 01:39:48 -07:00
2026-08-30 01:49:05 -07:00
2026-08-30 01:49:05 -07:00
2026-09-12 21:18:50 -07:00
2026-09-12 21:18:50 -07:00
2026-09-15 02:00:27 -07:00
2026-09-02 01:39:48 -07:00
2026-09-02 01:39:48 -07:00
2026-09-15 02:00:27 -07:00
2026-09-20 14:41:50 -07:00
2026-09-20 14:41:50 -07:00
2026-08-19 22:37:42 -07:00
2026-08-19 22:37:42 -07:00
2026-09-01 17:21:10 -07:00
2026-08-30 18:13:36 -07:00
2026-08-18 03:12:47 -07:00
2026-08-19 22:37:42 -07:00
2026-08-19 22:37:42 -07:00