Remote plugin listing: tar checksum check and read-only snapshot bytes
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 45/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
Research direction
Start with src/node/services/agentPlugins/remotePluginListing.ts, especially parseTarFiles and tarMemberAt, then inspect MemoryPluginFs.readFileCapped and the callers that may mutate its returned bytes. Check the tar checksum and end-of-archive handling, and trace which callers need writable bytes. Done means corrupt tar data is rejected and cached snapshot bytes cannot be corrupted by callers, while preserving the intended warm-read behavior.
Written by the indexing model from the issue text.
Description
Follow-up from the final check of #7246 (remote plugin listing parser, Refs #6426). Neither item is a blocker: every name in the listing is validated again, and a bad archive refuses the whole listing.
parseTarFiles(src/node/services/agentPlugins/remotePluginListing.ts,tarMemberAt) does not check the tar header checksum, and it ignores bytes after the end-of-archive block. A checksum check would catch a corrupt transport earlier.MemoryPluginFs.readFileCappedreturns a view of the cached snapshot Buffer, not a copy. This is intended: the perf owner asked for a view so a warm read never copies (#6426). A caller that mutates the returned bytes corrupts the cache. Options: document the read-only contract at each caller, or return a copy only for callers that write.
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high
- Dominant language
- TypeScript
- Stars
- 2.1k
- Forks
- 140
- Avg merge
- 5h 8m
- Merged PRs (30d)
- 952
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from coder/xum
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
Similar issues
-
ready
Difficulty 2/5 1-3 hours Newbie friendliness 63/100
wheresrhys/totf#1214 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
CodeChefVIT/ffcs#281 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
endora-commerce/endora-commerce#451 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
vetro-protocol/vetro-monorepo#1007 ·
Maintainers usually reply within 1 day