zlh-grind/SESSION_LOG/2026-03-01-upload-pipeline-filesystem-consolidation.md

79 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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