Merge OrbitOS into project — one install, everything ready

- 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
This commit is contained in:
Kunthawat Greethong
2026-07-02 10:13:46 +07:00
parent 7bf147069e
commit ddac3f187c
45 changed files with 2695 additions and 197 deletions

View File

@@ -0,0 +1,93 @@
# 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
```gitignore
# 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:
```bash
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:
```bash
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.
```bash
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 init` destroys history — only use when local state is irrecoverable
- **Expected vault size**: 150-200MB (normal for complete workspace with assets)