- Added 15 OrbitOS skills (bundled in skills/orbitos/) - Added vault structure templates (views, templates, prompts) - Added install.sh (macOS + Linux) - Removed references/orbitos-skills.md (no longer needed) - Updated README: 30 skills total, unified install flow Total: 9 mm* + 6 dependencies + 15 orbitos = 30 skills
2.6 KiB
HTTP 413 Resolution — Vault Git Push Failure
Observed Problem
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413
send-pack: unexpected disconnect while reading sideband packet
fatal: the remote end hung up unexpectedly
Root Cause
The vault .git/objects pack file exceeded the Gitea server's payload size limit because it contained large binary assets alongside source code:
- Binary assets:
.png,.jpg,.jpeg,.pdf,.ico(product images, screenshots, logos, price lists) - Data files:
.csv,.csv.gz(tick data, sample data) - Agent state:
.omc/directories with session checkpoints
Initial pack size: 175MB After splitting: 193MB (all assets successfully pushed)
Resolution Path (used in practice — June 2026)
Key Insight: The user wants vault to track EVERYTHING
Do NOT add broad .gitignore patterns like *.png, *.pdf, *.csv. The vault is a complete snapshot — clone once and you have all files.
Step 1 — Tighten .gitignore to build artifacts only
# Python build
__pycache__/
.venv/
venv/
*.egg-info/
dist/
build/
# Node build
node_modules/
# OS / IDE
.DS_Store
.idea/
.vscode/
# AI agent state
.omc/
.hermes/
REMOVE any broad patterns: *.csv, *.pdf, *.png, *.jpg, *.mq5, 20_Projects/*/.
Step 2 — Remove nested .git from project copies
Nested .git directories cause gitlinks (mode 160000) which break clone. Remove them before first commit:
for d in ~/vault/20_Projects/*/; do
[ -d "$d.git" ] && rm -rf "${d}.git"
done
Step 3 — Split push per-file
When the vault has 200+ files of all types, push one file at a time:
for f in $(git diff --cached --name-only); do
git add "$f" && git commit -m "add: $(basename "$f")" && git push
done
This produces ~600 small commits — acceptable for initial setup. Can squash later.
Step 4 — Verify despite false errors
git push may show HTTP 413 even when the push actually succeeded — the server accepts the pack but the sideband connection closes before the client receives the success response.
git fetch origin
git log origin/main --oneline | head -3
If the commit appears on origin, the push succeeded despite the error message.
Prevention
- Check size before push:
du -sh .git/ - Increase post buffer:
git config http.postBuffer 524288000 - Push incrementally for initial full-vault upload
- Never nuke .git:
rm -rf .git && git initdestroys history — only use when local state is irrecoverable - Expected vault size: 150-200MB (normal for complete workspace with assets)