chore: bump @relayfile/sdk to ^0.8.21 (export-based mount bootstrap; fixes Linear issues not mounting)#205
Conversation
The Pear mount binary ships transitively via @relayfile/sdk's optionalDependencies (@relayfile/mount-<platform>-<arch>). On 0.8.20 the mount has no /fs/export endpoint — it bootstraps a mount by walking /fs/tree and fetching every file one-by-one via serial /fs/file. For a large scope like /linear/issues (600+ files) that serial walk exceeds the mount's per-sync deadline on every cycle, so the bootstrap never completes, no state file is written, and the scope never mounts. Small scopes (e.g. /linear/teams) mount fine, masking the issue. 0.8.21 adds bulk /fs/export (+ /fs/bulkwriteback) and bootstraps via the single export call instead. Verified against prod (api.relayfile.dev) on the same workspace: 0.8.20 → context deadline exceeded, 0 files, no state (even at a 4-min timeout); 0.8.21 → 8s, 611 files + state written. The renderer launches the optional-package binary from node_modules first (resolveRelayfileMountBinary), so bumping the sdk pin is sufficient — a clean npm install pulls a properly-signed 0.8.21 mount. Lock also heals 6 previously-missing @tailwindcss/oxide-wasm32-wasi optional wasm sub-deps (additions only; no packages removed). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
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 ignored due to path filters (1)
📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThis PR updates the ChangesDependency Update
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 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 |
|
Your free trial PR review limit of 300 PRs has been reached. Please upgrade your plan to continue using CodeAnt AI. |
There was a problem hiding this comment.
Code Review
This pull request updates the @relayfile/sdk dependency from version 0.8.20 to 0.8.21 in both package.json and package-lock.json. Additionally, the lockfile reflects the removal of several libc constraints across multiple platform-specific optional dependencies, and introduces nested dependencies under @tailwindcss/oxide-wasm32-wasi. There are no review comments, and I have no additional feedback to provide.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Problem
.integrations/linear/issuesnever mounted in Pear — every sync cycle loggedcontext deadline exceeded, no.relayfile-mount-state.jsonwas ever written, and no issue files synced down..integrations/linear/teams(same workspace) mounted fine, which masked the issue.Root cause (verified)
The mount binary ships transitively via
@relayfile/sdk'soptionalDependencies(@relayfile/mount-<platform>-<arch>). The pinned 0.8.20 binary has no/fs/exportin it (stringsshows only/fs/tree+/fs/file). It bootstraps a mount by walking the tree and fetching every file one-by-one via serial/fs/file. For/linear/issues(~609 files) that serial walk exceeds the mount's per-sync deadline every cycle, so the bootstrap never completes.Small scopes like
/linear/teams(a handful of files) finish in seconds, so they mounted — masking the bug.Prod was healthy the whole time — hitting
api.relayfile.devdirectly with the mount token,GET /fs/export?path=/linear/issuesreturns 609 entries / 1.8 MB in ~10 s (HTTP 200, already path-scoped). So this is a client-binary problem, not a server wedge.Fix
Bump
@relayfile/sdk^0.8.20 → ^0.8.21. 0.8.21 adds bulk/fs/export(+/fs/bulkwriteback) and bootstraps via the single export call.The renderer's
resolveRelayfileMountBinarychecks the optional-package binary undernode_modulesfirst, so bumping the sdk pin is sufficient — a cleannpm installpulls a properly-signed 0.8.21 mount.Verification (head-to-head, same workspace / prod endpoint / 240 s timeout)
context deadline exceeded, 0 files, no state — even at 4 min/fs/export, 8 s → 611 files + state written ✅Confirmed live: after swapping 0.8.21 in and restarting Pear,
/linear/issuesmounted — 105 issue files synced,mount sync cycle completed.Notes
package-lock.jsonalso heals 6 previously-missing@tailwindcss/oxide-wasm32-wasioptional wasm sub-deps (additions only; no packages removed — net 1070 → 1076).<uuid>.json/.relay/state.jsonDaytona mount-state leaks + malformedissues <uuid>.jsonrecords polluting/linear/issues.🤖 Generated with Claude Code