Skip to content

Report live view timeouts to parent frame - #362

Open
robertjamesprior wants to merge 2 commits into
mainfrom
hypeship/neko-timeout-telemetry
Open

Report live view timeouts to parent frame#362
robertjamesprior wants to merge 2 commits into
mainfrom
hypeship/neko-timeout-telemetry

Conversation

@robertjamesprior

@robertjamesprior robertjamesprior commented Sep 2, 2026

Copy link
Copy Markdown

tldr

Telemetry only: post live-view connection timeouts and ICE candidate diagnostics from the Neko client to the dashboard parent frame, and let the parent toggle read-only mode without remounting the iframe.

why

  • #3736 (GPU live view startup OOM classification) merged into the closed hypeship/live-view-recovery stack, not main. It listens for KERNEL_CONNECTION_TIMEOUT, so the dashboard's classifier has no production trigger until this lands on the image path.
  • The 52a22b79 relay-escalation commit that was on this branch's previous head changes global ICE policy (relay-only on retry). That is out of scope for GPU OOM (Steven's review on #3733: retry does not address the confirmed OOM failure path) and is deferred to the generic-recovery rescope.
  • The read-only toggle lets the dashboard update read-only without an iframe remount that spikes the first connect to connecting and loses ICE context.

what landed

  • images/chromium-headful/client/src/neko/base.ts: on the 15s connect watchdog, post KERNEL_CONNECTION_TIMEOUT to the parent frame with state and candidate summaries (type, protocol, address family).
  • images/chromium-headful/client/src/app.vue: accept parent-frame KERNEL_SET_READ_ONLY messages instead of forcing a remount.
  • This branch no longer carries the relay-retry commit (52a22b79) or the auto iceTransportPolicy override; those are deferred.
  • The neko dependency bump to ICE-candidate-selection logging (16605715) went away as well — not needed for parent-frame telemetry.

out of scope

  • Retry escalation and ICE policy changes; they belong in the generic-recovery rescope, not in telemetry.
  • A full audit of ICE lifecycles with routing policies, rate limits, and hard state resets.

@robertjamesprior
robertjamesprior marked this pull request as ready for review September 2, 2026 15:24
@sjmiller609
sjmiller609 removed their request for review September 3, 2026 15:04
@robertjamesprior robertjamesprior changed the title Report Neko connection timeouts to parent frame Report live view timeouts and ICE diagnostics to parent frame Sep 10, 2026
@robertjamesprior
robertjamesprior force-pushed the hypeship/neko-timeout-telemetry branch from b3ee84c to 8c850ad Compare September 10, 2026 16:43
@robertjamesprior robertjamesprior changed the title Report live view timeouts and ICE diagnostics to parent frame Report live view timeouts to parent frame Sep 10, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 8c850ad. Configure here.

if (readOnly) {
if (releaseControl) {
this.$accessor.remote.release()
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parent lock loses local lock

Medium Severity

Parent-frame lock calls release and then setLocked(true), but the control/release handler runs remote.reset(), which clears locked. The local lock that is supposed to block input even if hosting is granted again does not persist, so a later control/locked can restore input while the embedder still believes the view is read-only.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 8c850ad. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant