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
## Portal
- Next.js 15 (App Router)
- TypeScript
- Axios (API calls)
- WebSocket console (`TerminalView` / `ServerConsole`)
- Multipart `FormData` upload
- Next.js
- Axios
- Websocket console
- Multipart FormData upload
## API
- Node.js (ESM)
- Express
- Raw `http.request` for upload proxy (not `fetch`)
- Prisma (DB ORM)
- JWT token auth
- Redis (agent telemetry cache)
- Raw http.request for upload proxy
- Prisma
- Token auth
## Agent
- Go
- Runtime root sandboxing (`internal/files`)
- Atomic file writes (`os.Rename`)
- `.zlh_metadata.json` provenance tracking
- Shadow backup system (`.zlh-shadow`)
- PTY-backed console over WebSocket
- Mod management endpoints
- Agent update system (versioned, SHA-verified)
- Runtime root sandboxing
- Atomic file writes
- Metadata tracking
- Shadow backup system
---
## 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 |
No external reverse proxy required for internal upload.