fix: twenty-two low-severity findings from the v0.42.0 audit - #420
Merged
Conversation
# Conflicts: # frontend/src/components/diff/FileDiff.tsx # frontend/src/components/sidebar/SessionGroup.tsx # frontend/src/components/sidebar/SessionSidebar.tsx # internal/project/worktree.go
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.
The LOW-severity half of the code-quality audit of everything since v0.42.0 — 22 findings, all
fixed, none skipped. The HIGH/MEDIUM half is
fix/audit-high-medium; that PR merges first andthis branch expects a rebase over it (both touch
worktree.go,FileDiff.tsx,use-panes.ts,panes.ts,SessionSidebar.tsx).Backend
AddHandsOnwrite requeues the drainedseconds instead of logging them away, keeping the documented at-most-one-flush loss bound.
Waitfailure reaches the"yielded nothing" warn instead of
err=nil.git show <oid>:<dir>exits 0 with a tree listing, whichFileLinesreturned as file lines; the git-object path now rejects trees, and the oversize andbinary refusals are tested through it rather than only through the working tree.
relpath.Resolvestats.
fallback window pair, and
checkedText's bad paths via git/gh...-escape predicate lives once inrelpath; the no-prompt env blockis shared between
projectandthemes;HandsOn/handsOnOfcollapse onto oneQueryRowimplementation.winexec.Hide), the same seam every otherchild process already goes through.
Frontend
batch instead of resurfacing later.
(staleness guard), so the destructive button cannot show for the wrong checkout.
resetOn), instead of captioningthe previous session's time as the new one's.
pointercancel, so an interrupted drag cannot leave a buttonlesshover resizing tracks.
groupWithnow enforces the samefitsguardadddoes, counting what did not fit asskipped — the toast already reports it.
MIN_PANE_HEIGHT,grouped),delegatesOfcomputedonce per card, the pane-grid
0.01tolerance and the footer's "15 minutes" ↔handsOnIdleGapmirror both commented,PaneHeaderextracted out ofTerminalHost'sfive-deep JSX, and the move-dialog state extracted from
SessionSidebar.Test plan
binary refusals through the git-object path, Codex cache-write pricing, locked reason on the
fallback pair, plus the frontend guards where extractable pure.
gofmt,go vet, Go tests,pnpm check, 1,320 frontend tests,production build, and the linux/darwin/windows build+vet loop (this touches an OS seam).
fix/audit-high-mediumonce it lands.