Repository navigation
fix(server): drop typing and keys whose connection closed while they waited behind a message - #235
Conversation
…waited behind a message
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Important Review skippedReview was skipped as selected files did not have any reviewable changes. ⚙️ Run configurationConfiguration used: Repository: devswha/herdr-web-ui/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: devswha/herdr-web-ui/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 5 remain after this review. 📝 SummarySummary by CodeRabbit
WalkthroughQueued input and key actions are now discarded if the originating client disconnects while they wait in the pane queue. The submitted message can still reach the pane. A contract test covers this behavior and a subsequent submit from another connection. ChangesQueued client actions
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix · Severity of issue fixed: Low Suggested reviewers: Merge Risk: ⚪ Minimal · up to No actionable merge risk is identified in the supplied change context. Architecture SummaryArchitecture risk: 🔵 Low · up to The change affects 2 systems. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. 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 unsupported.) ✨ Finishing Touches 💡 2📝 Generate docstrings 💡
🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Comment |
Release v0.3.39: moves the Unreleased notes under 0.3.39 and bumps `package.json` and `herdr-plugin.toml`. In this release, all fixes: a password sent right after a reconnect (#244), typing and keys outliving their connection (#235), panning a terminal whose grid is not the browser's own on a phone (#241), omo's question form in the chat (#237 by @nahwan-kim), and a held pane resumed by a late herdr answer plus a new shell taken for OmO (#243). No remote bundle change: `REMOTE_BUNDLE_VERSION` stays 9. Changelog housekeeping that was waiting for a release: - Compare links at the bottom now cover 0.3.31 to 0.3.39 (they stopped at 0.3.30), and `[Unreleased]` compares from v0.3.39. - Five references that were a bare `#N` are full PR links with their author: #164 is the issue PR #199 fixed, #154 the issue PR #155 closed, and #45 and #6 are PRs. No other wording of released entries changed. `bun scripts/release-notes.ts 0.3.39` prints the notes and exits 0.
Fixes #256. Raises `REMOTE_BUNDLE_VERSION` from 9 to 10, so that remote PCs (Windows PCs included) get the bridge-side fixes merged since `remote-v9`: #235, #243, #249, #251, #264, #265, #267, #278, #281 and the rest of `git log remote-v9..main -- server shared`. `server/machines.test.ts` named the `remote-v9` directory literally and failed on the new number; it now reads the constant. ## Order, from docs/remote-pcs.md 1. Merge this. 2. Push the `remote-v10` tag on `main`: the Remote PC bundles workflow builds, smoke-tests and publishes the five archives and `manifest.json`. 3. Only then release the app: an app that carries the new number finds no `remote-v10` manifest before step 2, and every connected PC's bridge counts as incompatible until it is updated. ## Checked `bun run typecheck`, `bun run test:unit` (734 pass). The bundle build and smoke run in this PR's Remote PC bundles checks.
Closes #233.
What
inputandkeysthat wait behind a composer message in the pane's queue are dropped when the connection that sent them has closed by the time their turn comes.submitis unchanged: a message sent just before the phone locks is still finished.The path for a PC without terminal attach already had this check (#227); this adds it to the attached path and to
keys.Tests
server/submit.contract.test.ts: an attached connection sends a message, a Stop and an Enter, then closes. Only the message reaches the pane. The test fails with the two checks removed (the ESC and the Enter arrive).bun run typecheck;bun test ./server/submit.contract.test.ts(18 pass).