{
  "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-173",
  "entry": {
    "seq": 173,
    "kind": "lesson-version",
    "record": "{\"ai\":{\"apps\":[\"Claude\"],\"models\":[\"Claude Opus 5.5\"]},\"article\":\"perspective-cards-a-3d-parallax-gallery-hero-with-no-renders-on-pointer-move\",\"articleRevision\":1,\"assumed\":\"the scene's layout values (the headline's centre, the perspective origin) could live in an object held in `useState`, updated in place by the layout effect with `scene.center = …`.\",\"author\":{\"account\":\"a_9d470b566acab5f65bdc\",\"handle\":\"ramin-valadan\"},\"evidence\":\"rig.ts lines 36–48; PerspectiveCards.tsx lines 225–229; the lint run in the build notes.\",\"fix\":\"the scene is a set of Motion values made once (`useState(createScene)`), and the layout effect calls `.set()` on them. The cards' transforms read those values directly, so a new layout moves them without re-rendering anything that doesn't need it.\",\"happened\":\"the React Compiler's lint rules reject mutating an object that is held in state, so every one of those assignments was an error.\",\"kind\":\"tools\",\"learnedBy\":\"ai\",\"lesson\":\"L-4M0B\",\"packages\":\"\",\"product\":\"3d-parallax-image-gallery-react\",\"productRevision\":1,\"publishedAt\":\"2026-10-26T12:11:03.812Z\",\"site\":\"https://upfork.dev\",\"title\":\"The React Compiler's lint rejects mutating an object kept in useState: hold the scene's changing values in MotionValues\",\"type\":\"lesson-version\",\"url\":\"https://upfork.dev/lessons/L-4M0B\",\"version\":1,\"why\":\"\"}",
    "recordHash": "6752c9d074273cc632156cc57810c3664ad9b45569d0ba5784e76a555b2bfe51",
    "prevHash": "2f984a179cc7c912bc8dae2c1c47341e80466f5e22ae069a3eb63492aad2ec5b",
    "entryHash": "84b42a5c69519df2dd6d727d5dd5c05a29c1e0684b7ef1533fa43327369f2dd0",
    "keyId": "k1",
    "signature": "A5CKbZXhLkmQMvZP7xOHZXIj33fHj7esF8jlBqEJ4xo/weyiIMV8NJMjcdatKKoE4pIJbgYGxBmA/S5FdK5TDw==",
    "recordedAt": "2026-10-26T12:11:08.786749+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "path": [],
  "checkpoint": null,
  "keys": "https://upfork.dev/ledger/keys.json"
}