iamnbutler/iamnbutler.github.ioPublic

Personal Site

Harden content loading and publishing; add accessibility fixes and CI #64

Mergediamnbutlermerged 4 commits intomainfromrefs/pull/64/head
  1. IA

    ## Summary - Fail closed on document API errors, malformed content, pagination loops, empty content, and duplicate fragment URLs. - Add publishing preflight for account identity, IDs/paths, dates, URLs, and local Markdown images; preserve code examples during image rewriting. - Derive TOC anchors from rendered Markdown headings. - Add accessible filter/editor states, focus indicators, and reduced-motion handling. - Copy static assets including CNAME; document development, publishing, and migration hazards. - Add offline tests, strict core type checking, fixture build smoke checks, and PR CI.

    ## Validation - 46 unit tests pass locally. - `npm run check:core` passes. - `npm run test:build` passes using test-only content (never deploy this output). - `git diff --check` passes.

    ## Known production blocker — intentional fail-closed behavior `npm run check:content` and the real production build reject existing live content duplication: 130 document records across 63 unique IDs, with every ID repeated. Distinct content also shares /f/56 (Spool/Breathe) and /f/57 (Ferrotype/Product Design Is Lost). These records require a backed-up, reviewed repair plan before production generation can succeed. This change does not mutate PDS records or choose a winner.

    Deployment branch policy remains unchanged: automatic deployment targets v23, not main. No deployment is requested by this PR. Existing dependency security advisories remain for a separate compatibility-tested upgrade.

  2. iamnbutlermerged 40184b7743bflast month on GitHub

  3. iamnbutlerclosedlast month on GitHub