May 2026 84 commits
- feat(feed) introduce Atom feed at /feed.xml for the project's research log
- handover gate expansion + map filter response, queue drained
- chore(changelog) regenerate after map filter response ship
- feat(map) world map dims markers excluded by the current filter set
- chore(changelog) regenerate after gate expansion
- feat(gate) expand visual_gate to seven explainer pages, fix the two touch-target regressions caught
- handover ship inventors and SVG map, the two big deferrals collapsed
- chore(changelog) regenerate after world map ship
- feat(map) ship SVG world map of identified buildings on corpus index
- chore(changelog) regenerate after inventors page ship
- feat(inventors) ship /explainer/inventors.html, the named researchers roster
- chore(corpus) add lat and lon to dataset JSON-LD variableMeasured
- handover ship three commits, drain queue items 3 6 7
- chore(corpus) add BUILDING_GEO coordinates for 27 plottable buildings
- feat(changelog) ship /changelog.html generated from git log
- chore(crosslinks) finer outbound links from rebuild and electroculture
- handover ship three cross-link polish commits, defer inventors and SVG map again
- chore(crosslinks) tighten granite Stubblefield link to destruction.html#establishes
- chore(homepage) surface rebuild from the verdict box as the forward-looking complement
- chore(crosslinks) wire theory destruction foundries inward to rebuild
- handover ship four commits, close the prior queue except inventors
- chore(gate) strip inline svg blocks before warn-only scan
- chore(crosslinks) link theory and destruction pages inward to granite
- feat(rebuild) ship /explainer/rebuild.html, the costed integrated craft specification
- feat(electroculture) ship /explainer/electroculture.html, the 1746 to 1968 research line
- handover ship four commits, deploy verified end to end
- feat(granite) ship /explainer/granite.html, the piezoelectric foundation
- chore(og) add per-page social cards for the three new explainer pages
- feat(nav) surface the experiments index from every existing top nav
- handover ship six commits this session, three new explainer pages and a tuned gate
- feat(bells) ship /explainer/bells.html, the acoustic companion piece
- feat(foundries) ship /explainer/foundries.html with the paper trail evidence
- chore(gate) exclude inline style attributes and domain names from warn scan
- chore(gate) strip style and script blocks before warn-only scan
- chore(gate) warn on ASCII compound modifiers in player-facing files
- docs add enhancement and creative brainstorm documents
- handover extend autonomous session with ten polish commits
- chore(copy) correct homepage example footer and scatter note ornament count
- chore(ux) add reset filters button to corpus index
- chore(copy) drop ASCII hyphens from JS-rendered verdict and footer text
- chore(copy) drop ASCII hyphen from corpus stat geo tagged
- chore(seo) bump sitemap lastmod to 2026-05-09 for all six urls
- chore(copy) correct homepage noscript scene list (was missing house, scatter pluralised)
- chore(a11y) respect prefers-reduced-motion across all six pages
- chore(a11y) add aria-label to abbreviated corpus sort buttons
- chore(a11y) give homepage synth and decade button rows group semantics
- chore(ux) upgrade corpus search input to type=search with mobile hints
- handover extend autonomous session with three brainstorm picks
- chore(theory) annotate qw verdict with current amateur band
- chore(ux) add random specimen roulette to corpus index
- chore(theory) plot frequency band ladder under quarter wave slider
- handover extend autonomous session with six more polish commits
- chore(a11y) link theory page sliders to their verdicts via aria-describedby
- chore(seo) bump sitemap lastmod for corpus
- chore(a11y) add role status to corpus filter summary
- chore(a11y) add role status to homepage dynamic captions
- chore(a11y) add role status to theory page verdict elements
- docs(principles) hoist bloom and exposure conventions to PRINCIPLES
- handover noscript completion + perf + ux polish autonomous session
- chore(seo) bump sitemap lastmod for homepage
- chore(a11y) add noscript fallback to homepage
- chore(ux) add download attribute to corpus csv anchor links
- chore(a11y) make noscript notice padding responsive on explainer pages
- chore(seo) bump sitemap lastmod for the three explainer pages
- chore(perf) add decoding async to homepage example card images
- chore(a11y) add noscript fallback to three explainer pages
- handover add nginx MIME type observations to known issues
- handover extend autonomous session with five more polish commits
- chore(a11y) add noscript fallback to corpus index
- chore(perf) add width and height attrs to the period engraving img
- chore(seo) add robots meta with rich preview directives
- chore(seo) switch explainer pages from og website to og article
- chore(hygiene) remove empty touch_target_baseline.json
- handover autonomous session, structured data + print buttons + perf
- chore(perf) add loading lazy and decoding async to images
- chore(seo) bump sitemap lastmod to current session date
- chore(seo) add breadcrumblist json-ld to corpus and four explainer pages
- chore(seo) expand destruction article json-ld with nine event itemlist
- chore(ux) add print button to measurement page
- chore(seo) add article json-ld to theory measurement outreach pages
- chore(seo) add article json-ld with temporal coverage to destruction page
- chore(seo) add website json-ld to homepage
- chore(seo) emit dataset json-ld for the corpus page
- chore(ux) add print or save as pdf button to destruction page
April 2026 288 commits
- handover autonomous session, sitemap thumbnails + structured time
- chore(seo) wrap corpus year cells in time element
- chore(seo) mark destruction timeline dates with time element
- chore(gate) extend dash check to scan xml files
- chore(seo) add sitemap image entries for the 124 corpus thumbnails
- handover autonomous session, sitemap image ext + color-scheme + dash discipline
- chore(copy) remove hyphens from corpus descriptors and labels
- chore(copy) remove hyphens from player facing prose on all six pages
- chore(meta) declare color-scheme dark on all six pages
- chore(seo) add sitemap image extension entries for all six og images
- handover autonomous session, meta polish + PRINCIPLES.md refresh
- chore(meta) declare og:image type, width, height on all six pages
- chore(meta) tighten html lang from en to en-GB on all six pages
- chore(meta) add og:image:alt + twitter:image:alt on all six pages
- docs(principles) refresh visual-gate description for two-pass axe scan
- handover autonomous session, color-contrast palette pass + gate widening
- chore(seo) bump sitemap lastmod to 2026-04-28
- chore(meta) declare og:locale en_GB on all six pages
- gate add axe best-practice tag to the main scan
- fix(theory) St Elmo quote uses blockquote, not aside
- fix(corpus) table score s0 cell text crosses AA contrast
- gate enable axe color-contrast site-wide with canvas excluded
- fix(home) footer related-links label and disclaimer cross AA
- gate enable axe color-contrast on corpus (canvas-free)
- fix(corpus) gallery score chips and table identified-no cross AA
- gate enable axe color-contrast on outreach (canvas-free)
- fix(corpus) prevalence chip dim text crosses AA contrast
- handover autonomous session, touch-target baseline 98 to 0
- gate run axe a11y scan at both viewports
- fix(misc) clear final 4 touch-target baseline entries; surface is AAA
- fix(theory) slider labels reach 44 px touch target on mobile
- fix(skip-link) meet WCAG 2.5.5 AAA across all five pages
- fix(outreach) hero CTAs meet WCAG 2.5.5 AAA on mobile
- fix(tldr) tldr-more links meet WCAG 2.5.5 AAA on mobile
- fix(footer) related-links meet WCAG 2.5.5 AAA on mobile
- fix(synth) synthesis pills meet WCAG 2.5.5 AAA on mobile
- fix(footer) big-links meet WCAG 2.5.5 AAA on mobile
- fix(cards) jump-to-row links promote to button row on mobile, AAA
- fix(filters) dec-pill decade filters meet WCAG 2.5.5 AAA on mobile
- fix(nav) mobile section-nav links meet WCAG 2.5.5 AAA
- handover autonomous session, four commits, all gate guards
- deploy exclude touch_target_baseline.json from tar
- docs(principles) document the four-layer three.js scene pattern
- gate add per-canvas screenshot pass for three.js scenes
- gate add touch-target check with baseline ratchet
- handover graphics audit + corona and resonance scene fixes
- fix(resonance) mast and orb now match real long aerial proportions
- fix(corona) scene now reads as a Victorian lightning rod, not a screwdriver
- handover full session, three acts (cage + resonance/corona + mobile fix)
- fix(theory) mobile touch targets meet WCAG 2.5.5 AAA
- handover full theory.js refactor consistency pass + deploy
- refactor extract buildCoronaStructure for static scene + rebuildTip
- refactor extract buildCoronaEffects for field lines + tip breath
- refactor lift pure corona helpers to module scope
- refactor extract buildResonanceStructure for static geometry
- refactor extract buildResonanceEffects for wave envelope + breath
- refactor lift pure resonance constants to module scope
- handover initCage three-pass refactor
- refactor extract buildCageStructure for static geometry
- refactor extract buildCageEffects for field lines + fade lerp
- refactor lift pure cage helpers and constants to module scope
- handover deploy + initStElmo three-pass refactor
- refactor extract buildStElmoStructure for static geometry
- refactor extract buildStElmoEffects for glow + bolt + storm
- refactor lift pure St Elmo helpers and constants to module scope
- handover three refactor + five editorial commits + the pivot
- content surface methodological frame on destruction page
- docs add epistemic stance section to EDITORIAL_STANCE.md
- content surface bias-of-record in verdict box (paragraph 3 of 4)
- docs link PRINCIPLES.md at EDITORIAL_STANCE.md as authoritative
- docs add EDITORIAL_STANCE.md, project-internal authoritative
- refactor extract buildHouseStructure for house geometry
- refactor extract buildEnergyLayer for house-scene particles
- refactor lift pure house-scene helpers to module scope
- handover eight content commits + audit fixes + PRINCIPLES rewrite
- refactor extract bloom defaults, lazy margin, sync paint frame count
- docs rewrite PRINCIPLES.md to match this codebase
- docs drop PLAYWRIGHT-MCP-GUIDE, generic template not in use
- chore log generate_og_images error context before 500
- docs drop two unreferenced template knowledgebases
- handover update with VM deploy verification
- handover three commits ship hyphen, compression, canonical SEO
- seo canonical URL meta + sitemap lastmod, six pages
- perf compress 124 corpus thumbnails, 26.5MB to 14.7MB
- content drop blue-violet hyphen per no-dashes rule
- handover three commits ship lazy init, package.json, per page OG
- content per page Open Graph images for the five subpages
- build package.json + lockfile so axe and playwright reproduce on a clone
- perf lazy-init homepage three.js scenes via IntersectionObserver
- handover five commits ship typo fix + telluric + Schumann + corpus selects
- content extend theory.html in-summary to acknowledge sections 04 and 04b
- ux custom styled select dropdowns on corpus.html
- content Schumann scale diagram on theory.html (H)
- content telluric ground diagram on theory.html (D)
- content fix Ducrelet -> Ducretet kb typo
- handover ten commits ship visual iteration + 14 audit fixes + axe-core gate
- a11y wire axe-core into visual_gate, fix issues it surfaced
- a11y aria-valuetext on theory sliders + clearer "all" filter labels
- a11y link underline contrast accent-dim -> accent (3:1 floor)
- a11y keyboard-operable sort headers on corpus.html
- a11y fix h2 -> h4 heading skip on destruction.html
- a11y aria-pressed on toggle buttons, aria-current on nav, drop fake tablist
- a11y visible focus indicator on every interactive element
- a11y associate every form label with its input via for=
- ux break Eiffel cite-row into per-source list, dotted markers
- ux integrate period-source tag into engraving figure as header band
- handover four-commit session ships St Elmo deploy + B/F/G
- a11y main landmark and skip-to-main link on all six pages
- content lift period engraving 031 to homepage evidence section
- content Eiffel Tower precedent panel on destruction.html
- Footer, add Related work links to OWL site, OWL Telegram, Crelvo
- handover low-context, one commit ships St Elmo's fire scene
- photoreal St Elmo's fire scene on theory.html (visible corona, pre-storm)
- handover ten commits ship hygiene polish + visual iteration loop
- photoreal scale house-scene ornaments 0.55 to 0.72 so they read as subject
- ux differentiate gallery score chips by score level (s0 fades, s3 pops)
- handover eight commits ship hygiene polish, dec card binary, README count
- icon add theme-color meta tag matching site bg across all six pages
- docs correct README image counts to active 124, not original 135
- fix dedupe accidentally repeated footer credit line
- a11y aria-hidden on all 14 dynamically created Three.js canvases
- a11y meaningful alt text on corpus image thumbnails
- icon add antenna silhouette favicon (SVG) to all six HTML pages
- seo add sitemap.xml and robots.txt
- photoreal decorative hyp-card matte 0.45 to 0.0 (true dielectric)
- handover three commits ship rAF a11y/perf, hyp-card metal, corpus print
- print corpus.html @media print stylesheet, README subpage list fixed
- photoreal bronze metalness 0.7-0.95 to 1.0 in three hyp-card scenes
- a11y+perf respect prefers-reduced-motion, pause rAF off-screen
- handover two commits ship IA root swap + bronze metalness fix
- photoreal bronze metalness 0.85 to 1.0 on the three named hero materials
- ia explainer becomes site root, corpus moves to /corpus.html
- handover three commits ship AgX tone mapping, copy tightening, print stylesheets
- print add @media print to four explainer pages
- copy tighten anatomy lead and six corpus number-card captions
- photoreal AgX tone mapping replaces ACES across all scenes
- handover two commits apply realism-kb photoreal recipes (env + clearcoat)
- photoreal clearcoat satin layer on bronze materials
- photoreal procedural sky environment for IBL across five scenes
- handover three commits ship Phase 1 house scene with energy as natural law
- evidence trim two duplicative lead paragraphs
- house scene energy as natural law, four particle layers
- house scene realistic Victorian roof, two ornaments, click-to-focus
- handover eight commits ship the queue and the realistic-house Phase 1 spec
- synthesis canvas compare-two-ornaments mode
- images remove the eleven excluded source jpgs from the deploy
- handover five commits clear most of the prior queue, three need a deploy
- lightning hypothesis card clone the line material per field line
- subpages demote the Christian reading to cultural skin in theory + measurement
- catalogue annotate the eleven excluded rows in both catalogue files
- corpus table humanize the primary label, keep filename below
- audit regenerate corpus_ambiguous_audit.md against the pruned corpus
- handover corpus pruned to 124, "135" magic-number framing gone
- corpus prune 11 weak photos that do not fit the antenna thesis
- copy stop treating the photo count as a magic number
- Session handover six commits refocus the site on antenna + energy
- question trim the argument from six paragraphs to four
- tldr progressive-disclosure links to the live physics simulations
- hypotheses and gallery demote Christian reading to cultural context
- synthesis default antenna and energy drain on, Christian overlay off
- hero lead with antenna and lightning rod, Christian reading demoted
- hero add "argument in 30 seconds" section with two scientific SVG diagrams
- Session handover five commits land gallery, wavefronts, VM deploy
- deploy to theforgottensystem.org on the Hetzner VM
- corpus index add gallery view, make it the default
- synthesis incoming radio wavefronts drive the antenna standing wave
- synthesis hint dimmed background and tap copy on touch
- mobile nav horizontal scroll instead of hiding seven links
- Session handover update 11 commits, image relocation, gallery restored
- examples gallery eight runtime-picked photographs in the explainer
- images relocate corpus jpgs into site/images/ for production deploy
- Session handover nine commits ship a museum-grade explainer site
- social cards og.jpg + meta tags on every reader-facing page
- synthesis hover tooltips reveal triple meaning per ornament feature
- hero cinematic 3D ornament next to the headline
- theory.html dedicated physics page with three live diagrams
- scatter per-continent convex hulls + decade filter pills
- synthesis scene thunderstorm strikes drive a current pulse to ground
- synthesis scene slate gable roof + storm sky backdrop + atmospheric fog
- bloom post-processing on five three.js scenes
- synthesis scene three readings superimposed on one ornament
- Session handover second phase adds Limbourg-absence, 1909 Bonfils note, fontesdart.org platform lead
- foundry scan caveat 5 fontesdart.org and e-monumen.net surface as concrete second-pass platform
- foundry_paris_evidence Limbourg absence, 1909 Bonfils edition, Paris null confirmed
- Session handover Bonfils installation register discovery, Val d'Osne taxonomy, destruction timeline dates
- destruction page fix dates and framing for entries 7 and 8
- foundry scan Val d'Osne zero-hit confirmed at product-taxonomy level
- Bonfils installation register primary-source closes open question 1
- Session handover scan to 44 catalogues with specialty-firm refinement, Paris cross-reference null result, ready-to-send cold email draft
- outreach ship ready-to-send Paris cold email draft
- foundry_paris_evidence document public-web cross-reference null result
- Expand foundry scan to 44 catalogues, document specialty-firm pattern
- Session handover Paris paratonnerre evidence deepened, Continental gap documented, knowledgebase updated
- Knowledgebase add Paris foundry findings to Sections 56 and 82.1
- Add Durenne and second Val d'Osne to foundry scan, document Continental gap
- Add plate-by-plate Paris foundry evidence for cold-email citation
- Measurement page update Fiske reference to cite Paris pair too
- Session handover foundry scan to Paris, labelling, mobile nav
- Update explainer and README to reflect expanded foundry scan findings
- Hide section-anchor nav links on explainer subpages at mobile widths
- Honest document-level labelling in foundry scan report
- Expand foundry scan to European catalogues, find Paris paratonnerres
- Deploy site to Vercel at antenna-corpus.vercel.app
- Session handover foundry catalogue scan, partner outreach materials, README refresh
- Update README with explainer subpages, audits, and outreach folder
- Add partner outreach brief and cold email templates
- Add foundry catalogue pattern-match scan against archive.org OCR
- Session handover destruction subpage, corpus audit, three polishes
- Inline primary archival sources for entries 03, 04, 06, 09
- Push era label below counter when their rects would overlap
- Lowercase audit classifier needles so the weather-vane row buckets
- Session handover destruction-timeline subpage and corpus ambiguous audit
- Add ambiguous-continent audit script and report
- Add destruction-timeline subpage with archive-of-holes schematic
- Session handover three polish fixes + design-the-measurement subpage
- Add design-the-measurement subpage with instrumented-spire schematic
- Add pre-commit dash hook for player-facing site files
- Clamp anatomy callouts to stage rect with safe inset
- Clamp scatter axis labels to stage, hide when over legend
- Session handover explainer complete, Sections 81-83 surfaced, three.js bugs fixed, visually gated
- Fix double-init and canvas resize feedback loop in explainer three.js boot
- Expand evidence section narrative intro, integrated verdict, open-questions list
- Add 3D corpus scatter all 135 rows plotted at christian x antenna x lightning_rod
- Add four hypothesis three.js scenes antenna standing wave, Franklin rod, cross + rose, catalogue row
- Surface Section 81-83 findings on explainer numbers grid, evidence columns, destruction timeline
- Session handover explainer scaffold + Sections 81-83 shipped, explainer content pass pending
- Add Section 83 consolidated record-destruction timeline + 82.8-82.9 survivorship caveat
- Add Section 82, external corroboration and honest negatives
- Add corpus statistical analysis (Section 81) with six findings
- Add illustrated argument page with three.js anatomy scene
- Session handover README, CSV, URL-persistent filters, subset prevalence
- Add filtered-subset feature prevalence chips under the summary line
- Persist filter state in location.hash so views are bookmarkable
- Export site/corpus.csv alongside corpus.js for external analysis tools
- Add README.md so the GitHub landing page explains what antenna is
- Session handover geo coverage 46 to 55 percent, Section 69 audit, site polish
- Add header stat bar and facet counts to the filterable index
- Correct Section 69 multi-feature attestation to actual corpus counts
- Add 12 new STYLE_HINTS mined from Section 11 regional-cluster prose
- Session handover 135-corpus closure, geo tagging, thumbnails, rename
- Remove em-dashes from knowledgebase.md prose
- Refresh the 128/120/108 prose to the 135-image corpus state
- Add inline thumbnails and polish the static-site index
- Add STYLE_HINTS for 24 stylistic-inference region tags
- Add .gitignore and untrack the accidentally-committed pyc cache
- Rename the 107 expansion images to the NNN_slug.jpg scheme
- Regenerate corpus.js to 135 records after the 129-135 survey
- Regenerate catalogue.md column totals across 135-image corpus
- Survey 7 new images, corpus grows 128 -> 135
- Session handover 128-corpus totals, 2 new primary IDs, rename pass, static site
- Scaffold static-site presentation layer for the 128-image corpus
- Rename the 21 original images from gibberish to descriptive slugs
- Add Section 12 web-research pass on six probable identifications
- Add Section 11 collection themes, what the user is curating
- Regenerate catalogue.md column totals across all 128 images
- Session handover full survey closed, 3 new named identifications, foundry framework live
- Add Section 10 foundry-catalogue matching framework
- Add Section 9 archive provenance index + web-pinned identifications
- Close the survey all 128 images now directly scored (100 percent)
- Survey 8 further expansion images 109-116
- Update HANDOVER.md for the deepened knowledgebase state
- Cross-reference catalogues to knowledgebase Part VI, add synthesis section
- Add Part VI to knowledgebase integrate the 108-image empirical corpus
- Final session handover 108 of 120 images surveyed, 17+ identified
- Survey 5 more images 104-108, adding Spain and Australia
- Survey 4 more images 100-103 (plus 1 duplicate detected)
- Survey 5 more images 95-99, SF Calvary Presbyterian + Berlin Brauerei
- Survey 5 more images 90-94
- Survey 5 more images 85-89, adding AFRICA (Bulawayo) and more France
- Survey 5 more images 80-84, adding Russian Empire and Hawaiian coverage
- Survey 5 more images 75-79, including Hotel National Norway and EU cafe
- Survey 5 more images 70-74, including Ketten-Schleppschifffahrt Elbe
- Survey 5 more images 65-69, two more identified French postcards
- Survey 5 more images 60-64, including Gilded Age mansion with penny-farthing
- Survey 5 more images 55-59, including Cologne 1894 villa and US library
- Survey 5 more images 50-54, including Chateau Vanackere and Portland OR
- Survey 5 more images 45-49, including Union train station and Winnipeg
- Final session handover state at 10 commits, 44 of 120 images surveyed
- Survey 4 more expansion images images 41-44, 44 total surveyed
- Survey 4 more expansion images images 37-40 push coverage to 4 continents
- Survey 5 more expansion images images 32-36, 2 more identified buildings
- Survey 6 more expansion images images 26-31 added to matrix
- Extend catalogue-expansion.md with feature matrix for surveyed four
- Add catalogue-expansion.md triage for the 99-image corpus addition
- Expand photo corpus 99 new rooftop ornament images
- Apply catalogue.md's Section 1 corrections to knowledgebase.md
- Add per-image catalogue with verified features and hypothesis scores
- Initial commit rooftop ornaments research catalogue