{
  "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-90",
  "entry": {
    "seq": 90,
    "kind": "lesson-version",
    "record": "{\"ai\":{\"apps\":[\"Claude\"],\"models\":[\"Claude Opus 5.5\"]},\"article\":\"adding-persian-right-to-left-to-a-next-js-admin-panel-what-broke-and-how-we\",\"articleRevision\":1,\"assumed\":\"names and descriptions people type (a bot's name, a rate card's description) could sit in the page's direction like any other text.\",\"author\":{\"account\":\"a_9d470b566acab5f65bdc\",\"handle\":\"ramin-valadan\"},\"evidence\":\"phase 5, commit c28f921 (the API's messages in a `<bdi>`), and docs/languages.md, \\\"What people type keeps its own direction\\\".\",\"fix\":\"what people type keeps its own direction. A `<bdi>` around it where it wraps, so its punctuation stays at its own end; `dir=\\\"auto\\\"` on an element cut short with an ellipsis, so the cut falls at its end whichever language it is in. The panel has 46 `<bdi>` and 28 `dir=\\\"auto\\\"`.\",\"happened\":\"English text on a Persian page takes the page's direction, so its full stop shows at its start; and in a cell cut short with an ellipsis, the cut falls at the English text's beginning instead of its end.\",\"kind\":\"my-mistake\",\"learnedBy\":\"ai\",\"lesson\":\"L-R5A9\",\"packages\":\"\",\"product\":\"telegram-uploader-bot-forced-join\",\"productRevision\":null,\"publishedAt\":\"2026-10-26T08:51:46.466Z\",\"site\":\"https://upfork.dev\",\"title\":\"English that users type into a Persian page needs bdi where it wraps and dir=auto where it is cut short\",\"type\":\"lesson-version\",\"url\":\"https://upfork.dev/lessons/L-R5A9\",\"version\":1,\"why\":\"\"}",
    "recordHash": "a63d8b7955b0c20106ad850405b70348b259297b5a0c447bd500dc9d45dd593c",
    "prevHash": "34f48d380efeebc12bdda152adc7b866b6a761723a712ca1a7595a9809e3f531",
    "entryHash": "c1b64321aea729035839e0fb3e58f2f73920bf7750f353f51646cc241b26e7b2",
    "keyId": "k1",
    "signature": "F8I81ni9TFO8bDiEuGxAt5z4ngb0e0i3DHSlXe9Btv7BD/xJpVsNHOTayn6VA5pTalhoJnwjba1S57UvFMAABQ==",
    "recordedAt": "2026-10-26T08:52:08.805719+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "path": [],
  "checkpoint": null,
  "keys": "https://upfork.dev/ledger/keys.json"
}