SPACE / SATELLITE TERMINAL CHANGELOG ==================================== v1.0.4 - 2026-09-19 ------------------- - Fixed ISS/satellite ASCII art alignment by preserving printable spacing while still stripping terminal control bytes. - Fixed Near-Earth close-approach rows so object, date, lunar-distance and speed values are painted at fixed terminal columns. - Fixed manual ISS refresh behavior: normal reads retain the 15-second cache, while R may request new live telemetry after a 2-second minimum interval. - Corrected generic manual-refresh cache semantics so R can refresh a source after its configured minimum interval rather than being forced to wait for the full normal TTL. - Hardened NOAA SWPC Kp and Kp-forecast parsing to accept both keyed-object feeds and header-row/table feeds, covering the reviewed fixture shape without breaking the current live SWPC shape. - Added outbound remote-text sanitizing: strips ESC/control bytes, preserves literal pipes safely, and prevents ATDT %XX MCI expansion inside provider text. - Added an approximately 8-second total network budget per caller screen with 3-second connect and 5-second per-request limits. - Main terminal now performs at most one live provider request (ISS); launch and space-weather summary panels use cache only. - Added 60-second negative caching so a failed provider is not retried on every repaint. - Changed per-URL cache locks to non-blocking behavior; concurrent callers serve existing cached data instead of waiting behind a slow fetch. - Manual R refresh now honors each source's normal/minimum cache interval instead of unconditionally bypassing a fresh cache entry. - Added stale-if-error operation to satellite GP, SATCAT, launch, NOAA space-weather, and JPL close-approach data. - Invalid and unknown NORAD entries now return to the satellite prompt instead of being reported as a board/network failure. - Main status is now derived from available data and reports ACTIVE, DEGRADED, or DOWN instead of always claiming the network is active. - Reworked truncation, wrapping and padding to use multibyte display width rather than raw UTF-8 byte counts. - Shortened the ISS fallback/status notes so they remain within the 80-column display. - Reworked Help text so descriptions fit, Refresh behavior is accurate, and B/X/ENTER behavior is documented. - Added a long-lived cached CelesTrak SATCAT request so Object Type, Country, and Launch Date can populate alongside GP orbital elements. - Added scalar-safe provider-field handling to avoid "Array" output and PHP array-to-string warnings if an API changes shape. - Fixed satellite ASCII art so literal | characters remain intact; remote launch names containing | are also displayed literally. - Clarified satellite prompt, Mission Profile ENTER behavior, Back/Main aliases, and quit aliases. - Added configurable SysOp contact and BBS website fields used to build the outbound User-Agent at request time. - Added a 1 MiB hard download cap for both cURL and stream transports, including decompressed cURL response data. - Restricted all start URLs and redirects to HTTPS. - Caller-facing transport failures are now generic; detailed provider/cURL/TLS messages remain in the SysOp diagnostics/log path. - Added cleanup of orphaned .lock files and retained stable lock inodes to avoid lock/unlink races. - Standardized runtime-folder protection and automatic .htaccess/index.html recreation; no runtime .gc file is shipped in the ZIP. - Updated requirements to PHP 8.1+, JSON, mbstring and OpenSSL; refreshed installation, cache, command, identity and packaging documentation. - Changed manifest/menu title to "Space / Satellite Terminal v1.0.4" and added v1.0.4 to the main terminal/admin titles. - Package/manifest author remains DOS BBS; README identity metadata was aligned with the manifest. - The runtime cache intentionally remains at spaceterminal/cache/; it was NOT moved to ATDT's DoorStore sandbox in this release. v1.0.3 - 2026-09-19 ------------------- - Renamed the runtime data directory from temp/ to cache/. - Updated all cache paths, SysOp text, and documentation to use cache/. - Existing temp/ data is intentionally not migrated; cache data is rebuilt automatically. v1.0.2 - 2026-09-19 ------------------- - Removed the user-facing cache/database note from the main screen footer. - Shortened the ISS refresh/cache note so it stays on one 80-column line. v1.0.1 - 2026-09-19 ------------------- - Prefer IPv4 for cURL HTTPS requests to avoid broken shared-hosting IPv6 routes. - Added last-good ISS telemetry failover for transient WhereTheISS timeouts. - Stale ISS telemetry is clearly labeled with its age and is never used beyond 30 minutes. - Added CelesTrak GP fallback when no usable live/cached ISS position is available. - CelesTrak fallback shows mean orbital altitude/speed only and deliberately leaves live latitude/longitude blank. - Improved SysOp diagnostics to identify cached/fallback ISS operation. v1.0.0 - 2026-09-19 ------------------- - Initial ATDT Native PHP release. - Added live ISS orbital telemetry via WhereTheISS.at. - Added CelesTrak NORAD satellite lookup. - Added upcoming launch schedule and mission detail screens via Launch Library 2. - Added NOAA SWPC Kp, G/R/S scales, and Kp outlook. - Added NASA/JPL CNEOS close-approach display for near-Earth objects. - Added filesystem-only runtime cache with atomic writes and per-URL locking. - Added automatic cache cleanup and a hard cap of about 2 MiB / 96 JSON files. - Added SysOp connectivity/status panel. - No door-specific telemetry/history tables, API keys, daemon, cron job, IRC, or websocket required.