basquetWi + New ticket
mars MARS-123

Broaden skew auto-reload classifier to chunk-load TypeErrors (Load failed / Failed to fetch / ChunkLoadError / dynamic-import errors) so stale-chunk refs self-recover via one-shot cache-bust — gated on recurrence; error-report-block.tsx isVersionSkew currently matches only the exact RSC stale-bundle string. Low risk (bounded by sessionStorage one-reload-per-session + __rscRetry guard). Do NOT ship for a single transient; revisit if Load-failed/chunk-load warns recur with volume.

Done low unassigned

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 2026-06-14
  • wi-cli-venus commented · 2026-06-14
    Scope expands to a 'transient-network UX hardening' bundle (coder-mars triage of the Load-failed abort): (1) broaden skew auto-reload classifier to chunk-load TypeErrors for stale-chunk self-recovery [original]; (2) catch the server-action dispatch rejection client-side and treat AbortError/TypeError 'Load failed'/'Failed to fetch' as a soft INLINE retry banner instead of bouncing to the full-page error-boundary screen (current behavior is correct+recoverable but heavier UX than needed). Confirmed today: aborts do NOT leak as toasts, createPractica is transactional (no partial row), no global unhandledrejection→toast handler. Still gated on recurrence with volume — not worth a push for a single benign abort.
  • wi-cli-venus commented · 4w ago
    --body
  • wi-cli-venus completed · 4w ago
    SHA 8c0ac31 / v2.36.17 live-confirmed (dpl_jgoVFxoid6XrvNcnFghGXGCPVjrP). isVersionSkewError broadened (skew-recovery.ts) to catch ChunkLoadError/Failed-to-load-chunk/Loading-chunk/Failed-to-fetch/Load-failed/module-script-import-fail, gated no-digest client-thrown only; existing one-reload-per-session + __rscRetry guards unchanged. Class-S, build+119 tests green, cold brief sent to audit-mars-ca.
  • wi-cli-venus statusChanged · 4w ago
    status=inProgress
  • wi-cli-venus commented · 4w ago
    --body
  • wi-cli-venus completed · 4w ago
    SHA a89dec1 / v2.36.18 live-confirmed (dpl_4ek4kPYSzjTLZiSGaAT4kGR3HCeT). Audit PASS:a89dec1 (narrowed to chunk/dynamic-import-specific signatures + RSC skew, no longer masks unrelated network errors) — corrects the earlier BLOCK:8c0ac31 finding. Full PTD green.
  • wi-cli-venus commented · 4w ago
    New data point 2026-07-18 17:53 UTC (row d2c288d2): 'Failed to load chunk /_next/static/chunks/3nzm688z74tgd.js?dpl=... from module 89101', /mi-cursada, iOS 18.7 Safari Mobile, single occurrence. detail.isSkewRetry=false → the skew auto-reload matcher did NOT catch this 'Failed to load chunk … from module N' shape, so a benign deploy-skew transient bubbled to error-tier and PAGED Elazar. Elevates the case: this class now pages the human (not just warn-noise). Fix = broaden skew-retry matcher to absorb chunk-load-failure/dynamic-import shapes so they auto-reload silently instead of reaching the error rail. Still single-occurrence (MARS-123 ship-gate is recurrence/volume); coder picks up after MARS-526/532.
  • wi-cli-venus commented · 4w ago
    New data point 2026-07-18 17:53 UTC (row d2c288d2): 'Failed to load chunk /_next/static/chunks/3nzm688z74tgd.js?dpl=... from module 89101', /mi-cursada, iOS 18.7 Safari Mobile, single occurrence. detail.isSkewRetry=false -> skew auto-reload matcher did NOT catch this 'Failed to load chunk ... from module N' shape, so a benign deploy-skew transient bubbled to error-tier and PAGED Elazar. Elevates the case: this class now pages the human, not just warn-noise. Fix = broaden skew-retry matcher to absorb chunk-load-failure/dynamic-import shapes so they auto-reload silently instead of reaching the error rail. Still single-occurrence (ship-gate is recurrence/volume); coder picks up after MARS-526/532.
  • wi-cli-venus commented · 4w ago
    Recurrence watch 2026-07-20: 4 bare 'Load failed' TypeError client/unhandled-errors today across 5 routes (/practicas/nueva ×2, /login, /mi-cursada, /practicas/[id] ×2). All iOS 18.7 Safari mobile, byte-identical device signature (likely 1-2 flaky-network iPhones), isSkewRetry=false, appVersion 2.48.10. NOT a chunk signature (no ChunkLoadError/dynamic-import), NOT deploy-skew, single-device-class spread over time = app-wide iOS-transient background rate. Recurrence-with-volume gate NOT tripped despite ~15-push burst — no classifier broadening. Watch only; escalate if multi-device same-route clustering or ChunkLoadError-class appears.
  • wi-cli-venus commented · 4w ago
    Recurrence evidence (2026-07-20, coder-verified read-only): 'Load failed' now qualifies MARS-123's volume gate. 72h population = 7 rows, ALL iPhone iOS 18.7 AppleWebKit, 5 distinct sessions / multiple users / 3 days, route-agnostic (/practicas, /practicas/nueva, /practicas/[id], /mi-cursada). One (07-18, level=error) is an explicit 'Failed to load chunk ...?dpl=dpl_CAmr...' carrying a STALE deployment id = textbook deploy-skew. Discriminators confirming benign (not a route bug): 0 server-side error/fatal on /practicas% in 72h (588 non-client events); non-iPhone traffic (13 events) has ZERO 'Load failed'. The current isVersionSkew classifier matches only the exact RSC stale-bundle string, so bare WebKit 'Load failed'/'Failed to fetch'/chunk-load does NOT self-recover. Actionable when bandwidth frees (still P3, low-risk — bounded by sessionStorage one-reload-per-session guard). Two applog warns for id=bfce89ed... @16:54:49 benign-closed against this evidence.
  • wi-cli-venus commented · 4w ago
    Recurrence evidence (2026-07-20, coder-verified read-only): 'Load failed' now qualifies MARS-123's volume gate. 72h population = 7 rows, ALL iPhone iOS 18.7 AppleWebKit, 5 distinct sessions / multiple users / 3 days, route-agnostic (/practicas, /practicas/nueva, /practicas/[id], /mi-cursada). One (07-18, level=error) is an explicit 'Failed to load chunk ...?dpl=dpl_CAmr...' carrying a STALE deployment id = textbook deploy-skew. Discriminators confirming benign (not a route bug): 0 server-side error/fatal on /practicas% in 72h (588 non-client events); non-iPhone traffic (13 events) has ZERO 'Load failed'. The current isVersionSkew classifier matches only the exact RSC stale-bundle string, so bare WebKit 'Load failed'/'Failed to fetch'/chunk-load does NOT self-recover. Actionable when bandwidth frees (still P3, low-risk - bounded by sessionStorage one-reload-per-session guard). Two applog warns for id=bfce89ed... @16:54:49 benign-closed against this evidence.
  • wi-cli-venus commented · 4w ago
    3rd low-vol 'Load failed' recurrence 2026-07-20 (db-mars diag: 5 events/3 sessions/3 versions/24h, scattered not burst, no deploy-instant cluster). Benign-closed the 20:01Z fire (id=33eac467) as scattered stale-tab skew, no live-chunk-404 regression. Broaden-classifier now recur-qualified on persistent low-vol recurrence. Ready to build (Class-S, reversible, self-healing) — queued to coder as follow-on after MARS-544 UI leg.
  • wi-cli-venus completed · 4w ago
    No-code close: chunk/dynamic-import skew signatures already live; bare 'Load failed'/'Failed to fetch' deliberately excluded (audit BLOCK:8c0ac31 → narrowed a89dec1, do-not-re-broaden — masks real network errors). Today's recurrence = benign transient, correctly surfaces.
task
2026-06-14 by wi-cli-venus
4w ago
2026-07-20 20:06