Version History · Dev Log · Changelog

Patch Notes

A running record of everything added, fixed, and changed — changelog, patch notes, and dev log combined.

Current version: v
v1.8.3Feature

Truth Search Fixed, RSS Feed, Featured Truth Clarification

Fixed the truth search bar which had stopped working, added an RSS feed for truths and paradoxes, and clarified the monthly featured rotation.

△ Truth Search Fix

  • Root cause: Cloudflare was intercepting the email address in the-truth.html and injecting a decoder script into the page, which truncated the file and removed the script tags at the bottom — meaning truth.js never loaded and search never ran
  • Fixed by rebuilding the-truth.html completely from scratch via Python with the email assembled from parts so Cloudflare cannot intercept it
  • All 12 truth entries preserved with correct data-search attributes for keyword filtering

◈ RSS Feed (feed.xml)

  • New feed.xml at evundavis.com/feed.xml with 34 items: 12 monthly featured entries, 12 truths, 10 paradoxes
  • Monthly featured items listed most recent first covering the full 12-month rotation
  • RSS autodiscovery link tag added to all pages so browsers and feed readers can detect the feed automatically
  • Compatible with all standard RSS readers (Feedly, NetNewsWire, etc.)

◎ Monthly Featured Rotation

  • The monthly featured section alternates between truths and paradoxes each month
  • April (current): The Fermi Paradox. May: Monty Hall problem. June: Hilbert's Infinite Hotel
  • The featured banner appears on the homepage, The Truth page, and the Paradoxes page
  • To change what is featured, edit the FEATURED array in monthly.js
v1.8.2Fix

Icon System Unified — No More Emoji

Replaced all emoji throughout the site with clean geometric Unicode symbols that match the style of the nav bar icons.

◇ What Changed

  • All emoji (📝 🔍 🎮 🐞 etc.) replaced with geometric symbols from the same Unicode block as the nav icons (◎ ∞ ◇ ✉ ◈ etc.)
  • Patch Notes nav icon changed from notebook emoji 📝 to filled diamond ◆ — consistent with the other nav icons
  • Search icon changed from magnifying glass emoji to empty circle ○
  • Patch notes section titles now use symbols: ▲ for fixes/infrastructure, ◇ for features, △ for bugs, □ for deletions, ◆ for dev notes
  • Paradox accordion row icons updated to geometric symbols
  • Share button labels updated to match the symbol style

◆ Dev Note

Emoji render inconsistently across operating systems and browsers — the same character can look completely different on Windows vs macOS vs Android. Geometric Unicode symbols in the ▀–✏ range render as monochrome text glyphs on every platform, matching the design language of the nav icons exactly.

v1.8.1Fix

Activities Section Temporarily Removed

The Activities/Games section has been fully removed from the site temporarily while the site gets indexed and categorized by search engines and content filters without a games section affecting the category rating.

□ What Was Removed

  • activities.html removed from the site and the zip entirely
  • Activities link removed from sidebar navigation on all pages
  • Activities link removed from footer navigation on all pages
  • Activities card removed from the homepage cards grid
  • Homepage tagline and stats strip updated to reflect current content (Truths and Paradoxes only)
  • About page sections grid updated to remove Activities tile

◆ Dev Note

School content filters categorize websites by their content. A site with browser games embedded in it will likely be categorized as a gaming site and blocked. By temporarily removing the games section, the site can be indexed and categorized as an educational/philosophy/math site. Once that category is established, the Activities section can be added back and the site is less likely to be blocked because its category is already set.

v1.8.0Feature

Activities Page — Renamed + Unblocked Game Sources

The Games page has been renamed to Activities with a neutral URL, neutral card names, and direct CDN file URLs for embeds so school content filters are less likely to block them.

◈ Games → Activities

  • games.html renamed to activities.html — URL no longer contains the word "games"
  • Browser tab title changed from "Games — Evun Davis" to just "Evun Davis" — nothing game-related visible to a teacher walking by
  • Sidebar nav label changed from "Games" to "Activities"
  • Page header changed to "Activities" with neutral subtitle
  • Password gate now says "Activities Vault" instead of "Games Vault"
  • All internal links across every page updated from games.html to activities.html

◈ Direct CDN Embed URLs

  • All game embeds switched from twoplayergames.org/embed/ to files.twoplayergames.org/files/games/ — the raw CDN file host rather than the game portal website
  • files.twoplayergames.org is categorized as a file/CDN host, not a gaming site — much less likely to be blocked by school content filters
  • Game card display names changed to neutral descriptions: Basket Random → Bounce Ball, Soccer Random → Kick Around, Boxing Random → Punch Out, Volleyball Random → Net Rally, Getaway Shootout → Chase Mode, House of Hazards → Obstacle House, Rooftop Snipers → High Ground, Moto X3M → Stunt Track, Penalty Shooters 2 → Penalty Round, Slope → Infinite Slope, Run 3 → Tunnel Run
  • Grim Donut keeps its name (pinkbike.com looks like a cycling/sports site, not a game portal)

◆ Dev Note

School content filters typically block by domain category rather than by keyword scanning the page content. twoplayergames.org is registered as a gaming site. files.twoplayergames.org is its CDN subdomain and is categorized differently. The iframe src URL is what the filter sees when the page loads — not the card title text. Neutral display names are a secondary layer of camouflage for anyone glancing at the screen.

v1.7.1Fix

Contact Email Fix, Share Popover Clip Fix, Generator Removed, Color Truth Added

Patch addressing all issues found after v1.7.0 deployed: email display bug, share popover clipping, stale generator references, and a new truth about color perception.

✉ Contact Email

  • Contact info panel was showing literal + email + text instead of the real address — a Python f-string concatenation bug in the HTML builder
  • Fixed: email address now correctly displays as [email protected]
  • Footer email was also CF-mangled across several pages — all corrected

◈ Share Popover Clipping

  • .paradox-row had overflow: hidden which clipped the share popover so only the bottom half was visible
  • Fixed by removing overflow: hidden from .paradox-row and setting overflow: visible on .paradox-row-body
  • Border radius preserved separately on the header element

□ Generator Page Fully Removed

  • generator.html deleted
  • AI Generator nav link removed from all sidebars and footers
  • Several pages still had the nav item in their sidebar from an earlier update — all cleaned up

● New Truth — Color Perception

  • Added: "When you photograph a color, the color in the photo is not the color that actually exists"
  • Colors are not physical properties — they are brain interpretations of light wavelengths. Phone cameras process and guess, producing different results on different devices
  • Replaced truth #9 (Oxford older than Aztecs — interesting but not debatable)

■ Patch Notes

  • v1.7.1 added to patch notes (this entry)
  • All versions from v1.0.0 through v1.7.1 present and accurate

◆ Dev Note

The contact email bug was a Python string interpolation issue: the f-string used ' + email + ' inside a non-f-string, so it was printed literally. Fixed by building all HTML lines as regular string concatenation with the email variable joined explicitly.

The popover clipping was caused by overflow: hidden on the paradox row container, which is a common CSS gotcha — any absolutely-positioned child that overflows its parent gets clipped when the parent has overflow:hidden.

v1.7.0Feature

Share Button Popover, Monthly Featured, Mobile Fixes, Footer Fix

Share redesigned as a single button opening a popover. Monthly featured rotation added. Mobile layout improved. Footer duplication fixed.

◈ Share Button Redesign

  • Single "Share ↗" trigger button per truth/paradox entry
  • Opens a popover with: Copy Link, Twitter/X, Reddit, WhatsApp, Text/SMS, Email
  • Only one popover open at a time — closes on outside click or Escape
  • Popover opens upward on desktop, downward on mobile

◎ Monthly Featured Rotation

  • monthly.js injects a "This Month's Featured" banner on homepage, Truth, and Paradoxes pages
  • Rotates by calendar month, client-side — no backend required

◇ Mobile

  • Footer stacks vertically on small screens
  • Truth entries, paradox rows, contact form, stats all stack correctly

□ Footer Duplication

  • Pages had up to 6 duplicate footers — fixed by always cutting at the first footer before appending one clean copy

□ Generator Page Removed

  • AI generator HTML page removed — will be handled differently

◆ Dev Note

The footer duplication problem was a fix script making things worse each run. Solution: always cut at the first footer and replace, never append.

v1.6.1Fix

Footer Duplication + Mobile CSS Audit

Fixed pages showing multiple stacked footers and added comprehensive mobile responsive CSS.

△ Footer Fix

  • Multiple pages had 3-6 duplicate footers from repeated appends
  • Fixed by cutting at first footer and rewriting one clean copy

◇ Mobile CSS

  • Added coverage for footer, truth entries, games, paradoxes, contact, patch notes, about, stats
  • Added 400px extra-small breakpoint
v1.6.0Feature

Chromebook-Friendly Games + More Debatable Truths

Switched game embeds away from CrazyGames and replaced obvious truths with genuinely debatable ones.

■ Games

  • Random-series switched to twoplayergames.org
  • Added Grim Donut, House of Hazards, Rooftop Snipers, Moto X3M, Slope, Run 3
  • Removed Subway Surfers, Temple Run 2, Stickman Hook (unreliable embeds)

◎ Truths

  • Added: Free will illusion, Cannot know others are conscious, Lying can be moral, Mpemba Effect (debatable)
  • Removed: Bananas radioactive, Venus day/year, Mammoths/pyramids
v1.5.1Fix

Truth Entries Invisible + Firebase Rules Syntax

Fixed The Truth page showing no content after the Firebase update.

△ Bug 1

  • Entries had opacity: 0 by default, relying on deferred module JS that missed viewport elements
  • Fix: visible by default, .animated added only to below-fold entries

△ Bug 2

  • allow read: true is invalid Firestore syntax — requires allow read: if true

◆ Dev Note

Progressive enhancement: content must always be visible by default. JS adds animation on top, never controls visibility.

v1.5.0Feature

Real Contact Form + Real Shared Voting

Contact form wired to Formspree. Voting replaced with Firebase Firestore.

✉ Formspree

  • Real emails via Formspree (ID: maqpzpyg)
  • fetch() POST — page never reloads
  • Button shows "Sending..." in flight

▲ Firebase

  • Votes stored in Firestore votes collection
  • Real-time via onSnapshot
  • User vote in localStorage prevents double-voting
v1.4.0Feature

Patch Notes Page

Added this page combining changelog, patch notes, and dev log.

■ What Shipped

  • patch-notes.html with full history from v1.0.0
  • Version type badges, sidebar + footer link on all pages
v1.3.1Fix

Dark Mode Toggle Icon Alignment

Fixed toggle icon off-center in collapsed sidebar.

△ Fix

  • .sidebar-footer padding pushed button inward
  • Added matching border-left: 3px to toggle button
v1.3.0Feature

More Content, Search Bars, Dark Mode

Biggest single update: 18 new items, search bars, dark mode, 6 new games.

■ Games

  • 6 new games (12 total)
  • Filter tabs, live search

◎ Truths

  • 5 new truths (12 total)
  • Live search

∞ Paradoxes

  • 3 new paradoxes (10 total)
  • Featured rotation 8 items, quiz 8 questions, live search

☾ Dark Mode

  • OS preference default, localStorage saved, no flash on load
v1.2.0Feature

Featured Paradox Rotation + Version System

Auto-rotating featured paradox and site-wide version number.

↻ Rotation

  • 7s auto-rotate through 6 paradoxes, prev/next arrows, dots, hover pauses

■ Version

  • SITE_VERSION in sidebar.js updates every page footer
v1.1.0Feature

Full Site — All Pages Built

Expanded from homepage to 6-page site.

■ Games

  • Password gate, 6 games in fullscreen iframe modal

◎ The Truth

  • 7 debatable facts, scroll animations, localStorage voting

∞ Paradoxes

  • Featured card, accordion, 6-question quiz

▲ Infrastructure

  • All CSS/JS externalized
  • Active nav auto-detected by URL

◆ Dev Note

Cloudflare proxy intercepts email addresses in HTML. Fix: write all HTML through Python and assemble address from parts.

v1.0.0Launch

Initial Launch — Homepage

First version of evundavis.com.

■ What Shipped

  • Hero, cards, about strip, highlights, stats
  • Collapsible sidebar with localStorage memory
  • Mobile overlay sidebar, scroll animations, dynamic copyright year

■ Tech Stack

  • Pure HTML/CSS/JS, no frameworks
  • Playfair Display + DM Sans + DM Mono via Google Fonts
  • 3 files at launch: index.html, styles.css, sidebar.js