{# The footer under the book list: what this device is running. Both digests are stamped into sw.js by server.py from the files on disk: shell covers assets/, the hand-written chrome, and library covers bible/, the generated pages. They are the same two values the worker names its caches after, so a device showing a digest is a device serving that cache. It says what the worker that composed this document was, not what is controlling right now. An update installs, claims and starts answering without this document being rebuilt, so the value only becomes current on the next full load -- which is the reload you would do to check it anyway. Rendered on every page and shown under the book list alone. Populating it only for the index would look like the smaller change and would not work: the shell is composed once per full navigation, and a boosted link to the book list swaps #content without rebuilding anything around it. So the page decides, not the composer -- app.js looks for the index in #content after every swap. The body class this was rendered with cannot be asked, for the same reason: it goes stale the moment a link is clicked. #}

shell {{ version.shell }} · library {{ version.library }}