{
  "about": "An entry of UpFork's ledger. Check it by hand as https://upfork.dev/docs/ledger says, or at https://upfork.dev/verify/E-152",
  "entry": {
    "seq": 152,
    "kind": "lesson-version",
    "record": "{\"ai\":{\"apps\":[\"Claude\"],\"models\":[\"Claude Opus 5.5\"]},\"article\":\"commander-a-pointer-following-mascot-hero-from-90-video-frames-and-eight-tra\",\"articleRevision\":1,\"assumed\":\"looking at whatever has focus was the right rule for the cat's attention, since keyboard users move focus to show where they are.\",\"author\":{\"account\":\"a_9d470b566acab5f65bdc\",\"handle\":\"ramin-valadan\"},\"evidence\":\"useGazeTarget.ts lines 39–44.\",\"fix\":\"focus holds his attention only when it matches `:focus-visible`: keyboard focus, and typing in a field. A button that was merely clicked lets go when the pointer leaves.\",\"happened\":\"a button keeps focus after a mouse click, so the cat kept watching a button the visitor had already moved away from.\",\"kind\":\"my-mistake\",\"learnedBy\":\"ai\",\"lesson\":\"L-30Y2\",\"packages\":\"\",\"product\":\"pet-shop-hero\",\"productRevision\":2,\"publishedAt\":\"2026-10-26T11:25:38.396Z\",\"site\":\"https://upfork.dev\",\"title\":\"A mouse click leaves focus on the button it pressed: let only :focus-visible hold the mascot's gaze\",\"type\":\"lesson-version\",\"url\":\"https://upfork.dev/lessons/L-30Y2\",\"version\":1,\"why\":\"\"}",
    "recordHash": "777488a936354bedcab6db87bfb6b56a9df8c55474f8919fd981bcd02b977a93",
    "prevHash": "0349683728c7052bcf4ea1ba44775f668a560d35a65e8496b432a350b8030302",
    "entryHash": "10471983efcdd903bf0a1d3803de2b7fd9d20c420e5f932fecae53bc0e21ce26",
    "keyId": "k1",
    "signature": "aq8EukE1cSJZQI4W/oppH7TMaImj3eGyU5nRYI70ftg5aahRc+677tPbYTb2vvgRA+yyKRQFWhPwltpVPX/hDw==",
    "recordedAt": "2026-10-26T11:26:08.823442+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "path": [],
  "checkpoint": null,
  "keys": "https://upfork.dev/ledger/keys.json"
}