ref:52a3c86819d628ac8a224eb414f1e2ab3aeef0a1

Terminal persistence, exit→restart, Cmd-V, Matrix rain, macOS x86_64

Terminal persistence: - Terminals survive chunk unload via global ConcurrentHashMap registry - setRemoved() parks the terminal instead of killing it - On reload, the BE reclaims its terminal from the registry - onBlockRemoved() (player breaks block) actually kills the PTY Exit handling: - When shell exits (user runs `exit`), terminal returns to unstarted state with Matrix rain, ready for another right-click Platform paste: - Cmd+V (macOS) works in addition to Ctrl+V (Windows/Linux) - Both TerminalFocusScreen and TerminalScreen updated Matrix rain: - Proper falling-column animation with bright heads and fading trails - Always renders on first frame (no conditional skip) - RGBA byte order for memcpy compatibility Cross-platform: - macOS aarch64 + x86_64 natives bundled in JAR - Linux builds need Docker for `cross` (not built yet) Config limits: - maxTerminalsPerPlayer enforced on terminal creation - activeTerminalCount tracked globally 46 GameTests + 52 Rust tests, all passing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
SHA: 52a3c86819d628ac8a224eb414f1e2ab3aeef0a1
Author: Cole Christensen <cole.christensen@macmillan.com>
Date: 2026-03-20 18:18
Parents: caceca3
6 files changed +103 -89