consolidation pass: replace UPSTREAMS with current stack

This commit is contained in:
jester 2026-03-01 23:29:57 +00:00
parent 1f6db9e002
commit b9304e0aa2

View File

@ -1,65 +1,23 @@
# Upstream Dependencies # Upstream Dependencies
## Portal ## Portal
- Next.js 15 (App Router) - Next.js
- TypeScript - Axios
- Axios (API calls) - Websocket console
- WebSocket console (`TerminalView` / `ServerConsole`) - Multipart FormData upload
- Multipart `FormData` upload
## API ## API
- Node.js (ESM) - Node.js (ESM)
- Express - Express
- Raw `http.request` for upload proxy (not `fetch`) - Raw http.request for upload proxy
- Prisma (DB ORM) - Prisma
- JWT token auth - Token auth
- Redis (agent telemetry cache)
## Agent ## Agent
- Go - Go
- Runtime root sandboxing (`internal/files`) - Runtime root sandboxing
- Atomic file writes (`os.Rename`) - Atomic file writes
- `.zlh_metadata.json` provenance tracking - Metadata tracking
- Shadow backup system (`.zlh-shadow`) - Shadow backup system
- PTY-backed console over WebSocket
- Mod management endpoints
- Agent update system (versioned, SHA-verified)
--- No external reverse proxy required for internal upload.
## Modrinth API
Used for mod resolution and search.
- Base: `api.modrinth.com/v2`
- Rate limit: 300 req/min
- Requires `User-Agent` header
- No API key required for public endpoints
- SHA512 provided on all artifacts (SHA1 fallback)
Agent host allowlist:
- `cdn.modrinth.com` — artifact downloads
- `api.modrinth.com` — search/resolve (API-level)
---
## Artifact Store
Location (VM filesystem): `/opt/zlh/zpacks/minecraft/`
Loader coverage:
- Vanilla, Paper, Purpur, Forge, Quilt, NeoForge
No external reverse proxy required for internal upload path.
---
## Repo Registry
| Repo | Role |
|------|------|
| `zlh-grind` | Architecture alignment, session logs, constraints, open threads |
| `zlh-api` | Control plane (Node + Express) |
| `zlh-portal` | Frontend (Next.js) |
| `zlh-agent` | Go runtime inside containers |
| `knowledge-base` | Canonical architecture docs |