api: commit-pack refuses permission-style file modes that upstream normalizes
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 49/100
Research direction
Start with internal/api/handlers_write_commit.go:506 and inspect wcValidModes and the commit-pack handler. Trace diff-commit and every other route that accepts FileOperation.mode to compare their validation paths. Normalize the four documented forms before validation, preserve current behavior for other modes, and confirm the affected requests are accepted while other mode responses stay unchanged.
Written by the indexing model from the issue text.
Description
Problem
Spec 5d8e1801 says commit-pack stores 644 and 100664 as 100644, and 755 and 100775 as 100755. We answer 400 for all four (wcValidModes, internal/api/handlers_write_commit.go:506).
Desk decision
Normalize exactly those four forms before validation. Every other mode keeps its current answer. Check diff-commit and every other route that takes FileOperation.mode.
Severity
Medium: valid upstream requests fail.
Upstream audit 2026-11-12, evidence 2026-11-12-1159UTC. Docs spec 5d8e1801 (ETag W/"8GUlAlKU8eko7Rr2", Last-Modified 2026-11-10 22:29:59 GMT). The cluster still serves ee8092bf, so this is documented drift, not a proven deployment (#234 rule: adopt what the docs publish). SDK 0.1.1 (Nov 10) and 0.1.2 (Nov 11) shipped on npm, PyPI and Go; their route list and token minting are unchanged from 0.1.0.
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: medium
- Dominant language
- Go
- Stars
- 0
- Forks
- 0
- Avg merge
- 6h 16m
- Merged PRs (30d)
- 243
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the 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/openstorage
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
coder/openstorage#807 ·
Maintainers usually reply within 1 day
-
api: merge/preview ignores strategy, squash and allow_unrelated_historiesPossibly taken @ThomasK33 claimed this today. Open
Difficulty 4/5 3-5 days Newbie friendliness 35/100
coder/openstorage#805 ·
Maintainers usually reply within 1 day
-
githttp: +import remote serves clone and fetch, and its pushes stay out of the normal branch listPossibly taken @ThomasK33 claimed this today. Open
Difficulty 5/5 Over a week Newbie friendliness 20/100
coder/openstorage#804 · 2 comments ·
Maintainers usually reply within 1 day
-
api: branches/create ignores expected_target_sha, so a guarded create or move can overwrite a branchPossibly taken @ThomasK33 claimed this today. Open
Difficulty 4/5 3-5 days Newbie friendliness 35/100
coder/openstorage#803 ·
Maintainers usually reply within 1 day
-
githttp: hide ephemeral refs from the persistent remote and refuse pushes to them, as the docs sayPossibly taken @ThomasK33 claimed this 1 day ago. Open
Difficulty 4/5 3-5 days Newbie friendliness 35/100
coder/openstorage#799 · 2 comments ·
Maintainers usually reply within 1 day
All issues in coder/openstorage
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/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 68/100
coder/coder-logstream-kube#255 · 1 comment ·
-
kind/features
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
TencentBlueKing/bk-nodemgr#3991 ·
Maintainers usually reply within 1 day
-
meta
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
last9/last9-mcp-server#554 ·
Maintainers usually reply within 1 day