{
  "site": "jaeswift.xyz",
  "entries": [
    {
      "version": "1.36.0",
      "date": "19/04/2026",
      "category": "FEATURE",
      "title": "TELEMETRY Dashboard — Live Ops Command Centre",
      "changes": [
        "New /hq/telemetry page replacing placeholder — full live ops dashboard with boot sequence animation, CRT aesthetic, real-time metrics",
        "Backend blueprint api/telemetry_routes.py — 6 new endpoints: /api/telemetry/overview, /history, /nginx-tail, /geo, /alerts, /visitors, /commits",
        "System metrics: CPU gauge + 24h sparkline, memory gauge + sparkline, per-mount disk ASCII bars, network RX/TX rates + history graph, uptime, load avg, kernel",
        "Services panel: systemctl state for jaeswift-api, matty-lol, nginx, filebrowser, caddy, n8n, docker, ssh — plus PM2 processes — with uptime, mem, CPU per service",
        "Cron tracker: schedule + last run + status (ok/fail/unknown) for contraband_sync, awesomelist_sync, govdomains_sync, sitrep, telemetry_snapshot — expandable log tails",
        "Nginx 24h analytics: total requests, bandwidth, avg RPM, top 10 pages, top 10 IPs (masked), 4xx/5xx counts, avg response time — 60s cache",
        "Security panel: fail2ban jails + ban counts, UFW rules, SSH bruteforce attempts 24h, last reboot timestamp",
        "SSL expiry tracker: per-domain days-remaining with colour coding (red <14d, amber <30d, green otherwise) for jaeswift.xyz, git, files, plex, agentzero",
        "Stack inventory: auto-detected versions of Python, Node, nginx, Docker, ffmpeg, kernel, OS — cached at startup",
        "Git activity panel: repo name, last commit SHA, message, timestamp, dirty flag for /var/www/jaeswift-homepage",
        "Geo-distribution: parses nginx IPs through GeoLite2 mmdb (if installed) — horizontal bar chart of top 15 countries by traffic, graceful empty state if mmdb missing",
        "Live nginx tail widget: last 20 requests auto-scrolling every 5s with fade-in animation, colour-coded status codes, masked IPs",
        "Alert engine: real-time /api/telemetry/alerts computes CPU/mem/disk/service/cron/5xx/SSL/SSH thresholds — red/amber/info levels — scrolling marquee banner on page",
        "Visitor counter: active unique IPs in last 5min + req/min — animated ONLINE NOW strong number",
        "Burn rate panel: free disk GB, 24h bandwidth totals (↑/↓), load avg breakdown, kernel@hostname",
        "Deployment ticker: horizontal marquee of last 10 git commits (SHA + message + ago)",
        "Boot animation: 1.5s cinematic sequence — INITIALISING → SECURE CHANNEL → DECRYPTING → AUTHORISED — with progress bar, fades out to reveal grid",
        "Alarm sound toggle: Web Audio API generates beep on new alert (urgent=880Hz for red, 440Hz for amber), default OFF, speaker icon top-right",
        "Blinking LIVE indicator showing last-sync seconds, dot colour shifts green→amber→red as staleness grows",
        "Mobile responsive — all 7 rows stack to single column below 768px, alerts shrink, grid reflows",
        "New api/telemetry_snapshot.py ring-buffer cron (every 5min) appends CPU/mem/net to api/data/telemetry_history.json (288 points = 24h)",
        "New styles: css/telemetry.css (~620 lines) with full dashboard grid, canvas gauges, ASCII disk bars, terminal tail, geo chart, marquee banners — all theming existing var(--tm-green/amber/red/sol) CRT scheme"
      ]
    },
    {
      "version": "1.35.0",
      "date": "19/04/2026",
      "category": "UI",
      "title": "Homepage Panel Layout Swap",
      "changes": [
        "Moved POWER and CONTAINERS panels from right column to below JAE-AI chat",
        "Moved NOW PLAYING panel from below chat to right column (above Network Graph)",
        "Maintains two-panel horizontal layout below chat (POWER/CONTAINERS + SERVER TIME)"
      ]
    },
    {
      "version": "1.34.0",
      "date": "19/04/2026",
      "category": "FEATURE",
      "title": "JAE AI Memory System (Memoria-style)",
      "changes": [
        "Browser-local persistent memory for JAE-AI chat via localStorage (key jae-ai-memory-v1, max 100 entries, auto-pruned by importance)",
        "Auto memory extraction every 4 user messages via new /api/chat/extract-memories endpoint (Venice gemma-4-uncensored)",
        "Relevance-ranked memory injection: top 5 keyword-matched + top 3 recent memories prepended as [REMEMBERED FACTS] block in system prompt per message",
        "Chat history persistence across page reloads (last 50 messages in localStorage key jae-ai-history-v1, auto-restored with RESTORED FROM MEMORY divider)",
        "Memory Vault modal UI: military/terminal themed, grouped by category (identity/preference/project/skill/goal/relationship/other) with per-entry delete, importance/timestamp display",
        "Modal controls: EXPORT JSON (download backup), FORCE EXTRACT (manual trigger), CLEAR HISTORY (wipes conversation), CLEAR ALL MEMORIES (with confirm)",
        "Memory button in chat header with live count badge + privacy info tooltip (\u2139) explaining local-only storage",
        "Fuzzy dedup: new memories >80% similar to existing are merged (importance boosted) instead of duplicated",
        "Privacy-first design: all memories stay in the user\u2019s browser; only current query + small relevant subset sent to Venice per message",
        "Graceful degradation: missing localStorage or extraction failures never break the chat loop"
      ]
    },
    {
      "version": "1.33.0",
      "date": "19/04/2026",
      "category": "FEATURE",
      "title": "Homepage SERVER METRICS \u2014 Real Live Data",
      "changes": [
        "SERVER METRICS panel now shows real VPS metrics via /api/stats",
        "CPU LOAD bar: real load_avg / nproc percentage",
        "MEMORY bar: real used/total memory percentage",
        "DISK I/O bar: real root filesystem usage percentage",
        "BANDWIDTH bar: real Mbps delta computed from network_rx_bytes + network_tx_bytes, scaled against 1 Gbps link",
        "NETWORK TRAFFIC graph: real-time line chart of download/upload Mbps with auto-scaling peak",
        "DOWNLOAD/UPLOAD readouts: auto-format Kbps/Mbps/Gbps based on actual traffic",
        "PACKETS readout replaced with real active TCP connections count",
        "POWER panel: reliability % derived from real CPU load",
        "CONTAINERS panel: real docker ps running/total counts with progress bar",
        "UPTIME: real /proc/uptime days/hours/minutes",
        "SERVER HEALTH: weighted score from real CPU/memory/disk",
        "Refresh interval: 5 seconds (was 10)",
        "All fake random-data generators for these metrics disabled"
      ]
    },
    {
      "version": "1.32.0",
      "date": "19/04/2026",
      "category": "SECURITY",
      "title": "Critical API Key Exposure Patched",
      "changes": [
        "Removed api/data/apikeys.json from git tracking",
        "Added apikeys.json to .gitignore permanently",
        "Purged file from entire git history via git-filter-repo (all 120 commits rewritten)",
        "Force-pushed cleaned history to Gitea (old commits garbage-collected)",
        "Created apikeys.example.json template for future contributors",
        "Rotated Venice API key \u2014 old key revoked by user",
        "VPS file permissions hardened: chmod 600 api/data/apikeys.json",
        "Verified raw URL git.jaeswift.xyz/.../apikeys.json now returns HTTP 404",
        "Audit confirmed: zero occurrences of any API key in git history across all branches"
      ]
    },
    {
      "version": "1.31.0",
      "date": "19/04/2026",
      "category": "AI",
      "title": "AI Model Switch \u2014 Gemma-4-Uncensored",
      "changes": [
        "Switched JAE AI chat model from olafangensan-glm-4.7-flash-heretic to gemma-4-uncensored",
        "Switched SITREP daily briefing generator to same model for consistency",
        "Updated admin panel chat defaults: model + header tag now reflect GEMMA-4-UNCENSORED",
        "API restarted and verified live \u2014 chat now returns tighter, more natural replies"
      ]
    },
    {
      "version": "v1.30.0",
      "date": "18/04/2026",
      "title": "ARMOURY: Wallet X-Ray \u2014 Solana Wallet Analyser",
      "category": "ARMOURY",
      "changes": [
        "New tool: Wallet X-Ray \u2014 deep scan any Solana wallet address or connect your own wallet",
        "Overview panel: SOL balance with live USD value, total portfolio value, wallet age, transaction count, and activity rating",
        "Token Holdings: full SPL token table with logos, balances, live prices via Jupiter Price API, and USD values sorted by value",
        "NFT Detection: identifies NFTs (0-decimal single-supply tokens) with image grid and Solscan links",
        "Recent Transactions: last 20 transactions with signatures linked to Solscan, status indicators, and timestamps",
        "Wallet Score: composite grading system (A+ to F) based on age, activity, diversity, and portfolio scores with colour-coded progress bars",
        "Supports Token-2022 programme accounts alongside standard SPL Token programme",
        "Rate-limit resilient: automatic RPC failover to backup endpoint with exponential backoff",
        "Jupiter token list cached in sessionStorage for faster repeat scans",
        "URL parameter support: ?address=... for direct wallet scanning via shared links",
        "Wallet X-Ray card added to LAB page with cyan/turquoise theme",
        "Military radar sweep loading animation during wallet scan",
        "Fully responsive design \u2014 works on mobile and desktop"
      ]
    },
    {
      "version": "v1.29.0",
      "date": "18/04/2026",
      "title": "UNREDACTED: International UFO Files + Government Scandal Documents",
      "category": "UNREDACTED",
      "changes": [
        "Added 9 new collections across UFO/UAP, Covert Operations, and Government categories with 15 indexed documents",
        "COMETA Report (France, 1999): 2 English translations of landmark French military UFO assessment \u2014 163 pages total",
        "RAAF UFO Files (Australia): Declassified Royal Australian Air Force intelligence file \u2014 18 pages",
        "Project Magnet (Canada, 1950-54): Official Canadian government UFO research programme documents \u2014 6 pages",
        "NZDF UFO/UAP Files (New Zealand, 1984-2024): 3 documents including Cold War sighting reports and modern OIA responses \u2014 136 pages",
        "Opera\u00e7\u00e3o Prato (Brazil, 1977): Secret Brazilian Air Force UFO investigation in the Amazon \u2014 58 pages",
        "COINTELPRO: 758-page FBI surveillance programme compilation plus analytical examination added to existing collection",
        "Operation Paperclip (1945-59): Declassified CIA documents on Nazi scientist recruitment programme \u2014 11 pages",
        "Watergate Scandal (1972-74): Ford Presidential Library documents on the constitutional crisis \u2014 35 pages",
        "Iran-Contra Affair (1985-87): Complete 506-page Congressional investigation report",
        "New countries added to UFO/UAP category: France, Australia, Canada, New Zealand, Brazil"
      ]
    },
    {
      "version": "v1.28.0",
      "date": "18/04/2026",
      "title": "CRIME SCENE: Major International Case Expansion",
      "category": "CRIME SCENE",
      "changes": [
        "Added 6 new crime case collections across cold-cases, serial-killers, and landmark-cases with 11 indexed documents",
        "D.B. Cooper Hijacking (1971): FBI investigation files \u2014 162 pages on America's only unsolved aircraft hijacking",
        "JonBen\u00e9t Ramsey Murder (1996): Autopsy report, unsealed grand jury indictment, and analytical case study \u2014 19 pages",
        "Black Dahlia / Elizabeth Short (1947): Complete FBI investigation file \u2014 204 pages on LA's most famous unsolved murder",
        "Delphi Murders (2017): Probable cause affidavit and court documents from the Richard Allen prosecution \u2014 95 pages",
        "Harold Shipman (1975-98): First three reports of the Shipman Inquiry (Dame Janet Smith) \u2014 1,162 pages on Britain's worst serial killer",
        "Moors Murders \u2014 Brady & Hindley (1963-65): Mental Health Review Tribunal academic paper \u2014 22 pages",
        "New landmark-cases/US subcategory with Delphi Murders as first entry",
        "Total new document pages added: 1,664 across all crime scene collections"
      ]
    },
    {
      "version": "v1.27.0",
      "date": "18/04/2026",
      "title": "CRIME SCENE: UK Murder Cases \u2014 Mass Upload",
      "category": "CRIME SCENE",
      "changes": [
        "Added 11 UK murder case collections across 4 categories with 57 indexed documents",
        "New 'Landmark Cases' category for cases that changed British law and policing",
        "Daniel Morgan (1987): 3-volume Independent Panel Report \u2014 1,276 pages on Met Police corruption",
        "Claudia Lawrence (2009): ICO FOI audit of North Yorkshire Police practices",
        "Jill Dando (1999): Barry George appeal judgment and CCRC referral decision",
        "Suzy Lamplugh (1986): Suzy Lamplugh Trust safety resources and case documentation",
        "Stephen Lawrence (1993): Complete Macpherson Report \u2014 389 pages, coined 'institutional racism'",
        "James Bulger (1993): ECHR Grand Chamber judgments, anonymity injunction, minimum term review",
        "Damilola Taylor (2000): Sentamu Oversight Panel investigation review \u2014 56 pages",
        "Lee Rigby (2013): ISC intelligence report (200 pages), Government response, sentencing remarks",
        "Lord Lucan (1974): Presumption of Death Act legal analysis for Sandra Rivett murder",
        "Madeleine McCann (2007): PJ Police Report translation (57 pages), Jane Tanner statements (4 parts)",
        "Jack the Ripper (1888): Macnaghten Memoranda (1894) plus 7 victim inquest transcripts",
        "23 verified PDFs, 95 total files deployed (28.2 MB) across all 11 cases"
      ]
    },
    {
      "version": "1.26.0",
      "date": "17/04/2026",
      "title": "Zodiac Killer Police Reports & Crime Scene Documents",
      "category": "CRIME SCENE",
      "changes": [
        "Populated the Police Reports subcollection for the Zodiac Killer with 5 documents (207 pages, 26.4 MB)",
        "Added Lake Herman Road police reports \u2014 Benicia PD & Solano County Sheriff (60 pages, 5.6 MB)",
        "Added Blue Rock Springs police reports \u2014 Vallejo PD (75 pages, 10.3 MB)",
        "Added Lake Berryessa police reports \u2014 Napa County Sheriff's Office (35 pages, 5.1 MB)",
        "Added Presidio Heights / Paul Stine police reports \u2014 SFPD (2 pages, 0.4 MB)",
        "Added California Department of Justice investigation report (35 pages, 5.0 MB)",
        "Zodiac Killer collection now contains 26 documents across 4 subcollections totalling approximately 78 MB",
        "All documents sourced from zodiackiller.com's authenticated police report archive"
      ]
    },
    {
      "version": "1.25.0",
      "date": "16/04/2026",
      "title": "Changelog Fix \u2014 Date Format & Missing Entries",
      "category": "fix",
      "changes": [
        "Fixed NaN/NaN/NaN date display bug in changelog renderer",
        "Updated formatDate() to handle both DD/MM/YYYY and ISO formats",
        "Dates now render as human-readable format (e.g. 16th April 2026)",
        "Standardised all changelog dates to UK DD/MM/YYYY format",
        "Added all missing changelog entries from recent updates"
      ]
    },
    {
      "version": "1.24.0",
      "date": "16/04/2026",
      "title": "MKUltra Documents Fixed",
      "category": "fix",
      "changes": [
        "Replaced encrypted/unreadable MKUltra PDF with two working documents",
        "Added CIA Inspector General Report (1963) \u2014 48-page TOP SECRET internal review",
        "Added Senate Hearing transcript (1977) \u2014 171-page Congressional testimony exposing 149 sub-projects"
      ]
    },
    {
      "version": "1.23.0",
      "date": "16/04/2026",
      "title": "PROPAGANDA \u2192 UNREDACTED Rename + Nav Animation + CRIME SCENE",
      "category": "feature",
      "changes": [
        "Renamed PROPAGANDA section to UNREDACTED across all pages, nav, API, and URLs",
        "Built block-reveal animation on UNREDACTED nav item (\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2192 UNREDACTED \u2192 reverse \u2192 loop)",
        "Added global document search across all UNREDACTED categories, titles, and descriptions",
        "Built new CRIME SCENE section at /depot/crimescene with red CRT theme",
        "Four crime categories: Unsolved Murders, Serial Killers, Court Transcripts, Cold Cases",
        "PDF viewer with search functionality for crime documents",
        "New Flask API endpoint /api/crimescene"
      ]
    },
    {
      "version": "1.22.0",
      "date": "15/04/2026",
      "title": "CRIME SCENE: Zodiac Killer Expanded \u2014 Letters, Ciphers & Subcollections",
      "category": "CRIME SCENE",
      "changes": [
        "Fixed PDF path bug: document URLs now correctly include country code (US) via subcollection routing",
        "Restructured Zodiac Killer into 4 subcollections: FBI Investigation Files, Zodiac Letters & Cards, The Zodiac Ciphers, Police Reports & Crime Scene Documents",
        "Added 11 original Zodiac letter PDFs (1969\u20131974) from zodiackiller.com: Chronicle/Examiner cipher letters, Debut letter, Stine bloody shirt letter, Bus Bomb letter, Belli letter, Dragon card, Phillips 66 map letter, Little List/Mikado letter, Exorcist letter, Citizen card",
        "Added 3 cipher PDFs: Z408 three-part cipher (solved 1969), Z340 cipher (solved 2020), Z32 map code cipher (unsolved)",
        "Added Z340 Solution academic paper by Oranchak, Blake & Van Eycke (2024, 38 pages) from arXiv",
        "Each of the 21 new documents has a unique historical description with contextual detail",
        "Subcollection accordion UI with expand/collapse rendering",
        "Total Zodiac archive: 4 subcollections, 21 documents, ~52MB",
        "Police Reports subcollection created as placeholder for future expansion"
      ]
    },
    {
      "version": "1.21.0",
      "date": "15/04/2026",
      "title": "CRIME SCENE: Zodiac Killer FBI Files",
      "category": "CRIME SCENE",
      "changes": [
        "Added complete FBI Zodiac Killer investigation files (6 parts, 1,116 pages, 34MB)",
        "Files sourced from FBI Vault via Archive.org \u2014 declassified FOIA release",
        "Each document includes unique summary describing specific contents",
        "Covers: Arthur Leigh Allen suspect investigation, cipher analysis, forensic lab reports, fingerprint comparisons, decades of tips and suspect referrals",
        "PDFs served from /crimescene/docs/serial-killers/US/zodiac-killer/",
        "First collection populating the Serial Killers category under United States"
      ]
    },
    {
      "version": "1.20.1",
      "date": "15/04/2026",
      "title": "UNREDACTED: Document Expansion & PDF Search",
      "category": "feature",
      "changes": [
        "Added PDF text search to document viewer (Ctrl+F, green/amber highlights, match counter, case toggle)",
        "Text layer enabled \u2014 select and copy text from PDFs",
        "Added unique descriptions to all 113 UK MOD UFO documents sourced from National Archives highlights guides",
        "Added Project Condign (250MB, 460pp SECRET UK EYES ONLY) \u2014 the classified DI55 UAP study",
        "Downloaded US documents: Project Blue Book, CIA UFO Collection, NSA UFO Documents, Pentagon UAP Report",
        "Downloaded Covert Ops: MKUltra, Stargate Program, Operation Northwoods",
        "Downloaded Government: JFK Warren Commission, Pentagon Papers, CIA Torture Report",
        "Total UNREDACTED archive: 116+ PDFs across 3 categories and 2 countries"
      ]
    },
    {
      "version": "1.20.0",
      "date": "06/04/2026",
      "title": "Bug Fixes & Polish",
      "category": "fix",
      "changes": [
        "Fixed dispatches post pages crashing (mood type error + fallback path)",
        "SOL price ticker fixed \u2014 switched to Binance API (CORS-friendly)",
        "Tightened navbar spacing between SOL price and wallet connect",
        "Converted all post mood values from integers to proper strings"
      ]
    },
    {
      "version": "1.19.0",
      "date": "06/04/2026",
      "title": "Admin Panel Overhaul",
      "category": "feature",
      "changes": [
        "Fixed broken Editor section \u2014 full post editing with live preview",
        "Fixed broken Backups section \u2014 export/import site data as ZIP",
        "Added SITREP admin section \u2014 generate reports, view archive",
        "Added Data Sync section \u2014 trigger Contraband/RECON syncs, view stats",
        "Added Changelog admin section \u2014 CRUD for maintenance log entries",
        "Added Cron Jobs section \u2014 view/toggle all scheduled tasks",
        "Reorganised sidebar into grouped sections"
      ]
    },
    {
      "version": "1.18.0",
      "date": "06/04/2026",
      "title": "SITREP \u2014 Daily AI Briefing System",
      "category": "feature",
      "changes": [
        "Built automated daily intelligence briefing at /transmissions/sitrep",
        "Venice AI generates military-formatted summaries from 5 RSS sources + crypto data",
        "Sectors: ALPHA (technology), BRAVO (cybersecurity), CHARLIE (crypto markets)",
        "Daily cron job at 0700 UTC with archive navigation",
        "Source links included for every story",
        "API endpoints: /api/sitrep, /api/sitrep/list, /api/sitrep/generate"
      ]
    },
    {
      "version": "1.17.0",
      "date": "06/04/2026",
      "title": "TOKEN FORGE \u2014 SPL Token Launcher",
      "category": "feature",
      "changes": [
        "Built token launcher at /tokenlauncher with full SPL token creation",
        "Set name, symbol, supply, decimals, image, description",
        "Optional mint/freeze authority revocation",
        "Single transaction deployment with confirmation modal",
        "0.1 SOL service fee per launch",
        "Added TOKEN FORGE card to /armoury/lab (amber accent)"
      ]
    },
    {
      "version": "1.16.0",
      "date": "05/04/2026",
      "title": ".SOL Domain Registration",
      "category": "feature",
      "changes": [
        "Built .SOL domain search and registration at /soldomains",
        "Bonfida SNS integration for availability checking and registration",
        "Reverse lookup and My Domains tabs",
        "Multi-wallet support (Phantom, Solflare, Backpack, Jupiter, MetaMask)",
        "Added card to /armoury/lab (turquoise accent)"
      ]
    },
    {
      "version": "1.15.0",
      "date": "05/04/2026",
      "title": "SOL Price Ticker",
      "category": "feature",
      "changes": [
        "Live Solana price in navbar with 24hr change indicator",
        "Binance API primary, CoinGecko fallback",
        "Auto-refreshes every 30 seconds",
        "Purple Solana-branded styling"
      ]
    },
    {
      "version": "1.14.0",
      "date": "05/04/2026",
      "title": "Sitewide Solana Wallet Connect",
      "category": "feature",
      "changes": [
        "Global wallet connect button in navbar across all 28 pages",
        "Multi-wallet support: Phantom, Solflare, Backpack, Coinbase, Trust, MetaMask, Jupiter",
        "Persistent connection via localStorage \u2014 survives page navigation",
        "Connected dropdown with address copy, Solscan link, disconnect",
        "Global window.solWallet API for all Solana features",
        "Refactored soldomains.js to use shared wallet (removed 146 lines)"
      ]
    },
    {
      "version": "1.13.0",
      "date": "05/04/2026",
      "title": "RADAR \u2014 Live Tech News Feed",
      "category": "feature",
      "changes": [
        "Built live tech news aggregator at /transmissions/radar",
        "Pulls from Hacker News, Reddit (r/technology, r/programming, r/netsec), Lobsters",
        "Search, source filters, and auto-refresh",
        "Military-themed CRT styling with scanlines",
        "Flask API with caching at /api/radar"
      ]
    },
    {
      "version": "1.12.0",
      "date": "04/04/2026",
      "title": "Nav Dropdown Descriptions",
      "category": "feature",
      "changes": [
        "Added descriptive subtitles beneath every nav dropdown item",
        "Updated navigation API with description field support"
      ]
    },
    {
      "version": "1.11.0",
      "date": "04/04/2026",
      "title": "RECON \u2014 Site Restructure & Accordion Navigation",
      "category": "feature",
      "changes": [
        "Moved RECON to /depot/recon for consistency with other depot pages",
        "Subcategories now collapsible accordion sections with toggle arrows",
        "Fixed navigation click bug that caused page reset",
        "Fixed white flash on page load",
        "Added cache-busting version tags to assets"
      ]
    },
    {
      "version": "1.10.0",
      "date": "04/04/2026",
      "title": "RECON \u2014 Curated Lists Rebuild",
      "category": "feature",
      "changes": [
        "Flattened 4-level navigation to 2-level (sector > list > entries)",
        "Grouped entries by source list instead of duplicate subcategory cards",
        "Stripped 'Awesome' prefix from all 660 list names",
        "Reused CONTRABAND CSS for consistent styling across depot pages"
      ]
    },
    {
      "version": "1.9.0",
      "date": "04/04/2026",
      "title": "RECON \u2014 Curated Lists Database",
      "category": "feature",
      "changes": [
        "Parsed 660 curated lists into 28 themed sectors",
        "135,179 total entries across all sectors",
        "Built Flask API endpoints for index, sector detail, and search",
        "Weekly auto-sync cron job (Sundays 4am) to pull latest data",
        "Full-text search across all 135k entries"
      ]
    },
    {
      "version": "1.8.0",
      "date": "03/04/2026",
      "title": "CONTRABAND Auto-Sync & Grid Overhaul",
      "category": "feature",
      "changes": [
        "Subcategories now display as 2-column card grid with expandable detail panels",
        "Added weekly auto-sync \u2014 resource database updates every Sunday at 03:00",
        "Click any subcategory card to expand/collapse its entries below",
        "Active card highlighting with amber glow",
        "Responsive grid: 2-col desktop, 1-col mobile"
      ]
    },
    {
      "version": "1.7.0",
      "date": "03/04/2026",
      "title": "Sitewide Visual Overhaul",
      "category": "fix",
      "changes": [
        "Bumped 64 font sizes sitewide \u2014 no more microscopic text",
        "Brightened all text colours: primary #c0c0c0\u2192#d8d8d8, secondary #707070\u2192#999999, muted #3a3a3a\u2192#666666",
        "CONTRABAND page: 4-column category grid with responsive breakpoints",
        "Purged all third-party attribution references from entire codebase"
      ]
    },
    {
      "version": "1.6.0",
      "date": "03/04/2026",
      "title": "CONTRABAND \u2014 Classified Resource Index",
      "category": "feature",
      "changes": [
        "Launched CONTRABAND page at /depot/contraband with 15,800+ indexed assets",
        "24 categories with military codenames (CRT-001 through CRT-024)",
        "Full-text search across all entries via API",
        "Starred/top-pick filter system with \u2b50 indicators",
        "Collapsible subcategories with item counts",
        "Flask API endpoints: /api/contraband, /api/contraband/<slug>, /api/contraband/search"
      ]
    },
    {
      "version": "1.5.1",
      "date": "03/04/2026",
      "title": "Navbar Dropdown Fix",
      "category": "fix",
      "changes": [
        "Fixed dropdown menus disappearing on all subpages",
        "Root cause: 25 subpages used class 'navbar' instead of 'nav-main'",
        "All pages now use correct nav class with proper positioning and z-index"
      ]
    },
    {
      "version": "1.5.0",
      "date": "02/04/2026",
      "title": "Globe & Chat AI Admin Panels",
      "category": "feature",
      "changes": [
        "Admin panel: Globe management section \u2014 server location, rotation speed, arc cities, colours",
        "Admin panel: Chat AI configuration \u2014 model selection, system prompt, greeting toggle",
        "New API endpoints: /api/globe, /api/chat-config with auth-protected GET/POST",
        "Interactive colour picker and slider controls for globe parameters",
        "Arc cities table with add/remove functionality"
      ]
    },
    {
      "version": "1.4.0",
      "date": "01/04/2026",
      "title": "Interactive 3D Globe",
      "category": "feature",
      "changes": [
        "Added interactive 3D globe to homepage using globe.gl",
        "Animated arcs connecting server location to cities worldwide",
        "Hex polygon layer with customisable opacity and colour",
        "Atmosphere glow effect with configurable altitude",
        "Auto-rotation with adjustable speed"
      ]
    },
    {
      "version": "1.3.0",
      "date": "31/03/2026",
      "title": "Blog & Transmissions System",
      "category": "feature",
      "changes": [
        "Built blog system with markdown-to-HTML rendering",
        "Blog index page with post cards, dates, and categories",
        "Individual post pages with full content rendering",
        "Transmissions section: SITREP, RADAR, DISPATCHES pages",
        "Admin panel: blog post management with create/edit/delete"
      ]
    },
    {
      "version": "1.2.0",
      "date": "30/03/2026",
      "title": "Admin Panel & Authentication",
      "category": "feature",
      "changes": [
        "Built admin panel at /admin with session-based authentication",
        "Dashboard with real-time server stats and process monitoring",
        "Navigation management: add, edit, reorder, delete menu items",
        "Blog post editor with live preview",
        "Password-protected API endpoints with cookie auth"
      ]
    },
    {
      "version": "1.1.0",
      "date": "29/03/2026",
      "title": "HQ & Section Pages",
      "category": "feature",
      "changes": [
        "Created full site navigation structure with dropdown menus",
        "HQ section: Telemetry, Logs, Profile, Briefing pages",
        "DEPOT section: index, Propaganda, Recon, Exfil pages",
        "ARMOURY section: Lab, Field Manuals, Deployments, Debrief pages",
        "COMMS section: Open Channels, Encrypted Line, Backup Relay pages"
      ]
    },
    {
      "version": "1.0.0",
      "date": "28/03/2026",
      "title": "Initial Launch",
      "category": "release",
      "changes": [
        "Launched jaeswift.xyz with sci-fi military dashboard theme",
        "Homepage with system stats, process monitor, clock, and typing effect",
        "Dark theme with scanline overlay and monospace typography",
        "Flask API backend for real-time server data",
        "Responsive design across all screen sizes",
        "Gitea repository setup at git.jaeswift.xyz"
      ]
    }
  ]
}