zlh-grind/ANTI_DRIFT.md

1.6 KiB

Anti-Drift Policy

The grind repo must reflect real implementation.


Do NOT

  • Document future features as complete
  • Leave outdated architecture notes in any doc
  • Allow staging/symlink model references to remain
  • Duplicate filesystem rules outside the agent
  • Add CORS to agents
  • Expose agent ports through Caddy
  • Reintroduce APIv1 endpoints
  • Reintroduce Pterodactyl-based auth
  • Use cookie-based authentication
  • Use server-side portal sessions

When Architecture Changes

  1. Update README.md
  2. Update CONSTRAINTS.md
  3. Update the relevant architecture doc under docs/architecture/
  4. Update SESSION_LOG.md
  5. Close thread in OPEN_THREADS.md if resolved

Console Anti-Drift

The interactive console MUST remain:

  • PTY-backed
  • Agent-owned
  • WebSocket-based
  • Full duplex (input + output)

Disallowed:

  • Log tailing as "console"
  • Exec-per-command models
  • Frontend-owned processes
  • Proxmox console passthrough

Upload Anti-Drift

The upload pipeline MUST remain:

  • Streamed via raw http.request piping in the API
  • Direct runtime write in the agent (no staging, no symlinks)
  • Enforced by agent allowlist only (portal does not enforce security)

Disallowed:

  • fetch() for upload proxy
  • Staging folders
  • Symlink-based deployment
  • API re-implementing agent filesystem policy

Auth Anti-Drift

All auth must flow: Portal → JWT → API

Disallowed:

  • CSRF token logic
  • Cookie-based authentication
  • APIv1 patterns
  • Pterodactyl auth patterns

Drift Response

If drift is detected:

  1. Revert the change
  2. Document why it was tempting
  3. Re-apply only what serves usability and real architecture