721 lines
No EOL
45 KiB
JSON
721 lines
No EOL
45 KiB
JSON
{
|
|
"site": "jaeswift.xyz",
|
|
"entries": [
|
|
{
|
|
"version": "1.39.0",
|
|
"date": "20/04/2026",
|
|
"category": "FEATURE",
|
|
"title": "Sitewide Effects Suite \u2014 25 CLI-triggered visual modes",
|
|
"changes": [
|
|
"New /js/sitewide-effects.js (~1100 lines) + /css/sitewide-effects.css (~330 lines) \u2014 single central module, exposes window.__jaeEffects (toggle/enable/disable/active/disableAll)",
|
|
"Injected into 12 pages: index, hq/{telemetry,leaderboards,logs,briefing,profile,index}, depot/{contraband,recon}, recon, armoury/lab, transmissions/radar",
|
|
"VISUAL DISTORTION (7): /crt CRT scanlines + phosphor flicker + vignette; /vhs chromatic shift + roll bar + noise + glitch blocks; /glitch periodic text corruption + chroma shake; /redalert (/red alias) sepia-red filter + pulsing inset + Web Audio two-tone klaxon + DEFCON 1 banner; /invert; /blueprint hue-shift + grid overlay; /typewriter retype all text with click beeps",
|
|
"PHYSICS & MOTION (5): /gravity \u2014 panels + headings become fixed, fall with bounce physics; /earthquake \u2014 10s viewport shake; /lowgravity \u2014 1.2s transitions + floating bob; /melt \u2014 progressive vertical drip over 15s; /shuffle \u2014 scramble word order across visible text",
|
|
"ENVIRONMENTAL (5): /rain 200 drops + thunder flash + filtered-noise ambient; /snow 150 drifting flakes with sine sway; /fog dark overlay + torchlight circle around cursor; /night body dim + cursor spotlight via CSS vars; /underwater hue-rotate + wave overlay + bubble particles + lowpass noise",
|
|
"MIND-BENDING (3): /dimensions 3D perspective tilt tracking mouse; /portal \u2014 150px circular iframe lens following cursor showing random other page; /retro <1995|2005|2015|now> applies themed HTML classes (Comic Sans/yellow, Web 2.0 glossy, Material flat)",
|
|
"BONUS (5): /partymode disco hue-rotate + confetti + panel flashes + 120 BPM kick drum; /ghostmode invisible cursor + text fade until hover; /quantum panels teleport every 3s; /sneak replace all a/button labels with CLASSIFIED/REDACTED/etc; /hacker full-viewport scrolling fake code",
|
|
"Meta command /effects \u2014 shows ASCII status table of active effects; /effects off disables all; /effects all enables everything (chaos mode)",
|
|
"/matrix and /cmatrix migrated out of chat-cli.js into the sitewide-effects.js registry \u2014 commands stay identical but share the same single-source-of-truth module; dead toggleMatrix/toggleCMatrix code removed",
|
|
"Mobile + prefers-reduced-motion gating: all effects downgrade particle counts / disable audio gracefully on small screens or reduced-motion preference",
|
|
"Boss key (Escape / Ctrl+Shift+B) now calls window.__jaeEffects.disableAll() for a universal panic exit",
|
|
"Z-index ladder: 9000-9500 for overlays, 9600-9700 for loud UI (banners), leaves 9999+ for modals/toasts",
|
|
"CSS classes prefixed fx-* applied to <html> when active; each effect self-contained with enable/disable lifecycle, proper cleanup of RAF / intervals / AudioContext nodes / canvases",
|
|
"/help output extended with new EFFECTS category listing all 25 commands + /effects meta",
|
|
"Files: NEW js/sitewide-effects.js (1143 lines), NEW css/sitewide-effects.css (331 lines); MOD js/chat-cli.js (1142 \u2192 ~1129 lines \u2014 stripped 110 lines of matrix/cmatrix internals, added ~90 lines of thin command wrappers + EFFECTS help category); MOD 12 HTML files (+2 lines each for <link> + <script>)"
|
|
]
|
|
},
|
|
{
|
|
"version": "1.38.1",
|
|
"date": "20/04/2026",
|
|
"category": "FEATURE",
|
|
"title": "CLI Extensions: SSH, Adventure, Fortunes, Figlet, Achievements, Leaderboard, Boss Key",
|
|
"changes": [
|
|
"JAE-AI terminal (/) now has 7 new commands and 3 meta-features \u2014 type /help to see the categorised menu (SYSTEM / FUN / MODES / STATS)",
|
|
"/ssh <user>@<host> \u2014 fake SSH session with ED25519 handshake, MOTD, nested shell (ls/cat/cd/pwd/whoami/hostname/uname/date); exit via /exit-ssh or 'exit'",
|
|
"/adventure \u2014 short cyberpunk text adventure (DARK ALLEY \u2192 NEON ARCADE \u2192 HACKER DEN \u2192 LOW ROOFTOP \u2192 NEON ROOFTOP boss fight) with inventory, drone HP, /exit-adventure",
|
|
"/ttyper \u2014 typing-speed test with random programming quote, timer, WPM + accuracy calc, all-time best persisted in localStorage (jae-cli-ttyper-best-v1)",
|
|
"/cowsay <msg> \u2014 classic ASCII cow with auto-sized speech bubble",
|
|
"/figlet <text> \u2014 block-font ASCII banner (5-row UNICODE \u2588 glyphs, full A-Z/0-9/punctuation, truncated to 20 chars)",
|
|
"/fortune -o \u2014 offensive mode with 30 crude operator-themed quips; /fortune alone returns 20 tame SITREP entries",
|
|
"/cmatrix \u2014 enhanced matrix rain: dual-colour green+cyan, denser (14px), speed ramps over 30s cycles, optional square-wave AudioContext ticks for typing-sound effect",
|
|
"/achievements \u2014 progress tracker showing X/24 commands discovered with ASCII progress bar [\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2591], list of unlocked commands, persists via localStorage (jae-cli-achievements-v1); toast pops for each new unlock",
|
|
"/leaderboard \u2014 session + all-time stats for this browser: command counts, unlocks, most-used command, top-5 session & all-time, military rank (recruit \u2192 general based on 20/50/100/200/500/1000/2000 thresholds)",
|
|
"Boss key \u2014 press Escape (while anything is 'hot') or Ctrl+Shift+B to instantly hide matrix rains, dev-mode badge, toasts, and clear chat input; shows 'NORMAL MODE' tooltip for ~2s",
|
|
"Nested mode routing \u2014 when inside /ssh, /adventure, /ttyper, plain (non-slash) chat input is routed to the nested handler instead of JAE-AI; chat.js updated with isInMode() check",
|
|
"Stats tracked in localStorage (jae-cli-stats-v1) and in-memory session counter; commands object grown from 17 \u2192 24",
|
|
"Files: js/chat-cli.js (+632 lines \u2192 1142 total), css/chat-cli.css (+21 lines), js/chat.js (+1 line \u2014 mode-aware CLI interception)"
|
|
]
|
|
},
|
|
{
|
|
"version": "1.38.0",
|
|
"date": "20/04/2026",
|
|
"category": "FEATURE",
|
|
"title": "Globe \u2014 Live Traffic Arcs from Real Visitors",
|
|
"changes": [
|
|
"Homepage 3D globe (globe.gl) now draws glowing arcs from real visitor country centroids into Manchester HQ (53.48\u00b0N, -2.24\u00b0W) instead of random fake cities",
|
|
"Data sourced live from /api/visitor/recent-arcs \u2014 tails last 20k lines of nginx access.log, GeoIPs unique IPs, maps country_code \u2192 centroid (130+ countries in api/data/country_centroids.json)",
|
|
"Frontend polls endpoint every 30s; tactical green arcs (rgba(0,255,60,.85)) fade to turquoise Solana (#14F195) tail for depth, 2.2s dash animation, 0.38 altitude auto-scale",
|
|
"Per-arc interactive labels on hover: \"COUNTRY \u2192 MCR \u00b7 Xm ago \u00b7 /page_path\"",
|
|
"New ARCS LIVE counter badge added to globe overlay HUD (turquoise accent), updates with each refresh",
|
|
"Sub-degree lat/lon jitter applied so multiple visitors from same country no longer stack on a single line",
|
|
"Graceful fallback: if endpoint returns empty/errors, shows 8 demo city arcs (New York/Tokyo/Paris/Sydney/Moscow/Singapore/Berlin/LA) so the globe is never bare",
|
|
"Timestamp parser handles nginx common-log format (DD/Mon/YYYY:HH:MM:SS \u00b1ZZZZ) for accurate relative times",
|
|
"Backend endpoint cache: 5-min TTL, deduped by IP, capped at 50 most-recent unique visitors"
|
|
]
|
|
},
|
|
{
|
|
"version": "1.37.2",
|
|
"date": "20/04/2026",
|
|
"category": "FEATURE",
|
|
"title": "LEADERBOARDS \u2014 Live Operational Rankings",
|
|
"changes": [
|
|
"New page /hq/leaderboards with 6-panel grid showing real-time traffic intelligence pulled from nginx access logs",
|
|
"TOP COUNTRIES (24h): GeoIP-resolved top 15 origins with auto-generated flag emojis and animated ranked bars",
|
|
"TOP PAGES (24h): most-hit routes (API/CSS/JS/favicons filtered out), top 20 with green-code path display",
|
|
"TOP REFERRERS (7d): inbound link sources filtered for own domain \u2014 graceful empty state for direct-traffic sites",
|
|
"PEAK HOURS (24h UTC): 24-bar hourly chart with amber-highlighted peak column, hover tooltips, auto-summary showing peak hour + total req/24h",
|
|
"BROWSER BREAKDOWN (24h): top 10 UA families with per-browser emoji (\ud83d\udfe2 Chrome / \ud83e\udd8a Firefox / \ud83e\udded Safari / \ud83c\udf00 Edge / \ud83e\udd16 Bot)",
|
|
"OPERATOR LEADERBOARD (7d): top 10 most-active IPs (privacy-masked first/last octet), request counts, last-seen relative timestamps \u2014 self-IP highlighted with amber (YOU) badge",
|
|
"Gold/silver/bronze rank styling for top-3 rows across all panels; #01\u2013#NN zero-padded ranks elsewhere",
|
|
"60s auto-refresh + manual refresh button + live LAST UPDATED counter (ticks per second)",
|
|
"Backend /api/leaderboards endpoint returns JSON aggregating countries, pages, referrers, peak_hours, browsers, top_operators \u2014 60s in-memory cache",
|
|
"New files: hq/leaderboards.html \u00b7 css/leaderboards.css \u00b7 js/leaderboards.js",
|
|
"Nav updated: HQ menu now includes LEADERBOARDS link with description \"Live traffic rankings & operator stats\"",
|
|
"Fully mobile responsive (768px stack / 420px compact) with scanlines + grid-bg matching site theme"
|
|
]
|
|
},
|
|
{
|
|
"version": "1.37.1",
|
|
"date": "20/04/2026",
|
|
"category": "FEATURE",
|
|
"title": "JAE-AI CLI Easter Egg \u2014 Local Pseudo-Shell",
|
|
"changes": [
|
|
"JAE-AI chat now detects messages starting with / and handles them locally as a fake CLI shell \u2014 never hits the Venice API, all 100% client-side JavaScript",
|
|
"New js/chat-cli.js + css/chat-cli.css \u2014 17 built-in commands: /help /ls /cat <file> /whoami /uptime /uname -a /date /ping <host> /sudo <cmd> /rm -rf / /hack <target> /matrix /clear /exit /fortune /history /neofetch",
|
|
"Virtual filesystem: /cat about.md|projects.json|skills.md|secrets.enc|mascot.txt|whoami.txt \u2014 with glitchy ASCII art ACCESS DENIED screen on secrets.enc",
|
|
"/whoami pulls real data from /api/visitor/scan; /uptime pulls from /api/telemetry/overview; /neofetch shows ASCII dragon with browser/OS/screen data",
|
|
"/matrix toggles a full-screen green Katakana matrix-rain canvas overlay (opacity 18%, 16px JetBrains Mono, var(--status-green))",
|
|
"/hack runs hollywood-style fake progress bars with payload injection drama before revealing it was all fake",
|
|
"/rm -rf / shows an ASCII destruction sequence then restores from backup with a cheeky message",
|
|
"Unknown commands route to: command not found: /<cmd>. Type /help for available commands.",
|
|
"Persistent /history ring-buffer (50 entries) stored in localStorage.jaeCliHist",
|
|
"BONUS: Konami code (\u2191\u2191\u2193\u2193\u2190\u2192\u2190\u2192BA) unlocks DEVELOPER MODE \u2014 amber badge top-right + extra commands: /api (list real endpoints), /curl <url> (actually fetch public URLs, 2KB truncated), /geo (pull live 24h country breakdown from telemetry)",
|
|
"chat.js sendMessage() patched to intercept /-prefix messages before hitting /api/chat \u2014 user bubble gets $ shell prompt, response styled in terminal-green monospace"
|
|
]
|
|
},
|
|
{
|
|
"version": "1.37.0",
|
|
"date": "20/04/2026",
|
|
"category": "FEATURE",
|
|
"title": "SCAN THE VISITOR \u2014 Typewriter Operator Recon Overlay",
|
|
"changes": [
|
|
"New homepage overlay greets every visitor with a dramatic typewriter-animated recon scan (~22ms/char): geolocation via GeoLite2, reverse-DNS-derived ISP, user-agent parsing (browser/OS/device) via user-agents pip package, masked IP (X.***.***.Y), screen/language/timezone/connection fingerprinting, plus GREEN/AMBER/RED threat-level status bar",
|
|
"Backend: new api/visitor_routes.py Flask blueprint with /api/visitor/scan endpoint \u2014 in-memory per-IP rate limiting (1 req / 10s), lazy GeoIP reader (country + city when available), 1s-timeout reverse DNS hostname lookup with ISP dictionary (BT/Virgin/Sky/AWS/Cloudflare/Hetzner etc.), country-flag emoji auto-generation, TOR exit-node heuristic",
|
|
"Frontend: js/scan-visitor.js + css/scan-visitor.css \u2014 720px CRT-scanline overlay with blur backdrop, monospace green typewriter output, blink cursor, three action buttons (CLOSE / DISMISS 7D / ACKNOWLEDGE), ESC-to-close, collapses into a persistent bottom-right OPERATOR ID badge on close, click badge to re-run scan",
|
|
"localStorage persistence: scanDismissed (7-day auto-expiry so returning operators only see the badge), scanBadgeHidden (\u00d7 on badge hides it permanently)",
|
|
"Fully mobile responsive: panel narrows to 96vw at <600px, reduces typography, adjusts badge position above bottom HUD bar",
|
|
"Bundled api/data/country_centroids.json (130+ ISO-3166 country lat/lon centroids) to power upcoming 3D globe traffic-arc feature",
|
|
"Exposed window.__jaeScan.run() / window.__jaeScan.reset() for debug re-triggering"
|
|
]
|
|
},
|
|
{
|
|
"version": "1.36.2",
|
|
"date": "20/04/2026",
|
|
"category": "FIX",
|
|
"title": "Telemetry Polish \u2014 GeoIP Live, Service Watchlist Cleanup, Git Hygiene",
|
|
"changes": [
|
|
"GEO INTEL panel now LIVE \u2014 installed DB-IP Country Lite mmdb (8.4MB, April 2026) at /usr/share/GeoIP/GeoLite2-Country.mmdb on VPS plus geoip2==5.2.0 Python package; telemetry dashboard now shows per-country traffic bars (US/GB/RU/CN/SG/DE/AD/UA currently top)",
|
|
"Monthly GeoIP auto-refresh: new /usr/local/bin/update-geoip.sh bash script + cron '0 4 2 * *' fetches fresh DB-IP mmdb on 2nd of each month, gunzips, restarts jaeswift-api.service, logs to /var/log/geoip-update.log",
|
|
"Service watchlist cleaned \u2014 removed matty-lol, caddy, n8n from SYSTEMD_SERVICES in telemetry_routes.py (they were generating false SERVICE DOWN alerts; matty-lol runs on PM2, caddy+n8n unused)",
|
|
"Git DIRTY flag cleared \u2014 added runtime-generated files to .gitignore: api/data/telemetry_history.json, api/data/telemetry_netstate.json, api/govdomains-source/ (these are written by cron jobs, not source code)",
|
|
"Repos panel now reports CLEAN instead of DIRTY for jaeswift-homepage"
|
|
]
|
|
},
|
|
{
|
|
"version": "1.36.1",
|
|
"date": "20/04/2026",
|
|
"category": "FIX",
|
|
"title": "Cron Log Path Corrections",
|
|
"changes": [
|
|
"Fixed CRON_JOBS definitions in telemetry_routes.py \u2014 contraband/awesomelist/govdomains logs use hyphens not underscores on VPS (contraband-sync.log not contraband_sync.log)",
|
|
"Corrected govdomains_sync schedule from Sunday 05:00 to every 12 hours (0 */12 * * *) \u2014 matches actual crontab",
|
|
"All 5 crons now report OK status on telemetry dashboard instead of UNKNOWN"
|
|
]
|
|
},
|
|
{
|
|
"version": "1.36.0",
|
|
"date": "19/04/2026",
|
|
"category": "FEATURE",
|
|
"title": "TELEMETRY Dashboard \u2014 Live Ops Command Centre",
|
|
"changes": [
|
|
"New /hq/telemetry page replacing placeholder \u2014 full live ops dashboard with boot sequence animation, CRT aesthetic, real-time metrics",
|
|
"Backend blueprint api/telemetry_routes.py \u2014 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 \u2014 plus PM2 processes \u2014 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 \u2014 expandable log tails",
|
|
"Nginx 24h analytics: total requests, bandwidth, avg RPM, top 10 pages, top 10 IPs (masked), 4xx/5xx counts, avg response time \u2014 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 \u2014 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) \u2014 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 \u2014 red/amber/info levels \u2014 scrolling marquee banner on page",
|
|
"Visitor counter: active unique IPs in last 5min + req/min \u2014 animated ONLINE NOW strong number",
|
|
"Burn rate panel: free disk GB, 24h bandwidth totals (\u2191/\u2193), load avg breakdown, kernel@hostname",
|
|
"Deployment ticker: horizontal marquee of last 10 git commits (SHA + message + ago)",
|
|
"Boot animation: 1.5s cinematic sequence \u2014 INITIALISING \u2192 SECURE CHANNEL \u2192 DECRYPTING \u2192 AUTHORISED \u2014 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\u2192amber\u2192red as staleness grows",
|
|
"Mobile responsive \u2014 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 \u2014 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"
|
|
]
|
|
}
|
|
]
|
|
} |