api: commit-pack refuses permission-style file modes that upstream normalizes

Open
#806 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
49/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
go
Domain
api

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

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from coder/openstorage

All issues in coder/openstorage

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.