Conversation
added 11 commits
September 21, 2026 04:44
The load-more spinner's standalone v-if sat between the virtualized list and the plain-list v-else-if, severing the conditional chain. With 32 or more announces both lists mounted at once: the plain list rendered every row below the fold, doubled scroll handlers, and produced a second scroll container that chained wheel events to the page. Moving the spinner after the else chain reattaches the branches so exactly one list renders.
A swipe-back or pull-to-refresh that armed during touchmove kept its distance when the finger reversed direction, so touchend still fired the action on a stale value. touchcancel also shared the touchend handler, letting interrupted gestures trigger navigation or reload. Clear navSwipeBackDistance before evaluating pull intent in touchmove, evaluate pull state unconditionally so reversals zero it, and route touchcancel to a reset-only handler.
The GPU crash-storm fallback relaunches with --disable-gpu and friends in process.argv, which leaked through getUserProvidedArguments into the backend spawn and the shell path guard. Filter them alongside --no-sandbox so only real user flags reach the Python side.
RNS only invokes failed_callback once a request receipt reaches DELIVERED, so a packet request stuck in SENT, an unanswered request, or a link torn down mid-request never timed out and the download spun forever. Add an async watchdog that fails the request when the link closes or the response window lapses, extending the deadline on progress. Also handle link.request raising or returning no receipt by evicting the cached link and reporting a clean failure.
Downloads issued on the previous socket report results to the dead client, so pages, files, and images spun forever after a reconnect. Keep the sent payload on each callback entry and, on reconnect, cancel the orphaned backend transfer by its old download id before re-issuing the request on the new socket. Ids are cleared first so the stale cancelled event cannot purge the resent entry or flash cancelled UI.
Move the page-mode navigation buttons out of the scroll area into a pinned footer so Back/Continue stay reachable on small screens. Stop forcing default_bootstrap_only on in the recommended and discovery modes; the backend default is off since it was decoupled from the Reticulum config, so the tutorial was silently overriding it. Update the English hint text to match.
Move the location search bar into the header row on sm and up so it no longer overlays the map; the absolute overlay is now mobile-only behind the search toggle. Point the onboarding tooltip at the map tools button instead of the drawing toolbar export button, positioning it below the button with a straight arrow, and drop the xl top offset that fought the toolbar layout.
…sets The bundler cut shellOrigin.js on a \n marker that never matches under CRLF checkouts, so Windows builds inlined the main-process-only helpers into the preload bundle. Normalize line endings when reading sources so every platform emits the same bundle. Regenerate preload.bundle.js to pick up the hardened isTrustedShellFileUrl, and rebuild electron-shell.css, which was stale relative to the shell HTML sources.
GHCR accepts OCI zstd layers, which cut push and pull time versus gzip at similar ratios. Export the GHCR build with compression=zstd and force-compression so base layers are recompressed too. Docker Hub regular repos still expect gzip, so the Hub push is now a second cache-hit build with default compression. The GHCR digest continues to feed the bloat check, trivy scan, and cosign signature.
docker/build-push-action has no compression, force-compression, or oci-mediatypes inputs, so the previous commit's keys were ignored and GHCR still received gzip layers. Move them into outputs as type=image,push=true,compression=zstd,force-compression=true, oci-mediatypes=true, which is the documented path for layer compression. Tags still apply via the -t args the action adds.
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (1 file in incremental diff)
Previous Review Summaries (2 snapshots, latest commit acd9e67)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit acd9e67)Status: 1 Issue Found | Recommendation: Address before merge Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (2 changed files in incremental diff)
Previous review findings both resolved: resent send-failures are now settled (entry removed, callback/loading state handled) and the reconnect-resend recovery path is covered by five new tests. Fix these issues in Kilo Cloud Previous review (commit 7e82b1f)Status: 2 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (17 files)
Reviewed by glm-5.3-flash · Input: 0 · Output: 0 · Cached: 0 |
WebSocketConnection.send can return false if the socket dies between the reconnect event and the resend. The cancel and re-issued payload were silently dropped, leaving the download spinning. Fail the entry through onFailureCallback like a failed initial send, and cover the resend path with tests.
The reason fallback already tolerates a missing $t helper. Apply the same guard to the failure toast so settling a primary page download cannot throw in a stubbed harness.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ports and hardening landed on dev, all CI green on 7e82b1f:
(Windows Job Object / sandbox crash-storm fallback was leaking them)
clean failure + link eviction when link.request raises or returns
nothing
reconnect instead of spinning forever
default_bootstrap_only=false default
tooltip re-anchored to the map tools button
preload.bundle.js and electron-shell.css
Docker Hub stays gzip via a second cache-hit export
Test plan