Skip to content

fix(webxr): let 0 disable the stream-attach and warm-up timeouts - #1257

Merged
gareth-morgan-nv merged 1 commit into
mainfrom
gmorgan/webxr-zero-disables-startup-timeouts
Oct 13, 2026
Merged

gareth-morgan-nv merged 1 commit into
mainfrom
gmorgan/webxr-zero-disables-startup-timeouts

Conversation

@gareth-morgan-nv

@gareth-morgan-nv gareth-morgan-nv commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

streamAttachTimeoutMs, warmupBeginTimeoutMs and warmupEndTimeoutMs were passed straight to setTimeout, so a value of 0 fired the timer immediately instead of turning detection off. There was no supported way to disable the detection short of a ~24-day timeout.

  • A value <= 0 now disables each of the three timers (armStreamAttachTimer, armWarmupBeginTimer, armWarmupEndTimer return early). All arming sites go through these, including the config re-arm effect and the onLog begin-to-end handoff.
  • warmupEndTimeoutMs <= 0 also disables the warm-up-begin timer: that timer only hands off to the end timer, so leaving it armed would still tear the session down. Stream-attach detection is unaffected.
  • Prop docs, URL param descriptions and settings-UI hints updated; the attach hint no longer claims the detection "always runs".

Use case: setups where the OpenXR app starts after the client connects. The runtime sends small empty keep-alive frames until an app submits frames, which the client counts as decoder warm-up, so the 30s end timer can fire before the app is up and force a reconnect. ?warmupEndTimeoutMs=0 turns warm-up detection off for that flow.

Test plan

  • jest src/config, eslint and prettier clean on the touched files; tsc --noEmit reports no errors in them
  • SKIP=check-copyright-year pre-commit run --all-files passes
  • No automated test covers the disabled path (the Playwright mock harness would be the place for one)

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Bug Fixes

    • Setting a stream-attach timeout to zero or less now disables stream-attach detection. This detection still runs when retry is off, and its timeout doubles on retry when retry is enabled.
    • Setting the warm-up end timeout to zero or less now disables all warm-up detection. Warm-up begin detection is also disabled if either warm-up timeout is zero or less.
  • Documentation

    • Clarified timeout behavior in the troubleshooting settings and timeout descriptions.

streamAttachTimeoutMs, warmupBeginTimeoutMs and warmupEndTimeoutMs were
passed straight to setTimeout, so 0 fired the timer immediately instead
of turning detection off. Treat a value <= 0 as disabled for each timer.

warmupEndTimeoutMs <= 0 also disables the warm-up-begin timer, since
that timer only hands off to the end timer; stream-attach detection is
unaffected.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
@coderabbitai

coderabbitai Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: NVIDIA/IsaacCapture/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: 0721225a-0cdb-4998-917b-0896da78f330
📥 Commits

Reviewing files that changed from the base of the PR and between 63a6935 and 2fefc65.

📒 Files selected for processing: 3
  • deps/cloudxr/webxr_client/helpers/react/CloudXRComponent.tsx
  • deps/cloudxr/webxr_client/src/config/params.ts
  • deps/cloudxr/webxr_client/src/index.html

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.

📝 Walkthrough

Timer setup now skips stream-attach detection when its timeout is nonpositive. Warm-up begin detection is skipped when either warm-up timeout is nonpositive, and warm-up end detection is skipped when its timeout is nonpositive. The timeout descriptions in the component, configuration parameters, and troubleshooting settings document these conditions.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to 2fefc

Setting a timeout to zero disables its watchdog, including one already armed. No actionable merge-blocking risk remains.

Pre-merge checks: Passed 5
Passed Passed checks: 5 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the main change: allowing 0 to disable stream-attach and warm-up timeout detection.
Docstring Coverage Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 2 files. (1 skipped: 1 …
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@gareth-morgan-nv
gareth-morgan-nv merged commit cb3ba6d into main Oct 13, 2026
40 checks passed
@gareth-morgan-nv
gareth-morgan-nv deleted the gmorgan/webxr-zero-disables-startup-timeouts branch October 13, 2026 19:39
github-actions Bot added a commit that referenced this pull request Oct 13, 2026

This branch was successfully deployed

1 active deployment
dev — 2fefc65c Deployed Oct 13, 2026 by gareth-morgan-nv via publish-wheel #5573
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants