fix: isolate hidden pane render cadence - #2892
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
🚧 Files skipped from review as they are similar to previous changes (3)
Included review availability: Your plan includes up to 10 reviews per rolling hour; 6 remain after this review. 📝 WalkthroughWalkthroughThe render system now tracks render attempts separately from presentation attempts. Source-aware signals and render-target visibility allow visible PTY, graphics, title, and full-render work to bypass hidden-tab render cadence. ChangesPresentation cadence and visibility
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to This change isolates hidden-pane rendering while preserving visible updates and wake-up behavior, with focused regression coverage and reported checks passing; no actionable merge-blocking risk remains beyond normal review. Possibly related PRs
Sequence Diagram(s)sequenceDiagram
participant RenderSignal
participant HeadlessRenderLoop
participant AppRuntime
participant VisibleTerminal
RenderSignal->>HeadlessRenderLoop: report pending visible work
HeadlessRenderLoop->>AppRuntime: check presentation cadence
AppRuntime-->>HeadlessRenderLoop: allow or defer presentation
HeadlessRenderLoop->>VisibleTerminal: render visible frame
HeadlessRenderLoop->>AppRuntime: record render attempt and presentation status
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
2427163 to
9322859
Compare
Greptile SummaryThe PR separates hidden-only PTY render attempts from presentation cadence so hidden panes cannot delay visible terminal work.
Confidence Score: 5/5The PR appears safe to merge with no concrete blocking or independently actionable non-blocking issues identified. The new cadence split preserves bounded hidden-output processing while allowing visible PTY, title, generic, graphics, and full-render work to use the independent presentation cadence.
|
| Filename | Overview |
|---|---|
| src/app/mod.rs | Adds and initializes the presentation timestamp and records ordinary app renders as presentation attempts. |
| src/app/runtime.rs | Introduces independent presentation-cadence checks and centralized render-attempt accounting, with focused cadence coverage. |
| src/render_signal.rs | Makes newly coalesced PTY and terminal-title sources wake the consumer and adds allocation-free pending-source predicates. |
| src/server/headless.rs | Classifies pending work against connected render targets and permits presentation work to bypass hidden-only render cadence. |
| docs/next/CHANGELOG.md | Documents the foreground-input latency fix. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
R[Pending render request] --> C{Normal render cadence due?}
C -->|Yes| T[Take coalesced request]
C -->|No| P{Presentation cadence due?}
P -->|No| W[Wait for deadline or notification]
P -->|Yes| V{Pending presentation work?}
V -->|No: hidden PTY only| W
V -->|Yes: visible PTY, title, generic, graphics, or full| T
T --> L{Retained render plan}
L -->|Hidden PTY| H[Record render attempt only]
L -->|Presentation-capable plan| S[Render or stream]
S --> A[Record render and presentation attempt]
Reviews (1): Last reviewed commit: "fix: isolate hidden pane render cadence" | Re-trigger Greptile
refs herdrdev#2890 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Summary
Checks
cargo nextest run --locked -E 'all() - test(live_server_holds_one_pty_master_fd_per_pane)' --no-fail-fast(3468 passed; excluded test also fails on cleanorigin/masterin this VPS environment)cargo clippy --all-targets --locked -- -D warningsjust windows-lintjust ui-hot-path-architecture-testjust bench-render-scale(1/15/50 ratios unchanged within noise; final background 1.00/1.12/1.12, active 1.00/1.24/1.43)refs #2890