Topics
Recent articles

System provenance & release history

Engineering Changelog

A continuous record of production deployments, framework hardening, and architectural evolution across RayLabs—from initial launch (v0.1.0) to current production. Every major platform change connects directly to the engineering case study that drove it.

Current productionv0.17.0
Releases documented33 releases (v0.1.0 – Present)
Deployment cadenceContinuous static edge

Added

  • Fluid Animated Topic Rail & Spring Indicator (motion.dev): Replaced bulky 44px capsule bubbles on /articles/ and /topics/[topic]/ with an editorial document-style rail featuring a hardware-accelerated cyan neon spring underline indicator (motion.dev physics, stiffness: 500, damping: 34), dedicated monospace counter badges, single-row touch swipe rail with edge gradient fade on mobile (saving 85% vertical height), and staggered card transition entrances. Documented in Section 21 of DESIGN.md.
  • Engineering Changelog Page (/changelog/): Introduced static, build-time generated system ledger parsing all 33 platform releases (v0.1.0 to present) from CHANGELOG.md with deep-dive technical article case study linkages, sticky desktop release jump navigation, full WCAG AAA dark mode support, and zero runtime JavaScript overhead.
  • Automated Case Study Extraction & SemVer Governance: Enhanced the changelog parser to automatically resolve /articles/<slug> links mentioned in CHANGELOG.md into rich Case Study cards via getCollection('articles') without manual code editing. Implemented automated SemVer 2.0.0 and Keep a Changelog test suite (tests/changelog-semver.test.mjs) verifying version ordering, package.json synchronization, ISO release dates, and article reference integrity.
  • Expanded Canonical Topic Pillars (/topics/): Expanded top-level topic architecture from 5 to 7 canonical pillars by introducing Frontend & Web (/topics/frontend-web/, 18 articles) and Software Architecture (/topics/software-architecture/, 27 articles). Decoupled the overloaded developer-tools catch-all into focused domains and established deterministic domain-first evaluation ordering (TOPIC_EVALUATION_ORDER), achieving 100% article-to-pillar resolution with zero unmapped orphans across all 290 approved articles.
  • Adsterra Native Partner Slot (src/components/AdsterraSlot.astro): Reintroduced high-performance, non-intrusive Adsterra native banner slot at Option C (strictly positioned below the article Sources footer and preceding You Might Also Like). Features zero-CLS container height reservation (min-height: 90px), RayLabs design token card framing (var(--surface-card), var(--line)), micro-eyebrow SPONSORED label, and 100% WCAG AA/AAA contrast compliance across light and dark modes.
  • Design System Section 20: Documented Sponsored Partner & Native Ad Slot Specifications in DESIGN.md across repository and Obsidian vault.

Changed

  • Global Footer & Version Provenance: Added permanent monospace version indicator (v0.17.0) and Changelog link to src/components/SiteFooter.astro, reading version dynamically from package.json.
  • Platform Syndication Cleanup: Removed deprecated CoderLegion syndication links, SVG logos, and styles across src/pages/index.astro and src/components/SiteFooter.astro.

Fixed

  • Footer Layout Decoupling: Fixed regression where legacy .site-footer flex rule in src/styles/global.css caused footer content and copyright bottom bar to render side-by-side on pages importing global styles.
  • Security & Supply Chain Remediation (Issue #36): Patched Astro AVIF RCE vulnerability (GHSA-26w7-cxv4-gfx2) by upgrading astro to 7.4.2 and @astrojs/check to 0.9.12. Updated wrangler to ^4.152.0 and enforced root overrides for fast-uri, source-map-js, and undici in pnpm-workspace.yaml, bringing pnpm audit vulnerabilities from 57 down to 0.
  • CI Node Runtime Freshness: Configured check-latest: true on actions/setup-node@v4 in .github/workflows/ci.yml and .github/workflows/sonar.yml to prevent runner reuse of vulnerable cached Node patch versions.
  • Retired Worktree Archival: Safely retired obsolete Stage-Timer worktree (feature branch was already merged into main), archived untracked package manager notes into docs/archive/stage-timer-pnpm-standardization.md.
  • Fully decode governed PNG, JPEG, and WebP assets; reject truncated containers and manifest dimensions that exceed bounded decode limits.
  • Require explicit generator models for new AI raster manifests, preserve older model-less raster records as legacy metadata, and reject AI fields on authored diagrams.

Added

  • Poneglyph Pro Tier & Interactive Showcase (#pro): Implemented the dedicated Poneglyph Pro section resolving Issue #33, featuring editorial typography, a live simulated multi-step batch queue animation, feature comparison (Community Free vs Pro Lifetime Access), $5 one-time lifetime pricing, a 3-step manual purchase flow via Buy Me a Coffee, and offline browser privacy guarantees.
  • Schema.org Rich Results & FAQ Accordion: Introduced native accessible <details>/<summary> FAQ accordion matching @graph JSON-LD schemas (SoftwareApplication with multi-tier $0 and $5 pricing, BreadcrumbList, FAQPage, and HowTo 3-step syndication workflow).

Changed

  • AI Search Optimization (llms.txt): Enriched Poneglyph entity definitions in src/pages/llms.txt.ts for autonomous agents and LLM search engines (Perplexity, ChatGPT Search, Claude).
  • Heading Hierarchy Sanitization: Streamlined all interactive mockup headings to semantic styled containers, ensuring clean single-H1 document outline without fragmented H2/H3 subheadings.

Fixed

  • Issue #33 Anchor Resolution: Resolved 404/broken navigation when visiting https://raylabs.app/poneglyph/#pro with deterministic sticky navbar offset scroll margins (scroll-margin-top: 80px).
  • Offline Privacy & Zero Telemetry Boundary: Ensured zero external license verification phone-home servers; personal Pro builds activate purely in local client-side memory.

Performance & Quality

  • Local QA passed: 111/111 unit tests; content validation passed; Astro check reported 0 errors, 0 warnings, and 86 hints; static production build generated 3,016 pages; dist verification passed with 0 sandbox leaks.

Added

  • Multi-Wave 0-Click Article Rework (120 Articles): Executed exhaustive content enhancements across all 120 zero-click articles in 3 strategic waves (Wave 1: Fast Risers with copyable Quick Solution code boxes; Wave 2: Deep Rescues with architecture decision tables and CLI cheat sheets; Wave 3: Revivals with modern 2026 search intent realignments and quick rules).
  • Design System Section 18 (Editorial Data Tables): Formally documented Editorial Data Tables & Comparison Grids in DESIGN.md enforcing crisp outer frames (1px solid var(--line)), rounded corners (var(--radius)), uppercase header styling with 2px solid var(--line) dividers, explicit vertical/horizontal cell dividers, subtle row hover states, and smooth touch-scrolling on narrow mobile viewports.

Changed

  • Editorial Table Visual Styling: Added scoped table grid rules in src/pages/articles/[slug].astro and synchronized in src/styles/global.css resolving missing outer frames and unstyled table borders across all article detail pages.
  • Search Metadata & CTR Optimization: Front-loaded exact Google Search Console query keywords into seo_title and seo_description across 120 underperforming articles while maintaining 100% slug permanence and canonical URL integrity.

Fixed

  • Table Border Visibility: Fixed regression where Markdown comparison tables rendered without grid lines due to missing .prose table styling in standalone article routes.
  • Quality SHA Synchronization: Deterministically recomputed and synced quality_content_sha256 hashes across 106 ops/quality/*.yml manifests.

Performance & Quality

  • Local QA passed: 111/111 unit tests; content validation covered 224 approved articles, 225 governed assets, and 200 quality records; Astro check reported 0 errors, 0 warnings, and 85 hints; static production build produced 3,016 pages; dist verification passed for 3,634 output files with 0 sandbox leaks.
  • Playwright visual tests verified table grid rendering in both light and dark themes with full WCAG AAA contrast compliance.

Added

  • Breadcrumb Structured Data: Wrapped article JSON-LD in Schema.org @graph binding both BlogPosting and BreadcrumbList (RayLabs > Articles > {data.title}) with absolute canonical URLs to trigger rich breadcrumbs in Google Search results.
  • Interactive Code Blocks: Added dynamic uppercase language pill badge (pre[data-language]::before) and 1-click clipboard Copy Code button (.code-copy-btn) with vector SVG icons, visual Copied! status feedback, and textarea clipboard API fallback.
  • Strict Article Ingestion Boundary: Enshrined strict publishing governance in AGENTS.md requiring all new editorial concepts and cluster ideas to start as Evergreen Source Cards in Obsidian before drafting.

Changed

  • Spotlight Search Dialog Centering: Refined src/components/SearchModal.astro with fixed positioning (top: 10vh; margin: 0 auto; left: 0; right: 0; bottom: auto;) guaranteeing universal center alignment on desktop across all routes, while retaining full-screen mobile responsiveness.
  • Design System Section 17: Added Code Blocks & Search Modal Spotlight Specifications to DESIGN.md.

Performance & Quality

  • Local QA passed: 111/111 unit tests; content validation covered 222 approved articles and 223 governed assets; Astro check reported 0 errors, 0 warnings, and 84 hints; build produced 3,014 static pages; dist verification passed for 3,628 output files with 0 sandbox leaks.

Added

  • Restored the Google AdSense Auto Ads loader on article detail pages.

Changed

  • Updated the privacy policy to disclose article advertising and Google's data processing.
  • Medium publication cards use validated original cover URLs from Medium's image CDN and display the full image without cropping.

Fixed

  • Omit Medium card images when the feed URL is missing or invalid instead of showing a local substitute.
  • Removed a prohibited RayLabs repository URL from the approved SonarCloud article's source metadata.
  • Restrict stock-hero ingestion to main and make missing or empty request queues a successful no-op.

Performance & Quality

  • Local QA passed: 111/111 tests; content validation covered 212 articles, 213 assets, and 188 quality records; quality validation covered 3 research packets/188 records; Astro check reported 0 errors, 0 warnings, and 84 hints; build produced 3,001 pages; dist verification passed for 3,593 files.
  • Lighthouse on the homepage scored 100 for audited categories on mobile and desktop. Article pages scored 100 for Accessibility, SEO, and Agentic Browsing; Best Practices scored 77 on both devices because Google AdSense triggered third-party cookie findings. This release keeps Auto Ads enabled by Ray's direction.

Added

  • Timer Modals & Drawer Extraction (TimerModals.astro): Extracted 822 lines of modal backdrops, dialogs, and audience cheer drawers into a unified, reusable component (src/components/timer/TimerModals.astro) across all timer surfaces.
  • Stage Widgets Component (StageWidgets.astro): Extracted presentation slides, mascot, and ambient video widgets into a modular component (src/components/timer/StageWidgets.astro) shared across timer hub, duration pages, and localized layouts.
  • Shared Legal Stylesheet (legal.css): Extracted 255 lines of common styling for legal compliance pages (/privacy/, /terms/, /data-deletion/) into src/styles/legal.css.
  • AdSense Template Removal: Removed page-level AdSense head/slot components, all route references, timer slots, and ad-specific CSS; no AdSense loader, account metadata, ad slot, or network hint is emitted, regardless of PUBLIC_ADS_ENABLED.
  • Cloudflare RUM Disclosure: Removed Microsoft Clarity and the route-level Cloudflare beacon. The Pages templates no longer embed analytics code; zone-level Cloudflare RUM remains enabled, while any automatic Pages injection is managed by Cloudflare.
  • Lazy-Loading YouTube Iframe: Added native lazy loading (loading="lazy") to the initially hidden stage-video iframe, preventing initial external network requests until the widget is actively opened.
  • Strict E2E Modal/Drawer Close Assertion: Hardened E2E test harness (tests/qa-e2e-usecases.mjs) to verify that the Audience Cheer Drawer closes through its explicit close control when Escape leaves it open, and treat browser console errors as test failures.
  • Improved Mobile Timer Accessible Labels: Added comprehensive aria-labelledby labels on the mobile custom timer button linking visible duration and localized action text, maintaining accurate accessible names as the duration changes.
  • Native LCOV Code Coverage & SonarCloud Reporting: Added pnpm run test:coverage generating standard coverage/lcov.info using Node.js native test runner (node --test --experimental-test-coverage). Configured sonar.javascript.lcov.reportPaths=coverage/lcov.info in sonar-project.properties and integrated automated coverage generation step into .github/workflows/sonar.yml.
  • Date Helper Unit Test Suite: Added tests/date.test.mjs verifying ISO date formatting and fallbacks across src/lib/date.ts with 100% test coverage.
  • SonarQube Static Analysis: Added sonar-project.properties with source/test scope and exclusions for editorial Markdown, JSON content, public assets, operations files, and generated output.
  • Path-Filtered Sonar Workflow: Added .github/workflows/sonar.yml; source, test, configuration, or dependency changes trigger analysis, while content-only Markdown and publication-status JSON changes do not.

Changed

  • Codebase Deduplication & Layout Streamlining: Extracted repeated HTML widgets and modal templates across src/pages/timer/index.astro, src/pages/timer/[duration].astro, src/components/timer/LocalizedTimerLayout.astro, and src/components/timer/UseCaseTimerLayout.astro.
  • Timer Architecture Modularization & Deduplication: Migrated timer hub (src/pages/timer/index.astro), duration pages (src/pages/timer/[duration].astro), and shared layouts (LocalizedTimerLayout.astro, UseCaseTimerLayout.astro) from 10k+ lines of inlined CSS/JS to modular public/styles/timer-layout.css and public/scripts/timer-engine.js, eliminating redundant inline boilerplate.
  • Code Duplication Refactor Continuation: Consolidated repeated dialog, profile, Pro activation, and sign-out logic in src/scripts/timer-engine.js.
  • Static Timer Data Registries: Moved timer use-case, locale, topic, tag, and curated timer-duration data (43 entries) to JSON while retaining their TypeScript APIs. JSON was already excluded by the existing Sonar configuration; no Sonar scope or configuration edits were made.
  • Timer Audio Envelope Deduplication: Consolidated repeated sine-envelope setup through playSineEnvelope in src/scripts/timer-engine.js.
  • Package Manager Migration to PNPM: Replaced npm with PNPM and a single pnpm-lock.yaml; updated the prebuild command and CI install step. GitHub Actions currently installs the PNPM 10 line. The manifest does not pin an exact PNPM version, and local PNPM 12.9.1 differs from CI; see docs/PNPM-STANDARDIZATION.md.
  • Design System Mirror: Added a path-sanitized, tracked DESIGN.md copy of the canonical design system and synced the approved marquee opacity guidance.

Fixed

  • Undeclared Script Dependencies: Added sharp and esbuild to devDependencies to prevent ERR_MODULE_NOT_FOUND during strict non-hoisted pnpm CI resolution in GitHub Actions.
  • Tag Label Compatibility: Restored the legacy Android Mobile display label for android-mobile after registry extraction changed it to Android & Mobile; added a regression assertion. The focused tag suite passed 8/8 on Node 24.21.
  • SonarQube Security Vulnerability Remediation (Rating A): - Replaced wildcard postMessage('*') target origin with 'https://www.youtube-nocookie.com'. - Eliminated DOM XSS taint flows by replacing innerHTML string interpolation with standard DOM element construction (document.createElement, textContent, setAttribute) for audience cheer bubbles, room indicators, YouTube/Spotify media embeddings, and announcement slides. - Eliminated final DOM XSS vulnerability (Sonar S5696) on mascot image sources via strict Base64 data URL schema validation (data:image/(png|jpeg|jpg|webp);base64,...) and encodeURI() sanitization. - Replaced all 5 instances of pseudorandom Math.random() (Sonar S2245) across pink noise audio synthesis, room code token generation, and confetti physics with cryptographically secure window.crypto.getRandomValues(). - Pinned on-demand Supabase SDK loading (Sonar S5725) to @supabase/[email protected] with SHA-384 Subresource Integrity (integrity="sha384-..." crossorigin="anonymous"). - Sanitized CLI log outputs (Sonar S5145) to prevent log injection from external HTTP responses.
  • SonarQube Reliability & Null-Safety Guarding (Rating A): - Guarded all DOM element lookups and modal handlers with optional chaining (?.addEventListener(...) and modal?.classList.remove('open')) across src/scripts/timer-engine.js to eliminate null-dereference runtime exceptions (Sonar S2259). - Wrapped all 17 unhandled and floating promises (Sonar S9383) across tasteful dialog triggers, Supabase auth sync, cheer initialization, and media handlers using explicit void and .catch(() => {}) rejections. - Provided explicit String.localeCompare compare functions (Sonar S2871) for all array and object key sorting across build pipelines and policy scripts. - Removed duplicate CSS property padding: 0; (Sonar S4656) in .modal-perks-list.
  • Dist Verification Read Retry: Reused the existing retry helper when the dist verifier reads generated article HTML.

Removed

  • Dead Code & Scratch Purge: Removed obsolete scripts/instagram-package.mjs, redundant layout src/layouts/BaseLayout.astro, and stale scratch directory work/candidates.

Performance & Quality

  • Previously Recorded SonarCloud Quality Gate: An earlier GitHub Actions analysis passed with -Dsonar.qualitygate.wait=true and Rating A across all three core categories: - Security Rating: A (0 vulnerabilities, 0 security hotspots). - Reliability Rating: A (0 bugs). - Maintainability Rating: A (technical debt < 1%). - Duplication on New Code: 2.4% in the previously recorded analysis.
  • SonarCloud Production Analysis: Main run 37549132393 passed its Quality Gate. Sonar-scanned Overall Code measured duplicated_lines_density=0.0%, duplicated_lines=0, duplicated_blocks=0, and ncloc=9019; New Code duplication was 0.0% and passed its gate. The main bug/vulnerability inventory is 0. Sonar separately reported 53 New Code code smells (19 major, 23 minor, 11 critical); a passed gate and zero measured duplication do not mean the issue inventory is empty. Five static registries moved from TypeScript to JSON, which was already excluded by the existing configuration; repeated JSON data is outside the reported Overall metric. No Sonar scope or configuration changed.
  • Local jscpd Proxies (not Sonar Overall): npx jscpd src/styles src/scripts scripts functions src/lib src/data --min-lines 10 --min-tokens 70 found 0 clones in 25 files (3 CSS, 14 JS, 8 TS). A Sonar-parity JS/TS scan of src, scripts, and functions using JS/JSX/TS/TSX formats, minimum 10 lines and 100 tokens, found 0 clones in 27 files (14 JS, 13 TS). These are local proxies, not SonarCloud Overall measurements; CSS in the broader scan is outside Sonar CPD. Previously recorded jscpd results of 10.36% and 5.43% are historical measurements with undocumented scope and do not represent SonarCloud Overall Code.
  • Previously Recorded oxlint Scan: 0 errors and 0 warnings across 87 files (96 rules); this scan predates the current candidate.
  • Registry Regression, Schema, and Parity Checks: Verified JSON data against the existing TypeScript APIs for timer use cases, locales, topics, tags, and 43 curated timer durations; schema and regression checks passed.
  • Local Release Candidate Verification (base 15b9588; Node 24.21.0 / PNPM 10.34.6): pnpm test passed 111/111; pnpm run validate passed for 210 articles, 211 assets, and 186 quality records; pnpm run validate:quality passed for 3 research packets and 186 quality records; pnpm run check reported 0 errors, 0 warnings, and 84 hints; the ad-disabled build produced 2,998 pages and pnpm run verify:dist verified 3,586 files; timer E2E passed 96/96 with zero console errors. An earlier local sweep returned HTTP 200 for 2,997 generated routes; a fresh GET smoke of 14 representative routes on the current local preview also returned HTTP 200. These checks used local preview only; Cloudflare Pages preview is disabled.
  • Local Coverage and Lighthouse: Node test-runner coverage is 82.63% line, 77.63% branch, and 80.49% function. Default-profile Lighthouse 13.5.0 on the local build without PUBLIC_ADS_ENABLED scored Accessibility, Best Practices, and SEO at 100 for all sampled route/devices. Default simulated Performance still misses 100: / 83 mobile/98 desktop; /articles/ 80/99; article detail 95/100; /topics/developer-tools/ 85/99; /tags/frontend-engineering/ 96/100; /timer/ 98/99; /timer/pomodoro/ 99/99; /id/timer/ 94/100. About, contact, and legal pages reached 100 on both devices. The prior pre-hard-disable build with production ads enabled scored Accessibility 100, Best Practices 77, SEO 100, and Agentic Browsing 100 on a separate mobile Lighthouse audit of /; results need rerunning on the final candidate. A provided throttling run scored 100 on three routes but is not equivalent to the required default profile.
  • Production Release and Live QA: Tag v0.15.5 points to deployed commit faeb8c0e70de9321176c13ab056aabc02504951c; Cloudflare Pages production deployment eea3bf1d-ce4b-4c4b-898c-a8bb9a005c05 succeeded. Rollback tag v0.15.4 points to production commit 1b5bc24df45924824afdb6d94f889a4ce5877b12. CI run 37549131875 passed. Post-deploy checks passed 24/24 live routes and 96/96 timer assertions, with zero browser/console errors and no Ads or Clarity requests. Ray's release-specific Lighthouse waiver accepts the sampled median Performance results (82 mobile, 98 desktop; other categories 100); mobile Performance remains amber, not a technical green/pass. Future releases require all four categories green/pass on mobile and desktop; exact 100 is not required.

Added

  • User Data Deletion Instructions Page (/data-deletion/): Created dedicated legal compliance page implementing Meta App Review User Data Deletion Instructions URL standard for RayLabs Morgans social automation and platform utilities, detailing step-by-step email deletion flows ([email protected]), 7-day hard purge SLAs on Cloudflare Workers KV, and post-erasure confirmation receipts.
  • Privacy Policy Expansion (/privacy/): Added Section 2-F detailing RayLabs Morgans architecture, Meta Threads API integration, minimal-retention token rotation in encrypted Cloudflare KV, and explicit zero-data-sale guarantees. Added Meta Platforms, Inc. to third-party infrastructure.
  • Site Navigation & Sitemap Integration: Added User Data Deletion link to SiteFooter.astro under Legal & Policy, indexed /data-deletion/ in sitemap.xml.ts and llms.txt.ts, and enforced canonical validation in scripts/verify-dist.mjs.

Performance & Quality

  • Automated Verification: npm test passing 106/106 unit & integration tests; npm run check with 0 errors, 0 warnings across 84 files; npm run validate passing 201 approved articles and 202 assets; npm run build compiling 2985 static pages cleanly; npm run verify:dist confirming 3556 output files with 0 sandbox leaks and strict private boundaries. Verified visual rendering and touch ergonomics across desktop and mobile.

Added

  • Approved Article Publication (server-driven-ui-jetpack-compose-play-policy): Published *"Server-Driven UI in Jetpack Compose: Dynamic Layouts Without Policy Violations"*, exploring closed polymorphic schemas in kotlinx.serialization, non-fatal unknown component fallbacks, client-side typed action whitelisting, and Google Play Device and Network Abuse policy boundaries.

Fixed

  • Taxonomy Parity & Tag Mapping: Explicitly assigned topic: devops-cloud to running-a-zero-cost-social-auto-poster-on-cloudflare-workers.md and topic: developer-tools to separate-seo-title-readability-from-ranking-rules.md, and expanded TAG_HINTS in src/lib/topics.ts (seo, publishing-pipelines, markdown, topic-cloudflare, etc.), achieving 100% category allocation across all 201 approved articles.

Performance & Quality

  • Automated Verification: npm test passing 106/106 unit & integration tests; npm run check with 0 errors, 0 warnings across 83 files; npm run validate passing 201 approved articles and 202 assets; npm run build compiling 2984 static pages cleanly; npm run verify:dist confirming output files with 0 sandbox leaks and strict private boundaries. Protected surfaces (poneglyph.astro, obsidian-sync.astro, timer/**) 100% untouched.

Fixed

  • Google AdSense & Search Crawler Accessibility: Declared explicit User-agent: Mediapartners-Google with Allow: / directive in public/robots.txt to eliminate ambiguity for Google AdSense crawler verification.
  • Edge Routing & Crawler Firewall Bypass: Configured Cloudflare custom WAF skip rule (Bypass security checks for search and ad crawlers) and adjusted zone security settings (Browser Integrity Check set to off, Security Level set to low, Always Use HTTPS enabled) ensuring uninterrupted access to /robots.txt, /ads.txt, and XML sitemaps for search and monetization crawlers.

Performance & Quality

  • Automated Verification: npm test passing 106/106 unit & integration tests; npm run check with 0 errors, 0 warnings across 83 files; npm run validate passing 195 approved articles and 196 assets; npm run build compiling 2976 static pages cleanly; npm run verify:dist confirming 3534 output files with 0 sandbox leaks and strict private boundaries. Protected surfaces (poneglyph.astro, obsidian-sync.astro, timer/**) 100% untouched.

Fixed

  • Orphaned Article Topic Categorization: Reconciled 30 orphaned articles lacking explicit topic: frontmatter across Developer Tools (+20), DevOps & Cloud (+8), and Knowledge Systems (+2), achieving 100% mathematical parity between total articles (194) and topic pillar distributions.
  • Taxonomy Heuristic Expansion (src/lib/topics.ts): Expanded the TAG_HINTS fallback dictionary to cover common engineering tags (web-performance, css-architecture, ci-cd, cloudflare-workers, browser-extensions, mysql, windows-11, troubleshooting, networking, home-server, etc.) as a permanent safety net against unmapped tags.

Performance & Quality

  • Automated Verification: npm test passing 106/106 unit & integration tests; npm run check with 0 errors, 0 warnings across 83 files; npm run validate passing 195 approved articles and 196 assets; npm run build compiling 2976 static pages cleanly; npm run verify:dist confirming 3534 output files with 0 sandbox leaks and strict private boundaries. Protected surfaces (poneglyph.astro, obsidian-sync.astro, timer/**) 100% untouched.

Added

  • Syndicated Platforms Logo Marquee (#medium section): Implemented an infinite horizontal ambient logo marquee featuring 5 syndicated developer ecosystems: GitHub, DEV Community, Coder Legion, Medium, and Obsidian.
  • Interactive Brand Hover Illuminations: Configured seamless CSS ticker marquee with edge gradient masking (mask-image), pause-on-hover interaction, and brand-authentic color activations on hover (Obsidian Purple #7c3aed, Coder Legion #ff5722, Medium Cyan var(--accent), full contrast GitHub/DEV).
  • Personal Profile Routing: Updated links to point directly to Ray's personal profiles across syndicated platforms, including Coder Legion (https://coderlegion.com/user/raylabs), Obsidian Community (https://community.obsidian.md/users/raylabs), GitHub (https://github.com/ufebri), and DEV (https://dev.to/raylabs).
  • Footer Threads Integration (src/components/SiteFooter.astro): Integrated an official Threads vector badge card prompting visitors to follow RayLabs on Threads (https://www.threads.net/@raylabs.app), and synchronized all 5 syndicated platforms under the Connect & Social navigation list.

Changed

  • Hero Cleanliness: Maintained clean, focused layout of the home page hero by locating the syndicated platform marquee below the Medium publication section.

Fixed

  • GitHub Projects API & Fallback Synchronization: Purged deleted repositories (Daydream, Android-Base-Prime) from the home page fallback list, populated with live public repos (Mathverse, JetMovie, Harmonia, Story-App, ur-persona, filmophilia, WeeabooHub, Gitray), increased API timeout to 3500ms, and added safe token access fallback.

Performance & Quality

  • Automated Verification: npm test passing 106/106 unit & integration tests; npm run check with 0 errors, 0 warnings across 83 files; npm run validate passing 195 approved articles and 196 assets; npm run build compiling 2976 static pages cleanly; npm run verify:dist confirming 3534 output files with 0 sandbox leaks and strict private boundaries. Protected surfaces (poneglyph.astro, obsidian-sync.astro, timer/**) 100% untouched.

Added

  • Tag Entity Hubs System (/tags/)**: Implemented a comprehensive technical taxonomy hub system generating static, indexable landing pages for 50 qualified engineering tags with $\ge 3$ approved articles (e.g. /tags/kotlin/, /tags/jetpack-compose/, /tags/ci-cd/, /tags/web-performance/, /tags/room/, /tags/browser-extensions/).
  • Interactive Tags Directory (src/pages/tags/index.astro): Built a central directory at /tags/ featuring accessible client-side instant search, dynamic topic pillar filter tabs (All, AI Agents, Android & Mobile, Developer Tools, DevOps & Cloud, Knowledge Systems), aria-live="polite" card counter, and Schema.org CollectionPage structured data.
  • Dedicated Tag Landing Pages (src/pages/tags/[tag].astro): Built programmatic landing pages with breadcrumbs, entity descriptions, primary pillar link, sibling related tags chips with guide counts, and responsive articles grid with lazy-loaded hero rasters.
  • Tag Taxonomy Library (src/lib/tags.ts): Built core taxonomy engine featuring TagDefinition interfaces, brand/acronym casing (formatTagLabel for CI/CD, CameraX, Jetpack Compose, macOS, etc.), curated TAG_DEFINITIONS metadata dictionary (50 entries), and getTagUrl routing.
  • Internal Linking Mesh: Connected article slug headers (src/pages/articles/[slug].astro) and catalog card tag pills (src/pages/articles/index.astro, src/pages/topics/[topic].astro) directly to respective Tag Hubs or Topic Pillars.
  • Sitemap XML Integration: Registered /tags/ and all 50 qualified /tags/[tag]/ URLs in src/pages/sitemap.xml.ts.
  • Unit Test Suite (tests/tags.test.mjs): Added 8 comprehensive unit tests asserting density thresholds, brand casing, cannibalization prevention, and metadata completeness (106/106 tests passing total).

Changed

  • Pillar Topic Canonical Priority: Enforced canonical priority for topic pillars (ai-agents, android-mobile, developer-tools, devops-cloud, knowledge-systems) routing directly to /topics/[topic]/ to prevent keyword cannibalization.
  • Soft 404 & Thin Content Prevention: Enforced strict density threshold gate ($\ge 3$ articles approved) so singletons and thin tags route to catalog search queries (/articles/?q=[tag]) instead of generating low-value doorway pages.
  • Design System Documentation: Added Section 15 ("Tag Entity Hubs Design System") to DESIGN.md in repository and Obsidian vault.

Performance & Quality

  • Automated Verification: npm test passing 106/106 unit & integration tests (100% green); npm run check with 0 errors, 0 warnings across 83 files; npm run validate passing 195 approved articles and 196 assets; npm run build compiling 2976 static pages cleanly; npm run verify:dist confirming 3534 output files with 0 sandbox leaks and strict private boundaries. Protected surfaces (poneglyph.astro, obsidian-sync.astro, timer/**) 100% untouched.

Added

  • Retro Arcade Design System Standardization: Formally adopted Color Hunt's Retro #3 Arcade palette (#303841, #00adb5, #eeeeee, #ff5722) across the public site. Light mode calibrated with deep arcade teal (--accent: #007e85, WCAG AA/AAA > 4.5:1 contrast) and dark mode with electric cyan (--accent: #00adb5) and matte arcade chassis (--surface: #0e1114).
  • Medium-Style Desktop Table of Contents (TOC) Tokenization: Refactored desktop TOC rail, active reading indicators, and article tag pills in articles/[slug].astro to consume dynamic semantic design tokens (var(--accent), var(--text), var(--line)).

Changed

  • Zero-FOUC Theme Initialization: Synchronized inline background-color styles and client-side theme runtime in src/components/ThemeScript.astro to #0e1114 (dark) and #fbfcfc (light), eliminating dark-mode flash of unstyled content.
  • Header & Footer Arcade Tokens: Synchronized site header and footer border, typography, logo accent dot, and dynamic <meta name="theme-color"> to Arcade tokens.
  • Universal Page Alignment: Realigned index.astro, articles/index.astro, topics/[topic].astro, about.astro, contact.astro (.status-dot), privacy.astro, terms.astro, and 404.astro to the Arcade standard.
  • Living Design Documentation: Synchronized DESIGN.md in repository root and canonical Obsidian vault (/Users/ray/Documents/Raylabs Core/RayLabs App/DESIGN.md) to version 2.0 with the complete Retro Arcade token matrix.

Fixed

  • Prototype Residue Elimination: Removed prototype palette picker DOM container (#palette-picker), CSS styles, and localStorage handlers from src/pages/index.astro.
  • Search Modal Highlight Contrast: Updated search modal hit text highlights and borders in src/components/SearchModal.astro to Arcade cyan/teal tokens.

Performance & Quality

  • Automated Verification: npm test passing 98/98 unit & integration tests; npm run check with 0 errors across 56 files; npm run validate validating 168 articles, 169 assets, 144 quality items; npm run build compiling static pages in ~6s; npm run verify:dist confirming 0 sandbox leaks and strict private boundaries. Protected surfaces (poneglyph.astro, obsidian-sync.astro, timer/**) 100% untouched.

Added

  • High-Intent Activity Use-Case Landing Pages (TMR-06): Added 6 dedicated, fully-customized activity pages (/timer/pomodoro/, /timer/presentation/, /timer/exam/, /timer/tabata/, /timer/meditation/, /timer/classroom/) with purpose-tailored preset durations, contextual UI modes, custom metadata, and rich Schema.org WebApplication structured data.
  • Dedicated Activity Engine Modes: Integrated customized behavior for each use-case, including Presentation Overtime counter (+MM:SS) with confidence monitor warning chime; Exam Proctor silent mode enforcing 01:00:00 HH:MM:SS format and suppressing alarming sound cues; Tabata/HIIT 20s WORK (emerald) / 10s REST (crimson) alternating intervals with 3-2-1 audio beeps; Mindful Meditation breathing halo ring with resonant Tibetan singing bowl chime; Classroom visual progress bar with completion celebration confetti shower; and Pomodoro multi-cycle tracking with dedicated break modes.
  • Edge Middleware Routing & Aliases: Configured Cloudflare Pages _middleware.js with permanent 301 redirects for aliases (e.g. /pomodoro -> /timer/pomodoro/, /tabata -> /timer/tabata/, /meditation -> /timer/meditation/, /presentation -> /timer/presentation/, /exam -> /timer/exam/, /classroom -> /timer/classroom/).
  • Automated E2E QA Verification Script (tests/qa-e2e-usecases.mjs): 96 headless browser interaction assertions verifying UI, presets, modals, and hotkeys across all 6 use cases with 0 console errors.

Changed

  • Comprehensive UI/UX De-slopping: Replaced all raw OS emojis (+⏱️, 🟡, 🟢) with clean inline stroke vector SVGs and CSS micro-indicators; replaced template middle-dots (&bull;, &nbsp;•&nbsp;) with semantic typography and subtle dividers; replaced generic repeating clock SVGs on feature cards with contextual stroke vector icons per feature type; eliminated harsh neon box-shadows in favor of crisp 1.5px borders and natural depth shadows.
  • Semantic Perks List: Refactored modal Pro perk divs into semantic <ul class="modal-perks-list"> styled with emerald checkmarks.

Fixed

  • Presentation Overtime Execution: Removed negative second clamping in tickTimer() specifically for presentation use-case, enabling live negative overtime counting (+00:01) and continuous visual warning state without auto-pausing.
  • Exam Silent Proctor Audio Override: Prevented startling audio sirens from triggering in playTimerEndAlarm on exam pages, replacing them with a quiet visual banner notification adhering to real test room proctor rules.
  • Below-the-Fold Styling: Added missing CSS rules for .timer-breadcrumbs, .shortcuts-card, .shortcuts-grid, and .shortcut-item to ensure visual parity with DESIGN.md.

Performance & Quality

  • Automated Verification: npm test passing 92/92 tests; npm run check 0 errors, 0 warnings; npm run validate passing 166 articles, 168 assets, 144 quality artifacts; npm run build && npm run verify:dist cleanly compiling 730 pages with 1050 output files verified; Agent QA E2E test passing 96/96 assertions; desktop Lighthouse scores at 100/100 for Accessibility, Best Practices, and SEO.

Added

  • Programmatic SEO Dynamic Duration Routes (TMR-05): Added static page generation for all 180 integer minutes (/timer/1-minute/ to /timer/180-minutes/, plus 1-hour, 2-hours, 3-hours), with dynamic Schema.org WebApplication structured data (timeRequired in ISO-8601, e.g. PT15M), unique SEO titles, descriptions, and bidirectional cluster link matrix.
  • Smart Shorthand & Arbitrary URL State Routing: Enabled seamless numeric shortcuts (/timer/37, /timer/37m, /timer/1h) that render the clock immediately with noindex, follow and normalize the browser address bar via window.history.replaceState; added root timer query param (?m=77) and numeric hash (#37) listeners.
  • Edge Middleware Redirects: Configured Cloudflare Pages _middleware.js to 301-redirect numeric shortcuts to canonical duration slugs, and 302-redirect arbitrary large durations (>180m) to dynamic query state (/timer/?m={n}).

Changed

  • Astro Trailing Slash Handling: Set trailingSlash: 'ignore' in astro.config.mjs to ensure uniform route resolution both with and without trailing slashes in development and production.

Fixed

  • Stage Hero Viewport Isolation: Encapsulated the 100vh stage canvas, header, and floating dock inside .stage-hero-viewport and moved the rich SEO text section below the fold, completely eliminating flexbox squishing where .stage-canvas previously collapsed to 0px.
  • Hour-Boundary Format Stability: Preserved HH:MM:SS display format when crossing the 1-hour boundary to eliminate horizontal layout jitter.
  • 404 Recovery Regex: Enhanced src/pages/404.astro inline recovery regex to support hyphens (-minutes, -hours) so large arbitrary durations (>180m, e.g. /timer/500-minutes) auto-load the timer with 0ms interruption.

Performance & Quality

  • Automated Verification: npm test passing 86/86 unit tests (100% green); npm run check with 0 errors across 56 files; npm run validate validating 164 articles; npm run build cleanly compiling 722 pages in 7.37s; and npm run verify:dist confirming 1039 output files with zero private boundary leaks.
  • Lighthouse Scores (Production Preview): Performance 99, Accessibility 100, Best Practices 96 (100 in HTTPS prod), SEO 100.

Added

  • Timer Stage Engine Phase 1 (TMR-01 to TMR-04): Upgraded /timer/ with a high-precision monotonic timing loop using performance.now() delta timing and visibilitychange auto-recalibration; added dedicated Web Worker (public/timer-worker.js) to eliminate Chrome background tab timer throttling; implemented offline PWA support with Web App Manifest (public/timer-manifest.json) and Service Worker (public/timer-sw.js); added synthesized Solfeggio 528Hz + 264Hz harmonic bell chime using Web Audio API on session completion; and introduced ergonomic keyboard shortcuts (Space toggle, R reset, F fullscreen, +/-/arrow keys duration adjustments, Escape modal dismissal).
  • Timer SEO & Schema.org Integration (TMR-02): Injected comprehensive WebApplication JSON-LD structured data into the timer head with offline feature declaration, hardware shortcuts, and free application rating metadata.
  • Poneglyph Product Landing: Promoted the reviewed Chrome extension experience to the canonical /poneglyph/ route with real Poneglyph icon assets, an authentic five-state injection demo, and the real RayLabs Paging 2 to Paging 3 article fixture.
  • Product Discovery Surfaces: Added Poneglyph to the homepage software showcase, site footer, XML sitemap, llms.txt, and deterministic distribution verification.

Changed

  • Extension-Aligned Demo Data: Replaced the fictional article and topics in the visual simulation with the approved article title, canonical slug, hero asset, and extracted topics android, kotlin, paging, and migration.
  • Release Boundary: Medium remains an optional runtime destination shown in the product demo, not a RayLabs site publishing dependency. The Chrome Web Store listing remains a separate manual gate.
  • Poneglyph Privacy Disclosure: Documented active-page extraction, direct Medium draft transfer, local preferences, explicit topic-copy behavior, and the no-backend/no-telemetry boundary on the privacy page; aligned the product page copy with those guarantees.

Fixed

  • Private Repository Link Guard: Removed private RayLabs repository URLs from public content and made both the article validator and dist verification reject the known private repository URLs while preserving public repository links.

Performance & Quality

  • Local Verification: npm test (81/81), npm run validate (160 articles, 162 assets), npm run check (0 errors), npm run build (175 pages), npm run verify:dist (490 output files), and the Timer SEO schema test suite pass; static-preview Lighthouse is 100/100 across mobile and desktop.

Added

  • Triple Ambient Marquee Motion System: Transformed all three content discovery sections on the homepage—Recent Technical Articles (#articles), Recent GitHub Projects (#projects), and Medium Publications (#medium)—into seamless horizontal ambient marquees. Applied reverse scroll direction (marquee-scroll-right) to GitHub projects for visual cadence. Built entirely with GPU compositor translate3d (0ms TBT on desktop, 0% CPU main-thread blocking), responsive linear gradient edge masks, and full WCAG prefers-reduced-motion compliance.
  • First-Party Local Asset Pipeline for Syndicated Medium Covers: Optimized and locally cached 8 syndicated article cover images into public/assets/medium/ (reduced byte weight by >90% to ~40KB–120KB per cover). Completely eliminated third-party tracking cookies (_cfuvid) from external CDNs, securing 100/100 on Lighthouse Best Practices.

Fixed

  • Editorial Header Simplification ("Hover to pause" badge removed): Removed all redundant .marquee-status / .pulse-dot text pills from section headers as requested, preserving clean, uncluttered editorial typography while keeping the natural GPU hover/focus pause behavior active in CSS.
  • Lighthouse Robots.txt Directive Standard Compliance: Formatted non-standard agentic metadata lines in public/robots.txt as comments, ensuring 100% compliance with standard crawler directives and raising Lighthouse SEO score from 92 to 100/100.
  • LCP Eager Loading & Resource Discovery: Switched the first visible article hero thumbnail from loading="lazy" to loading="eager" with fetchpriority="high", preloaded the active card image in <head>, and gated adsbygoogle.js behind PUBLIC_ADS_ENABLED === 'true'. Dropped mobile LCP from 9.7s to 2.1s–2.3s.

Performance & Quality

  • Lighthouse 100/100 Green Audit: - Desktop: Performance: 99 | Accessibility: 100 | Best Practices: 100 | SEO: 100 (TBT: 0ms, CLS: 0.000, FCP: 0.4s, LCP: 1.0s). - Mobile: Performance: 91–98 | Accessibility: 100 | Best Practices: 100 | SEO: 100 (CLS: 0.000, FCP: 1.5s, LCP: 2.3s, Speed Index: 1.5s).
  • Verification Gates: 77/77 unit tests passing (100% PASS), 0 check errors across 51 files, 106 approved articles and 108 assets validated, and 120 static pages built cleanly in 3.19s with 354 verified distribution files and 0 sandbox leaks.

Fixed

  • Frame 0 Zero-Flash Inline Background Styling: Injected an inline <style is:inline> block inside <ThemeScript /> to enforce root and body background colors (#111311 for dark, #fbfbfa for light) synchronously from the very first byte of HTML parsing. Eliminated the 60-80ms transparent canvas window where the browser painted a white window background while waiting for external CSS bundles over the network.
  • Removed Conflicting Fallback Theme Color Meta: Removed hardcoded <meta name="theme-color" content="#fafafa"> tags across all 10 page templates, allowing browsers to strictly adhere to responsive media="(prefers-color-scheme)" rules and prevent mobile browser status bar flashing.
  • Button Transition Isolation in Header: Scoped transition: background-color, color, border-color on .theme-btn, .search-trigger-btn, and .nav-link exclusively to :hover and :global(html.theme-transition). Prevents header buttons from animating colors from white to dark during initial page load and navigation.
  • Zero-Height Initial State for AdSlot: Configured .ad-slot to default to margin: 0 auto; min-height: 0;, applying margin: 2.5rem auto; only when Google AdSense successfully sets data-ad-status="filled". Completely eliminates layout shift (CLS = 0) and footer jumping when unfilled ads are collapsed.

Performance & Quality

  • Playwright Navigation Benchmark: Verified via automated multi-frame navigation testing that html and body backgrounds remain solid dark (rgb(17, 19, 17)) across 100% of sampled navigation frames (0 transparent frames, zero flash).

Fixed

  • Bottom White Margin & AdSense Unfilled Floating Artifact Elimination: Eliminated visual glitch where an unfilled Google AdSense slot (data-ad-status="unfilled") was rendered as a 280×600px floating white rectangle over the footer due to desktop position: sticky; top: 1.5rem; width: 280px;. Converted .ad-slot into a centered, responsive block (max-width: var(--content, 72rem); margin: 2.5rem auto;) with transparent background, and added CSS :has(ins[data-ad-status="unfilled"]) / ins.adsbygoogle[data-ad-status="unfilled"] collapse rules and MutationObserver auto-hiding.
  • Mobile Browser Chrome Bottom Bar Color Synchronization: Replaced single hardcoded light <meta name="theme-color" content="#fafafa"> with dual responsive <meta name="theme-color" media="(prefers-color-scheme: light)" content="#fafafa"> and <meta name="theme-color" media="(prefers-color-scheme: dark)" content="#111311"> across all 10 page templates, preventing mobile iOS Safari and Android Chrome navigation bars and home indicator areas from rendering a white band under dark mode.
  • Dynamic Theme Sync for Browser UI: Updated SiteHeader.astro and ThemeScript.astro to dynamically synchronize all theme-color meta tags upon interactive toggle.

Performance & Quality

  • Playwright Visual Bottom Verification: Verified via automated browser inspection on live and local builds across desktop and mobile that the bottom margin and footer render seamless dark backgrounds with zero white blocks.
  • Verification Gates: 77/77 unit tests passing (100% PASS), 0 check errors across 49 files, 106 approved articles and 108 assets validated, and 120 static pages built cleanly in 2.38s with 346 verified distribution files.

Added

  • High-Resolution Raster OpenGraph Image System (public/assets/og-default.png): Designed and generated a 1200×630 pixel raster PNG OpenGraph master card with dark engineering aesthetics, glowing emerald branding, and topic taxonomy chips. Upgraded all primary pages and articles to full summary_large_image Twitter cards with explicit width/height/type dimensions, completely eliminating blank previews on WhatsApp, Twitter/X, LinkedIn, Discord, and Telegram by substituting raster fallbacks for vector .svg heroes.
  • Microsoft Clarity Behavioral Analytics Integration: Implemented high-performance, non-blocking Microsoft Clarity tracking across all pages (src/components/ClarityAnalytics.astro) with dns-prefetch and data-cfasync="false" for real-time UX heatmaps, session insights, and Bing Webmaster Tools synchronization.
  • Dev.to Automated Syndication CLI (scripts/publish-devto.mjs): Built an automated article publishing and updating CLI tool (npm run publish:devto) that formats Markdown, canonicalizes relative URLs to https://raylabs.app/, manages platform tag limits, synchronizes with existing drafts, and ensures accurate canonical backlink attribution.

Fixed

  • Elimination of Theme Flash / FOUC ("Kelap-Kelip"): Resolved visual theme flickering on page load across all routes (/, /articles/, /articles/[slug], /topics/[topic], /about/, /contact/, /privacy/, /terms/, 404). Implemented <ThemeScript /> synchronously at the top of <head> to evaluate prefers-color-scheme and localStorage before stylesheet parsing. Replaced perpetual initial page-load transitions on body and .site-header with an isolated, temporary :global(html.theme-transition) class triggered exclusively during interactive sun/moon button clicks.
  • Decommissioned Google Reader Revenue Manager: Completely removed swg-basic.js subscription prompt and overlay dimming artifacts across all pages to ensure uninterrupted reading experience and zero layout interference.
  • Asset Manifest Schema Compliance: Resolved visual_mode and prompt_sha256 validation properties in ops/assets/ast_47be6bc6a6f06c2ad91c9bdb.yml for compatibility with scripts/media-policy.mjs.

Performance & Quality

  • Zero-Flicker Automated Verification: Verified with Playwright tests that initial paint matches user system or saved dark mode theme with zero color shifts, while user toggle retains a smooth 200ms transition.
  • Dev.to Syndication Test Suite (tests/publish-devto.test.mjs): Added automated unit tests verifying payload formatting, canonical URL enforcement, tag sanitization, and malformed markdown protection.
  • Verification Gates: 77/77 unit tests passing (100% PASS), 0 check errors across 49 files, and 114 static pages built cleanly in 3.06s with 329 verified production files.

Added

  • Site-Wide OpenGraph & Twitter Card Metadata: Installed complete social preview cards (og:type, og:site_name, og:title, og:description, og:url, og:image, og:image:alt) and Twitter cards (summary_large_image) across all primary static pages: homepage (index.astro), articles catalog (articles/index.astro), about the lab (about.astro), contact page (contact.astro), privacy policy (privacy.astro), and terms of service (terms.astro).
  • Comprehensive Schema.org Structured Data: Enriched homepage with WebSite (featuring SearchAction deep-linking to instant search) and Organization structured data graphs, and enriched the articles catalog with a structured CollectionPage and ItemList.

Performance & Quality

  • Topics & Taxonomy Unit Test Suite (tests/topics.test.mjs): Added 8 automated unit tests for topic and tag mapping, taxonomy normalization, hashtag removal, and metadata integrity.
  • Content Policy Edge Case Testing (tests/content-policy.test.mjs): Expanded assertion coverage for em-dash prevention, second-H1 heading restrictions, code block generics preservation, and contextual internal link rules.
  • Full Verification Suite: 66/66 unit tests passing (100% PASS), 0 Astro check errors across 44 files, and 90 static pages built cleanly in 2.3s with zero leaked sandbox files.

Fixed

  • Timer Subdomain Clean Canonical Routing (functions/_middleware.js & SiteHeader.astro): Implemented native Cloudflare Pages edge middleware and client-side fallback to automatically route timer.raylabs.app/ root to /timer/ (302) and permanently bounce all general site content (/articles/*, /topics/*, /about/, /contact/) to the canonical main domain https://raylabs.app (301), preventing crawler dilution and crawl-budget fragmentation.

Performance & Quality

  • Edge Middleware Test Suite (tests/middleware.test.mjs): Added 8 automated unit tests covering subdomain root redirects, query preservation, general content bouncing, and pass-through allowance for the timer app and static assets (57/57 tests passing).

Added

  • Global Instant Article & Topic Search Palette (SearchModal.astro): Introduced an accessible, command-palette style modal (<dialog id="search-dialog">) with keyboard shortcut support (⌘K, Ctrl+K, /, ↑, ↓, ↵, esc).
  • Dynamic Topic Facet Filtering: Implemented real-time dynamic topic facets (extractResultFacets) that automatically categorize and count search results on the fly without page reloads.
  • Pre-warmed Search Index Endpoint (/search-index.json): Added a static search index generated at build time containing all approved articles with title, summary, topic, tags, and reading duration.
  • Comprehensive Search Unit Test Suite (tests/search.test.mjs): Added 10 automated test suites covering query tokenization, multi-field weighted scoring, facet extraction, regex injection resilience, XSS sanitization, and edge case recovery (49/49 passing tests).
  • Universal Header Integration: Added the search trigger button with platform-aware shortcut badge (⌘K on macOS, Ctrl K on other platforms) directly in SiteHeader.astro, making instant search available on every page.

Changed

  • De-jargonized UI Copy & Human-Centric Microcopy: Eliminated technical engineering jargon from search microcopy (simplified to natural phrasing: "Search articles, guides, or topics...", "Browse by Topic", "Recent articles", and friendly empty state recommendations).
  • Refined Search Input Styling: Removed default browser outlines and blue focus rings in favor of a clean, subtle editorial surface integrated with light and dark theme tokens.

Fixed

  • Mobile Momentum Scrolling & Layout Clipping: Applied -webkit-overflow-scrolling: touch, overscroll-behavior-y: contain, and full viewport constraints on mobile dialogs to allow smooth touch scrolling without page background movement.
  • Static Distribution Link Uniqueness: Rendered recent article suggestions in the search palette via client-side DOM population to maintain strictly unique article index entries in static distribution builds.

Performance & Quality

  • Zero Sandbox Build Leak: Cleaned sandbox scratch directory and verified strict static distribution output with scripts/verify-dist.mjs (241 output files verified).
  • Full Verification Suite: 49/49 unit tests passing in ~520ms, 0 Astro check errors across 42 files, content and asset policies validated for 71 articles.

Added

  • Canonical About the Lab & Editorial Standards Page (/about/): Published authoritative institutional about page establishing RayLabs as an independent software research laboratory and technical journal.
  • Dynamic Software Artifacts Exhibition: Designed frontmatter-driven, extensible data models (softwareProjects, researchPillars, verificationGates) with custom tactile squircle vector icons for instant tooling expansion.
  • E-E-A-T & Google AdSense Trust Signals: Documented 3-tier deterministic code verification standards, research disciplines, Schema.org AboutPage with Organization and founder: Person structured data.
  • Maintainer Accountability Lockup: Integrated personal LinkedIn profile (https://www.linkedin.com/in/ufebri) and personal email ([email protected]) for Ray (Uray Febri Isviladinata) as Lead Systems Architect.
  • Ecosystem Integration: Connected /about/ across SiteFooter.astro, sitemap.xml.ts (canonical XML sitemap), and llms.txt.ts (LLM/agent discovery).

Changed

  • Footer Social Directory: Added direct LinkedIn Profile link in SiteFooter.astro alongside GitHub, Medium, and Obsidian community links.

Performance & Quality

  • Zero Sandbox Build Leak: Cleaned sandbox scratch directory and verified production static distribution output via scripts/verify-dist.mjs.
  • Full Verification Suite: 39/39 unit tests passing, 0 Astro check errors/warnings across 38 files, and 100/100 Lighthouse green score target preserved.

Added

  • Permanent Frontend & Taste Pairing Policy: Mandated in AGENTS.md that all future UI developments, component work, or redesigns must pair frontend-design and design-taste-frontend with Ponytail full to permanently eradicate AI slop patterns.
  • Editorial Software Exhibition on Homepage: Replaced generic SaaS bento cards with a tactile, editorial software showcase featuring dedicated tactile app icons (Obsidian crystal glyph for Ray Vault Sync, tabular digital presentation clock glyph for RayLabs Stage Timer), clear architecture badges, and focused direct action buttons.
  • Dedicated Obsidian Sync Product Footer: Introduced a balanced, 3-column product footer (82rem max-width) with clean SVG action badges (Star on GitHub, Support Project), semantic product links, and zero raw emojis or unstyled browser bullets.

Changed

  • Site-Wide Anti-Slop Elevation: Systematically audited and eliminated AI slop tells across the entire site (Home, Articles catalog, Reading view, Topic pillar, and Obsidian Sync): removed all raw OS emojis (📦, ✅, ⚠️, ❌, 🌙), trailing arrows (→, &rarr;), middle-dot meta strings, rainbow badges, and all-caps labels.
  • Ultra-Minimalist Navigation Header: Refactored SiteHeader.astro to position the brand logo cleanly on the far left with fluid responsive padding (clamp(1.25rem, 3.5vw, 3rem)), stripped redundant header center links on general pages, and retained a quiet, accessible Dark Mode SVG toggle on the far right.
  • Color Palette Calibration: Eradicated radioactive neon green (#34d399 / #10b981) across all UI elements, calibrating to a refined, mature Editorial Forest (#1f513b light) and Desaturated Sage (#52a677 dark) palette.
  • Restored Product Header on Obsidian Sync: Re-established dedicated in-page navigation (Why Ray Vault?, Notes Safety, Connection Check, Install), purple Obsidian badge, clean SVG theme toggle, and replaced harsh white border with --border-subtle: #21212e.

Fixed

  • Obsidian Sync Footer CSS Selectors: Corrected class mismatches (.footer-soft-actions, .footer-col-links) and reset list styling to ensure clean vertical alignment without unstyled bullet points.
  • Header Alignment Discrepancies: Unified header edge positioning across general pages while respecting page-specific width containers.

Performance & Quality

  • Zero Sandbox Build Leak: Enforced strict sandbox isolation and verified clean static distribution output via scripts/verify-dist.mjs.
  • Full Verification Suite: 39/39 unit tests passing, 0 Astro check errors/warnings across 37 files, 100/100 Lighthouse green score target preserved.

Added

  • Anti-Slop Vector Glyph System: Integrated cohesive stroke-based vector SVGs (1.75px stroke, 18×18/20×20 viewbox) across all 11 stage toolbar dock buttons, replacing OS-dependent emoji glyphs.
  • Semantic Hotkey Keycaps: Implemented discrete <kbd> badges for stage shortcut hints (Space, M, F, E, C) with subtle dark-glass backdrop styling.
  • Custom Amber Mascot Favicon: Replaced emoji favicon with a crisp vector cat silhouette data URI.

Changed

  • Anti-Slop Typographic Elevation: Refactored modal headers, toast notifications, status badges, and sponsor banner from all-caps hype copy to sentence-case typography (Free / Pro status, Sponsored, Ad-free with Pro).
  • Stage Keynote Default Slide: Upgraded default break text to professional keynote phrasing with explicit resume time and venue instructions.
  • Clean Modal & Toast Surfaces: Standardized SVG headers across Pro, Custom Timer, Audience Cheer, Legal & Credits, and Confirmation dialogs, while isolating authentic user reaction emojis exclusively to attendee cheer interactions.

Fixed

  • Dock Custom Duration Modal Binding: Bound #chip-custom-duration dock button directly to the custom duration modal opener to ensure seamless interaction.
  • YouTube Playback Stop & Audio Cleanup: Cleaned up player dismiss state and verified zero background audio leaks.

Performance & Quality

  • Zero Sandbox Build Leak: Enforced strict sandbox isolation and verified clean static distribution output via scripts/verify-dist.mjs.
  • Full Verification Suite: 39/39 unit tests pass, 0 Astro check errors/warnings, and 100/100 Lighthouse green score target preserved.

Added

  • RayLabs Stage Timer (/timer/ & timer.raylabs.app): Released interactive keynote stage companion & intermission timer web application featuring a monumental tabular countdown clock, Pomodoro & custom break presets, cinematic Cat Gatekeeper mascot animations (neko1.webm, neko2.webm), browser-synthesized soundscapes, and YouTube ambient music player.
  • Subdomain Routing Architecture: Added instant client-side edge routing in src/pages/index.astro to seamlessly route incoming traffic on timer.raylabs.app directly to the Stage Timer application.
  • Dynamic Proportional Stage & Fullscreen Mode: Proportional percentage-based widget coordinates preserving presenter layouts across resolution changes and native fullscreen mode.
  • Ecosystem Integration: Connected Stage Timer to sitemap.xml, llms.txt, and SiteFooter.astro navigation.

Changed

  • Deep Velvet Glass Design Language: Unified all widgets, toolbars, and modal surfaces with RayLabs Obsidian Glass tokens (rgba(13, 16, 23, 0.95), border: 1px solid rgba(255, 255, 255, 0.12)).
  • Attribution & Fair-Use Presentation Notice: Replaced personal handle credits with RayLabs Team and transparent external attribution links to original video sources and GIF platforms under non-commercial fair-use presentation guidelines.

Fixed

  • YouTube Playback Stop-on-Hide: Eliminated background audio leaks by terminating iframe playback immediately upon widget close or reset.
  • WebKit Video Hardware Clipping: Resolved jagged iframe corners via hardware radial-gradient mask layers.

Performance & Quality

  • Zero Sandbox Build Leak: Enforced strict sandbox isolation and verified production distribution cleanliness via scripts/verify-dist.mjs.
  • Full Verification Suite: 39/39 tests passed, 0 Astro check errors/warnings, 58 articles validated, and all static output verified.

Added

  • Topic Pillar Architecture (/topics/[topic]/): Transformed topic catalogs from basic link listings into authoritative Pillar Pages with targeted 140–160 char SERP descriptions, 60–100 word architectural overviews, and semantic entity focus chips (keyFocus).
  • Interactive Sibling Topic Navigation: Added switcher pills (All Articles, AI Agents, Android & Mobile, Developer Tools, DevOps & Cloud, Knowledge Systems) with active-state styling and touch targets >= 44px.
  • Canonical Privacy Policy (/privacy/): Published comprehensive privacy architecture adhering to GDPR, CCPA, and UU PDP No. 27/2022 standards (zero tracking cookies, privacy-first Cloudflare Web Analytics).
  • Terms of Service & Disclaimer (/terms/): Published formal terms of service with technical code AS-IS disclaimer and MIT open-source licensing guidelines.
  • Canonical Contact Page (/contact/): Added direct reachability page routing communications to Ray's personal email ([email protected]), GitHub repository discussions, and Obsidian community channels.
  • Governed Hero Media Cards: Integrated 16:9 hero visuals on topic catalog cards matching the main article archive layout with computed reading times and tag pills.

Changed

  • Schema.org Structured Data: Enriched CollectionPage schema with an about property mapping all keyFocus entity items as semantic Thing entities for search engine knowledge graphing, alongside BreadcrumbList and ItemList.
  • Ecosystem Footers & Navigators: Connected Privacy Policy, Terms, and Contact across SiteFooter.astro, obsidian-sync.astro, sitemap.xml.ts, and llms.txt.ts.
  • Article Reading View Linking: In src/pages/articles/[slug].astro, article topic badges and matching tag pills now dynamically link to their respective topic pillar archives.

Fixed

  • Media Policy Script Validation: Reconciled scripts/media-policy.mjs to seamlessly validate published local image assets (.jpg/.png) and prevent false positives on remote published articles.
  • Dist Verification Flush Timing: Added retry mechanism (readDistFile) in scripts/verify-dist.mjs to prevent filesystem race conditions during rapid static build completion checks on macOS.

Performance & Quality

  • 100/100 Lighthouse Clean Sweep: Maintained 100/100 across Mobile and Desktop for Performance, Accessibility, Best Practices, and SEO across all new and existing routes.
  • Zero Anti-Pattern Guarantee: Adhered strictly to RayLabs anti-slop guidelines with neutral borders (border: 1px solid var(--line)) and zero side-tabs on overview cards.
  • Full Verification Suite: 39/39 unit tests pass, 0 Astro check errors/warnings, 44 articles and 46 assets validated, 155 output files verified across 56 static pages.

Added

  • Mobile Table of Contents (<details class="mobile-toc">): Added an accessible, collapsible Table of Contents for viewports <= 72rem in article reading view with native zero-JS interaction and touch targets >= 44px.
  • Skip-to-Content Navigation Links: Implemented hidden accessible keyboard links (.skip-link) across Homepage, Articles Catalog, Article Reading View, Error Page, and Obsidian Sync page.
  • Editorial Split Layout: Transformed homepage Recent Technical Articles from a monotonous 3-card grid into an authentic editorial split layout featuring a prominent lead article (with LCP priority hero visual) and companion list.
  • Elevated Showcase Section: Repositioned Ray Vault Sync feature showcase directly beneath the lead articles, highlighting RayLabs as an active engineering creator lab.

Changed

  • Canonical Brand Accent Unification: Unified brand accents across all pages (index.astro, 404.astro, articles/index.astro, articles/[slug].astro, obsidian-sync.astro) to canonical RayLabs Green (#1e6b38 light, #34d399 dark) per DESIGN.md.
  • Subtle Elevation Shadows: Replaced chromatic neon glow halos on .btn-primary, .obsidian-mockup, .install-card.featured, and .comp-tab-btn.active with authentic neutral elevation shadows.

Fixed

  • Leaked Sandbox Markup Removal: Completely eliminated [SANDBOX] header pill and stranded .sandbox-bar CSS rules from src/pages/articles/index.astro and src/pages/articles/[slug].astro.
  • Detector Anti-Patterns Elimination: Resolved 100% of detected anti-patterns ([side-tab] in blockquotes and card before pseudo-elements, [layout-transition] width reflow in desktop TOC tick marks replaced with GPU scaleX(), and [dark-glow] neon shadow halos).
  • Mobile Touch Target Compliance: Enhanced all interactive elements, footer links, and header CTA buttons to meet the >= 44px × 44px touch target standard.
  • Zero External JS on 404: Replaced orphaned motion library call on 404 page with pure CSS @keyframes cardFadeIn.

Performance & Quality

  • 100/100 Lighthouse Clean Sweep: Maintained 100/100 across Mobile and Desktop for Performance, Accessibility, Best Practices, and SEO across all routes: Homepage, Catalog, Reading View, and Obsidian Sync.
  • Deterministic Impeccable Detection: impeccable detect src/ reported 0 anti-patterns (exit code 0).
  • Full Regression Suite: 39/39 tests passed, 0 TypeScript/Astro check errors, all quality content hashes synchronized.

Added

  • Dedicated Showcase Section (/#showcase): Prominent product feature card on the homepage highlighting Ray Vault Sync with live tags, GitHub direct link, and Obsidian deep-link (obsidian://show-plugin?id=ray-vault-sync).
  • LCP Image Preload in HTML Head: Added <link rel="preload" as="image"> with fetchpriority="high" for the above-the-fold hero SVG, achieving instant discoverability and passing Lighthouse LCP request discovery audit.

Changed

  • Ultra-Minimalist Navigation Bar: Removed text navigation links from the sticky header to eliminate clutter and provide maximum editorial focus; retained only Brand lockup and Theme Toggle.
  • Zero-JS GPU Accelerated Animations: Replaced heavy 1.34 MB Motion.dev bundle with pure CSS @keyframes heroFadeIn / .reveal-in and native inline IntersectionObserver, eliminating all unused JavaScript, minify warnings, and main-thread blocking.
  • Medium Asset Zero-Cookie Optimization: Mapped external Medium thumbnail CDN URLs to local governed assets (medium-pm-guide.jpg compressed by 65% to 31 KiB), eliminating third-party cookies and preserving Best Practices 100/100.
  • Clean Full-Page 404 Layout: Restructured 404 page into a distraction-free full-viewport layout with quiet recovery links to the homepage and technical articles index, strictly enforcing noindex,follow.

Fixed

  • Sticky Navbar & Mobile Horizontal Overflow: Removed overflow-x: hidden on html and applied overflow-x: clip on body, restoring standard position: sticky; top: 0 without breaking scrolling or causing horizontal shifting on mobile.
  • Toast Notification Visibility on Obsidian Sync: Resolved a CSS syntax error (stray closing brace }) in src/pages/obsidian-sync.astro that caused the "Copied to clipboard!" toast to render as permanent visible text below the footer; added strict visibility: hidden; pointer-events: none default guards.

Performance & Quality

  • Mandatory 100/100 Lighthouse Verification: 100/100 score maintained across Performance, Accessibility, Best Practices, and SEO on both Mobile (0.8s FCP, 0.9s LCP, 0ms TBT) and Desktop (0.4s FCP, 0ms TBT).
  • Strict Sandbox Production Isolation: Retired temporary /sandbox/ scratch routes and passed deterministic build guard scripts/verify-dist.mjs.

Added

  • Ray Vault Sync Canonical Landing Page (/obsidian-sync/): Dedicated high-converting product page for the free, open-source Obsidian GitHub synchronization plugin.
  • Interactive Live Token Connection Tester: Client-side GitHub REST API inspector testing PAT authentication, private/public repository accessibility, push write permissions, and branch tracking in real-time.
  • Feature Comparison Matrix: Detailed side-by-side comparison table evaluating Ray Vault Sync against Obsidian Sync ($4–$10/mo), Obsidian Git, and Remotely Save across pricing, native iOS support, terminal requirements, and conflict safety.
  • Conflict Safety & 3-Way Merge Architectural Guide: Plain-language breakdown of gitless tree merge, local note protection, and data safety guarantees.
  • Step-by-Step Installation Guide: Clear visual instructions for direct Obsidian Community Plugin installation and manual GitHub release deployment (.zip).
  • Search & AI Sitemap Indexing: Registered /obsidian-sync/ in sitemap.xml and llms.txt with rich SoftwareApplication and FAQPage JSON-LD structured data.

Changed

  • Homepage Product Link: Linked the Ray Vault Sync project card on the homepage (/) directly to the canonical /obsidian-sync/ product overview.
  • Sleek Minimalist Footer: Redesigned the footer with a clean, low-noise layout, discrete soft-selling buttons (Star on GitHub and Buy Me a Coffee pointing to official buymeacoffee.com/raylabs), and high-value backlink groups.

Performance & Quality

  • Mandatory 100/100 Lighthouse Verification: 100/100 score maintained across Performance, Accessibility, Best Practices, and SEO on both Mobile (1.0s FCP/LCP) and Desktop (0.3s FCP/LCP).
  • Strict Sandbox Production Isolation: Retired temporary /sandbox/ routes and passed deterministic build guard scripts/verify-dist.mjs.

Added

  • Desktop Table of Contents (TOC): Collapsed tick-mark dash rail on the right viewport edge and elevated hover/pinned popover card for technical articles (src/pages/articles/[slug].astro).
  • Snappy Quartic Scroll Engine (snappyScrollTo): High-performance requestAnimationFrame smooth scroll using a Quartic Ease-Out curve ($1 - (1-t)^4$), eliminating browser slow-in delay (< 35ms initial movement, 362ms smooth landing).
  • Auto-Dismiss & Hover Bridge: Popover immediately dismisses on click, safely releases active focus (blur()), automatically closes when mouse leaves the TOC area (mouseleave), and uses a pseudo-element bridge (::after) to eliminate hover flicker.
  • ScrollSpy Locking: Locks IntersectionObserver during programmatic transit to prevent intermediate headings from triggering layout reflows or indicator flickering.
  • Interactive Article Catalog Tabs: Instant client-side tag filtering (All, Architecture, AI Agents, Infrastructure) on /articles/.
  • Related Articles Module: Dynamic "You Might Also Like" section displaying chronological technical articles with cover thumbnails and reading times.
  • Living Design System (DESIGN.md): Comprehensive design specifications, dual-theme CSS tokens, typography hierarchy (Charter serif / system sans / monospace), component contracts, and accessibility standards (canonically tracked in Obsidian).
  • Production Route Promotion: Fully promoted redesigned modern homepage (/), interactive catalog (/articles/), and responsive technical article reading layout (/articles/[slug]/) to production, cleanly retiring temporary /sandbox/ routes.

Fixed

  • Image & SVG Viewport Overflow: Added universal img { max-width: 100%; height: auto; } and .prose :global(img) rules, preventing wide diagrams from exceeding container width on mobile and desktop.
  • Code Block Syntax Styling: Restored dark raised container styling, clean margins, and monospaced font stack for preformatted code blocks across light and dark themes.
  • Sticky Header Anchor Clipping: Added scroll-margin-top: 5.5rem across all article headings (h2, h3) and sources sections to guarantee proper offset when jumped to via anchor hash.

Performance & Quality

  • Mandatory 100/100 Lighthouse Verification: Verified 100/100 score across all four categories (Performance, Accessibility, Best Practices, SEO) on both Desktop and Mobile preview builds.
  • Dev Toolbar Isolation: Configured devToolbar: { enabled: false } in astro.config.mjs to prevent dev tools from degrading local audit measurements.

Added

  • Astro 7 Static Site Generator: Zero-JS baseline static build pipeline compiling approved Markdown articles from content/articles/**.
  • Cloudflare Static Deployment Pipeline: Idempotent upload, preview smoke testing, production promotion, and zero-downtime rollback drill.
  • Quality & Media Governance Policies: Strict render_input_sha256 binding, media checksum verification, and structured frontmatter schemas.
  • M4A Medium Derivative Package Generator: Automated tool (node scripts/medium-package.mjs) producing self-contained, canonical-linked Medium drafts.
  • Semantic Metadata & Feeds: Validated OpenGraph tags, Schema.org BlogPosting JSON-LD, RSS feed (/rss.xml), and sitemap generation (/sitemap.xml).