# 2026-03-01 – Upload Pipeline + Filesystem Consolidation **Type:** Implementation + Architecture Consolidation **Status:** Upload implemented, transport tuning in progress --- ## Completed ### Upload Model - Implemented direct runtime upload model - Removed staging and symlink exploration entirely - Uploads write atomically to runtime root - Enforced by strict allowlist (`mods/*.jar`, `world/datapacks/*.zip`) - No directory creation, no staging folders, no symlinks ### Provenance - Added `.zlh_metadata.json` provenance tracking - Extended `stat` response with `source` field (`"user" | null`) - No curated inference implemented (intentional) ### API Transport - Identified `fetch()` streaming as source of upload proxy timing issues - Switched to raw `http.request` piping: ``` req.pipe(proxyReq) proxyRes.pipe(res) ``` - Confirmed agent upload via direct curl - Upload timeout tuning identified as remaining work ### Documentation - Consolidated filesystem architecture docs (`filesystem-and-file-browser.md`, `mod-deployment-safety.md`) - Full grind repo consolidation pass (README, CONSTRAINTS, OPEN_THREADS, SESSION_START, ANTI_DRIFT, UPSTREAMS) --- ## System State - Read: Stable - Write: Stable with shadow backup - Delete: Constrained and safe - Upload: Implemented, transport tuning in progress - Console: Stable --- ## Known Architectural Decisions Locked In - Direct runtime upload — no staging, no symlinks - `.zlh_metadata.json` is the provenance layer; `stat` returns `source` - Raw `http.request` piping for upload proxy — no `fetch()` streaming - Upload allowlist enforced by agent, not API --- ## Remaining Issues ### Upload Transport Timeout - Upload route timeout not yet increased - Need to distinguish: - client abort - upstream timeout - socket reset - Upload route should log explicit error categories ### Dev Server Filesystem Model - Not yet designed - Game server model is complete and stable - Dev runtime layout, artifact promotion strategy, and file editing scope all TBD --- ## Next Steps 1. Increase upload route timeout 2. Add explicit error category logging to upload route 3. Begin dev server filesystem model planning