fix: changelog NaN dates, standardise UK DD/MM/YYYY, add missing entries v1.20.1-v1.25.0

This commit is contained in:
jae 2026-04-16 12:10:21 +00:00
parent 6736df6d37
commit 46d999ea99
2 changed files with 91 additions and 29 deletions

View file

@ -1,6 +1,45 @@
{ {
"site": "jaeswift.xyz", "site": "jaeswift.xyz",
"entries": [ "entries": [
{
"version": "1.25.0",
"date": "16/04/2026",
"title": "Changelog Fix — 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) — 48-page TOP SECRET internal review",
"Added Senate Hearing transcript (1977) — 171-page Congressional testimony exposing 149 sub-projects"
]
},
{
"version": "1.23.0",
"date": "16/04/2026",
"title": "PROPAGANDA → 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 (██████████ → UNREDACTED → reverse → 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", "version": "1.22.0",
"date": "15/04/2026", "date": "15/04/2026",
@ -13,7 +52,7 @@
"Added 3 cipher PDFs: Z408 three-part cipher (solved 1969), Z340 cipher (solved 2020), Z32 map code cipher (unsolved)", "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", "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", "Each of the 21 new documents has a unique historical description with contextual detail",
"Subcollection accordion UI with expand/collapse rendering (JS/CSS already supported)", "Subcollection accordion UI with expand/collapse rendering",
"Total Zodiac archive: 4 subcollections, 21 documents, ~52MB", "Total Zodiac archive: 4 subcollections, 21 documents, ~52MB",
"Police Reports subcollection created as placeholder for future expansion" "Police Reports subcollection created as placeholder for future expansion"
] ]
@ -32,9 +71,25 @@
"First collection populating the Serial Killers category under United States" "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 — 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) — 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", "version": "1.20.0",
"date": "2026-04-06", "date": "06/04/2026",
"title": "Bug Fixes & Polish", "title": "Bug Fixes & Polish",
"category": "fix", "category": "fix",
"changes": [ "changes": [
@ -46,7 +101,7 @@
}, },
{ {
"version": "1.19.0", "version": "1.19.0",
"date": "2026-04-06", "date": "06/04/2026",
"title": "Admin Panel Overhaul", "title": "Admin Panel Overhaul",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -61,7 +116,7 @@
}, },
{ {
"version": "1.18.0", "version": "1.18.0",
"date": "2026-04-06", "date": "06/04/2026",
"title": "SITREP — Daily AI Briefing System", "title": "SITREP — Daily AI Briefing System",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -75,7 +130,7 @@
}, },
{ {
"version": "1.17.0", "version": "1.17.0",
"date": "2026-04-06", "date": "06/04/2026",
"title": "TOKEN FORGE — SPL Token Launcher", "title": "TOKEN FORGE — SPL Token Launcher",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -89,7 +144,7 @@
}, },
{ {
"version": "1.16.0", "version": "1.16.0",
"date": "2026-04-05", "date": "05/04/2026",
"title": ".SOL Domain Registration", "title": ".SOL Domain Registration",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -102,7 +157,7 @@
}, },
{ {
"version": "1.15.0", "version": "1.15.0",
"date": "2026-04-05", "date": "05/04/2026",
"title": "SOL Price Ticker", "title": "SOL Price Ticker",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -114,7 +169,7 @@
}, },
{ {
"version": "1.14.0", "version": "1.14.0",
"date": "2026-04-05", "date": "05/04/2026",
"title": "Sitewide Solana Wallet Connect", "title": "Sitewide Solana Wallet Connect",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -128,7 +183,7 @@
}, },
{ {
"version": "1.13.0", "version": "1.13.0",
"date": "2026-04-05", "date": "05/04/2026",
"title": "RADAR — Live Tech News Feed", "title": "RADAR — Live Tech News Feed",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -141,7 +196,7 @@
}, },
{ {
"version": "1.12.0", "version": "1.12.0",
"date": "2026-04-04", "date": "04/04/2026",
"title": "Nav Dropdown Descriptions", "title": "Nav Dropdown Descriptions",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -151,7 +206,7 @@
}, },
{ {
"version": "1.11.0", "version": "1.11.0",
"date": "2026-04-04", "date": "04/04/2026",
"title": "RECON — Site Restructure & Accordion Navigation", "title": "RECON — Site Restructure & Accordion Navigation",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -164,7 +219,7 @@
}, },
{ {
"version": "1.10.0", "version": "1.10.0",
"date": "2026-04-04", "date": "04/04/2026",
"title": "RECON — Curated Lists Rebuild", "title": "RECON — Curated Lists Rebuild",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -176,7 +231,7 @@
}, },
{ {
"version": "1.9.0", "version": "1.9.0",
"date": "2026-04-04", "date": "04/04/2026",
"title": "RECON — Curated Lists Database", "title": "RECON — Curated Lists Database",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -189,7 +244,7 @@
}, },
{ {
"version": "1.8.0", "version": "1.8.0",
"date": "2026-04-03", "date": "03/04/2026",
"title": "CONTRABAND Auto-Sync & Grid Overhaul", "title": "CONTRABAND Auto-Sync & Grid Overhaul",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -202,7 +257,7 @@
}, },
{ {
"version": "1.7.0", "version": "1.7.0",
"date": "2026-04-03", "date": "03/04/2026",
"title": "Sitewide Visual Overhaul", "title": "Sitewide Visual Overhaul",
"category": "fix", "category": "fix",
"changes": [ "changes": [
@ -214,7 +269,7 @@
}, },
{ {
"version": "1.6.0", "version": "1.6.0",
"date": "2026-04-03", "date": "03/04/2026",
"title": "CONTRABAND — Classified Resource Index", "title": "CONTRABAND — Classified Resource Index",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -228,7 +283,7 @@
}, },
{ {
"version": "1.5.1", "version": "1.5.1",
"date": "2026-04-03", "date": "03/04/2026",
"title": "Navbar Dropdown Fix", "title": "Navbar Dropdown Fix",
"category": "fix", "category": "fix",
"changes": [ "changes": [
@ -239,7 +294,7 @@
}, },
{ {
"version": "1.5.0", "version": "1.5.0",
"date": "2026-04-02", "date": "02/04/2026",
"title": "Globe & Chat AI Admin Panels", "title": "Globe & Chat AI Admin Panels",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -252,7 +307,7 @@
}, },
{ {
"version": "1.4.0", "version": "1.4.0",
"date": "2026-04-01", "date": "01/04/2026",
"title": "Interactive 3D Globe", "title": "Interactive 3D Globe",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -265,7 +320,7 @@
}, },
{ {
"version": "1.3.0", "version": "1.3.0",
"date": "2026-03-31", "date": "31/03/2026",
"title": "Blog & Transmissions System", "title": "Blog & Transmissions System",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -278,7 +333,7 @@
}, },
{ {
"version": "1.2.0", "version": "1.2.0",
"date": "2026-03-30", "date": "30/03/2026",
"title": "Admin Panel & Authentication", "title": "Admin Panel & Authentication",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -291,7 +346,7 @@
}, },
{ {
"version": "1.1.0", "version": "1.1.0",
"date": "2026-03-29", "date": "29/03/2026",
"title": "HQ & Section Pages", "title": "HQ & Section Pages",
"category": "feature", "category": "feature",
"changes": [ "changes": [
@ -304,7 +359,7 @@
}, },
{ {
"version": "1.0.0", "version": "1.0.0",
"date": "2026-03-28", "date": "28/03/2026",
"title": "Initial Launch", "title": "Initial Launch",
"category": "release", "category": "release",
"changes": [ "changes": [
@ -317,4 +372,4 @@
] ]
} }
] ]
} }

View file

@ -15,11 +15,18 @@
} }
function formatDate(dateStr) { function formatDate(dateStr) {
const d = new Date(dateStr + 'T00:00:00'); // Handle both DD/MM/YYYY and YYYY-MM-DD formats
const day = d.getDate().toString().padStart(2, '0'); let d;
const month = (d.getMonth() + 1).toString().padStart(2, '0'); if (dateStr.includes('/')) {
const year = d.getFullYear(); const parts = dateStr.split('/');
return `${day}/${month}/${year}`; d = new Date(parts[2], parts[1] - 1, parts[0]);
} else {
d = new Date(dateStr + 'T00:00:00');
}
const day = d.getDate();
const months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
const suffix = (day === 1 || day === 21 || day === 31) ? 'st' : (day === 2 || day === 22) ? 'nd' : (day === 3 || day === 23) ? 'rd' : 'th';
return `${day}${suffix} ${months[d.getMonth()]} ${d.getFullYear()}`;
} }
function render(data) { function render(data) {