chore: refresh PDF, scrolling, and desktop dependencies - #236
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
Codex review: needs maintainer review before merge. Reviewed September 4, 2026, 12:00 PM ET / 16:00 UTC. ClawSweeper reviewWhat this changesUpdates PDF.js, Virtua, and Electron, refreshes the pnpm lockfile and generated embedded web assets, and records the maintenance update in the changelog. Merge readiness✅ Ready for maintainer review Keep open: current main is the PR's direct parent and still has the prior dependency resolutions, while this clean, focused update has passed its reported checks and the prior CodeQL blocker is now resolved. Priority: P3 Review scores
Verification
How this fits togetherThe web app uses PDF.js for artifact previews and Virtua for virtualized message and member lists, then builds those files into assets embedded by the Go API. The desktop package runs the same product inside Electron. flowchart LR
A[Uploaded PDFs] --> B[Web artifact viewer]
C[Message timelines] --> D[Virtualized lists]
B --> E[Web application build]
D --> E
E --> F[Embedded API web assets]
G[Desktop application] --> H[Electron runtime]
Before mergeNone. Agent review detailsSecurityNone. Review metrics
Technical reviewBest possible solution: Land the focused dependency refresh after normal draft-to-ready maintainer workflow, retaining the lockfile and regenerated embedded assets together. Do we have a high-confidence way to reproduce the issue? Not applicable: this PR is a dependency-maintenance change rather than a report of a currently failing behavior; its supplied native and browser validation exercises the affected paths. Is this the best way to solve the issue? Yes: updating the manifests, lockfile, and generated embedded distribution together is the narrow maintainable path for these active dependencies. AGENTS.md: found, but no applicable review policy affected this item. Codex review notes: model internal, reasoning high; reviewed against fa52084a04bf. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (1 earlier review cycle)
|
Updates the dependencies behind PDF previews, virtualized lists, and the desktop shell: PDF.js 6.2.108 → 6.3.289, virtua 0.50.6 → 0.51.0, and Electron 43.4.1 → 43.5.1. The embedded web assets are regenerated from the updated lockfile; application and test source are unchanged. The Unreleased changelog records the maintenance update.
All three versions cleared the existing 48-hour release-age policy at the fixed September 4, 09:24 UTC audit cutoff. A complete Electron 43 audit found 43.5.1 eligible; 43.6.0 remains too young. Node and macOS minimums, package-manager policy, PDF allocation limits, navigation isolation, and settings/authentication contracts are unchanged.
Virtua's removed legacy-browser fallbacks are compatible with the existing Vite browser targets: ClickClack uses vertical virtualizers and no smooth-scroll option. PDF.js's changed metadata return types affect APIs the viewer does not call. Electron remains on the supported 43 line; the packaged app and both arm64/x64 Electron frameworks declare macOS 12 as their minimum.
Validation:
pnpm check; coverage 86.6%; web/SDK/server/desktop/docs builds.Native proof ran on arm64 macOS 26.6.2; macOS 12 compatibility is verified through bundle and Mach-O minimums, not an actual macOS 12 run. Both baseline and candidate received the same OS denial when applying the existing login-launch preference, so that behavior is not claimed as verified. The existing openapi-typescript/TypeScript peer warning is unchanged. No issue closure is implied by the upstream dependency fixes.
PDF preview before and after, in the signed native app with synthetic data:
Candidate reading position before and after an incoming synthetic message: