Loaded by every tool page, so a change here shows up everywhere. Pages load them with a ?v= number that is bumped on every change.
symbols.js
module site/shared/symbols.js
Symbol buttons for every tool: a button marked data-sym becomes a round line-symbol button whose own text turns into the tooltip and the screen-reader label (and shows beside the symbol only when the button also has data-sym-word). It holds the one shared set of line symbols and also finds buttons a tool draws later.
shell.js
module site/shared/shell.js
The one script of the app frame (shell.css): the header's list button opens and closes the side list on narrow screens, and a tap beside it, the Escape key or a tap on one of its links closes it again. Every page with a side list loads this instead of its own copy; the phone bottom bar's left button presses the same list button.
whats-new.js
module site/shared/whats-new.js
The What is new page's helper: sizes the framed How the AI works article (ai.html?embed=1) to its content so the page scrolls once.
tabbar.js
module site/shared/tabbar.js
The phone bottom bar every tool shares (520px and narrower): four or five destinations with the main action as a round button in the middle, in Liquid Glass. A tool lists its destinations as data on the script tag and the bar clicks the tool's own buttons, so it needs no layout code. It folds away with the keyboard and on sideways phones. Styles are in ui.css. The last button becomes Sections (`sections.js`: a sheet with the five painted panes and the tool's actions). The round button can take its own name and picture from its target (`data-tab-name`, e.g. Hollowkeep's Add PDFs) and gives them back when the target goes. Rows a tool marks `.tabbar-covered` (also those built later) are tucked away from screen readers and Tab, and only what the bar added is removed again; the haptic tick on iPhone gives focus back. On <html data-simple> pages its last slot says Menu and opens the header's one menu sheet; what More held becomes the sheet's In this tool part.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
scene.js
module site/shared/scene.js
The painted background with parallax.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
mail-key.js
module site/shared/mail-key.js
Makes a PGP key pair in the browser (vendored OpenPGP.js) for locked mail storage on the account mail page; only the public key is sent.
palette.js
module site/shared/palette.js
Colours and themes.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
i18n.js
module site/shared/i18n.js
The window.i18n lookup (t, add, setLanguage, language) with the language pickers, and the English, German, French and Spanish texts of the shared widgets (group chats, storage notices), Mirrorgate, Whisperglass and Hollowkeep. Other tools add their texts with i18n.add.
Before you change it 3
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
- Four languages. Text people read exists in English, German, French and Spanish with the same keys in each. Read the rule
refract.js
module site/shared/refract.js
Edge refraction and the pointer rim light for the Liquid Glass (after rdev/liquid-glass-react, MIT): draws a displacement map per big surface (page panels, landing menu, Command Sheet, header pill, tool head) and hands an SVG filter to the frost layer through --refract; a .rim-light ring follows the pointer. Chromium only; Safari and Firefox keep the plain frost.
panes.js
module site/shared/panes.js
Living Window navigation (redesign): five leaded panes (Armoryhall, Whisperglass, Almanack, Board, Account) as real links, a slim rail at the left edge on desktop (900px wide and 440px tall or more, every page except the home; header.js sets html.lw-rail so the page makes room with --rail-width) and a 56px bottom row on phones and short windows that folds while scrolling down. Pressing answers with a spring, opening grows the pane to the screen before the link is followed; reduced motion skips it. header.js loads it only on pages with data-design="lw"; the art is a crop of the page's own scene.
living.css
stylesheet site/shared/living.css
Styles of the Living Window panes: opaque pane art with a scrim so labels keep 4.5:1, lit current pane, the desktop rail with its one --rail-width offset for body, corner bar and tool head, and the phone bottom row. Loaded by header.js on pages with data-design="lw".
simple.css
stylesheet site/shared/simple.css
The simple page look (page-design simplification): one glass surface per content page (.simple-surface, flat rows inside, no glass on glass), six text sizes (12, 14, 16, 20, 28, 40), Pirata One only for the page title, the underline tab row (.simple-tabs) and 44px targets. Everything is scoped to <html data-simple>; removing the attribute restores the Living Window look. Checked by tools/shot/simple.mjs on its own fixture.
simple-tabs.js
module site/shared/simple-tabs.js
The underline tab row of simple.css: centres the current tab in its row on load (only the row scrolls), keeps a focused tab in view and adds the arrow keys, Home and End. window.seppoSimpleTabs.mount(row) mounts rows added later.
world-tabs.js
module site/shared/world-tabs.js
Worldquill's tab row Worlds, Stories, Boards (page-design slice 9): real links in the header of the Worldquill, Fableknot and Sketchmere pages, each opening the matching page on the open world (#w/<id>, else seppo-open-world). Own i18n namespace worldquillTabs; placement in world-tabs.css, look from simple.css.
living-ui.js
module site/shared/living-ui.js
Living Window pieces for library pages (Armoryhall, Hollowkeep), only with data-design=lw: a Filter capsule that opens a sheet (popover) for the page's filter controls and counts the active ones, a More menu for tabs past the first few on phones, and a spring press on cover panes. Styles in living-library.css.
arch.js
module site/shared/arch.js
Living Window home: gives the five static arch panes in site/index.html their icon, the scene's leaded art and the press and grow spring from panes.js, names its navigation in the page language and keeps the arch above the dock whatever height the dock has. Loaded by header.js on <html data-design="lw" data-page="home">.
living-home.css
stylesheet site/shared/living-home.css
Places the Living Window home: arch of tall panes above a slim search and tool-icon dock on desktop, painting first with the pane stack scrolling in on phones; light through glass per day and night.
sections.js
module site/shared/sections.js
The Sections sheet of the tool frame (Living Window): a native popover bottom sheet with the five painted panes, a Home row and the actions the bottom bar's old More button held. Opened by tabbar.js (its last button becomes Sections when this module loads) and by the logo on phone tool pages (header.js). Springs up from the bottom, drag the handle down to close, Escape and the back button close it, focus returns to the opener.
mail-living.js
module site/mail/mail-living.js
Ravenpost on phones (Living Window): the bottom bar's Folders button clicks the hidden #open-folders, which shows the folders pane. Nothing else; mail.js keeps the mail logic.
mail-living.css
style site/mail/mail-living.css
Ravenpost phone layout (520px and narrower, not classic): one scroll, folder rows 56px, mail rows 72px, Back plus the reader actions in a grid of three, full-screen compose with its actions on top; the page's own New mail, Refresh, Sorter, old webmail and Folders buttons are tucked behind the bar.
scrollforge-living.js
module site/shared/scrollforge-living.js
Scrollforge (Living Window): marks the page's own title when it only repeats the tool name (all widths) and, on phones, the model chip when no AI is ready, so scrollforge-living.css can hide them; the empty chat's question becomes a level-2 heading. Plain script loaded after scrollforge.js; the classic design keeps the old page.
spring.js
module site/shared/spring.js
Spring motion for gestures CSS cannot do (Living Window redesign): animate(from, to, onFrame) starts from the current value and velocity, retarget(to) continues smoothly when a tap interrupts it, critically damped by default, jumps straight to the target under reduced motion. Tokens for the CSS side are in tokens.css.
crossing.js
module site/shared/crossing.js
Page-to-page transitions.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
chat.js
module site/shared/chat.js
The chat view used by Whisperglass.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
todo-steps.js
module site/shared/todo-steps.js
Adds the Copy button to the command blocks on a to-do's page; the steps, sites and commands themselves are drawn by the server from the to-do text.
md-text.js
module site/shared/md-text.js
Shows the text of a to-do or pick as Markdown (bold, lists, links) through markdown.js; the server has already escaped it.
markdown.js
module site/shared/markdown.js
Turns an AI's Markdown into safe page elements.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
pins.js
module site/shared/pins.js
Pinned items for every tool: kept on the device and sent to the account when online.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
drawer.js
module site/shared/drawer.js
The phone drawer with a filter, Pinned and Recent, opened from the bottom bar.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
confirm-buttons.js
module site/shared/confirm-buttons.js
Buttons with data-confirm ask first (reset of a model set); Cancel stops the form from being sent.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
table-labels.js
module site/shared/table-labels.js
Gives every table cell its column title, so admin tables can turn into cards on phones.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
admin-palette.js
module site/shared/admin-palette.js
The admin pages' own search sheet (Ctrl K or /: admin pages, projects and people), Pinned and Recent in the admin side list, and the soft change of the pane between plain admin pages.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
search-engine.js
module site/shared/search-engine.js
The one search engine behind both Command Sheets: ranks rows (titles before text, starts before middles, recently used first), forgives typos and word forms, finds German and English words in one index, and suggests a corrected word.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
search-engine.test.mjs
module site/shared/search-engine.test.mjs
Tests for the search engine: ranking, typos, German and English together, suggestions.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
tooltip.js
module site/shared/tooltip.js
Tooltips drawn in the site's own glass look instead of the browser's own; the title moves aside while the label shows.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
groups.js
module site/shared/groups.js
Group chats.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
private-chats.js
module site/shared/private-chats.js
Syncs private chats with the account.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
dialog-enter.js
module site/shared/dialog-enter.js
Makes Enter in a dialog's text field confirm the dialog instead of cancelling it, in the tools whose dialogs list Cancel first.
Before you change it 1
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
offline-store.js
module site/shared/offline-store.js
What a tool keeps on this device for offline use: kept copies of files and the outbox of changes made offline, each with a request id so the server applies it once.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
offline-api.js
module site/shared/offline-api.js
Makes a tool's API calls work offline (Fableknot stories, Worldquill pages): what was read answers without a connection, offline saves wait in the outbox, and an item changed elsewhere meanwhile keeps both versions.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
painter.js
module site/shared/painter.js
Moonbrush: the chat writes a prompt, ComfyUI paints.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
pc-light.js
module site/shared/pc-light.js
Shows whether an AI PC is on.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
device-ai.js
module site/shared/device-ai.js
Small AI in the browser while no PC is on.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
device-ai-engine.js
module site/shared/device-ai-engine.js
The WebGPU engine behind it, in a hidden frame.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
gablemark-upload.js
module site/shared/gablemark-upload.js
Sends a chosen document to Gablemark's encrypted vault and asks before a delete.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
gablemark-ai.js
module site/shared/gablemark-ai.js
The AI buttons of Gablemark's calculator: explain, ask, compare and fill the inputs from a sentence, answered by the admin's own PC.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
ask.js
module site/shared/ask.js
Draws an AI's question as buttons, lists and a short form, and sends the answer back.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
voice.js
module site/shared/voice.js
The microphone button beside Send in every AI message box.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
voice-engine.js
module site/shared/voice-engine.js
The speech model's hidden frame, with voice-worker.js running Whisper.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
voice-worker.js
module site/shared/voice-worker.js
Runs the Whisper speech model for voice input.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
tts-reader.js
module site/shared/tts-reader.js
Read aloud for PDFs: a player under the PDF bar that reads the pages paragraph by paragraph with a voice picker and speed control, all on the reader's own device.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
tts-worker.js
module site/shared/tts-worker.js
Turns sentences into speech with a Piper voice (ONNX runtime and phonemizer from seppo.app) in a worker; nothing leaves the device.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
tts-i18n.js
module site/shared/tts-i18n.js
Read aloud's texts in English, German, French and Spanish.
Before you change it 3
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
- Four languages. Text people read exists in English, German, French and Spanish with the same keys in each. Read the rule
hollowkeep-files.js
module site/shared/hollowkeep-files.js
Attach and save files between Whisperglass and Hollowkeep.
Before you change it 3
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
- Stored data is people's. Files, worlds, chats, boards and stories belong to the people who made them. Copy first and check size and SHA-256 before an original goes, keep removed originals in a holding folder, and make migrations safe to stop and run again. Read the rule
viewer3d-frame.js
module site/shared/viewer3d-frame.js
Opens a 3D model in a sandboxed frame (the viewer at seppo.app/viewer3d/) and hands it the file's bytes; used by Hollowkeep and by models linked into Worldquill worlds.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
worldquill-link.js
module site/shared/worldquill-link.js
Worlds inside Whisperglass.
Before you change it 3
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
- Stored data is people's. Files, worlds, chats, boards and stories belong to the people who made them. Copy first and check size and SHA-256 before an original goes, keep removed originals in a holding folder, and make migrations safe to stop and run again. Read the rule
worldquill-i18n.js
module site/shared/worldquill-i18n.js
Worldquill's texts, and those of the world links inside Whisperglass and Moonbrush, in four languages; merged into the table with i18n.add.
Before you change it 3
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
- Four languages. Text people read exists in English, German, French and Spanish with the same keys in each. Read the rule
pdf-markup.js
module site/shared/pdf-markup.js
PDF reader with highlight, text and drawing tools (vendored pdf.js); stores only the markup, never the original. Also reports the page being read and draws a PDF's first page as a cover for the Hollowkeep Library.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
pdf-i18n.js
module site/shared/pdf-i18n.js
PDF markup's texts.
Before you change it 3
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
- Four languages. Text people read exists in English, German, French and Spanish with the same keys in each. Read the rule
byline.js
module site/shared/byline.js
Who added or last changed something.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
format.js
module site/shared/format.js
Dates and sizes in the page's language, HTML escaping and saving a file, shared by Hollowkeep, Worldquill, Fableknot and Sketchmere.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
zip.js
module site/shared/zip.js
Writes and reads small zip files for the tools' exports and imports.
Before you change it 3
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
- Stored data is people's. Files, worlds, chats, boards and stories belong to the people who made them. Copy first and check size and SHA-256 before an original goes, keep removed originals in a holding folder, and make migrations safe to stop and run again. Read the rule
glass-slider.js
module site/shared/glass-slider.js
Liquid Glass range slider (with glass-slider.css): filled track, glass thumb, value tip, default tick; opt in per input, used by Grainwright.
Before you change it 3
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
- Stored data is people's. Files, worlds, chats, boards and stories belong to the people who made them. Copy first and check size and SHA-256 before an original goes, keep removed originals in a holding folder, and make migrations safe to stop and run again. Read the rule
storage-move.js
module site/shared/storage-move.js
Brings browser data from a tool's old subdomain to its new path.
Before you change it 3
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
- Stored data is people's. Files, worlds, chats, boards and stories belong to the people who made them. Copy first and check size and SHA-256 before an original goes, keep removed originals in a holding folder, and make migrations safe to stop and run again. Read the rule
storage-bridge.js
module site/shared/storage-bridge.js
The old address's side of that move.
Before you change it 3
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
- Stored data is people's. Files, worlds, chats, boards and stories belong to the people who made them. Copy first and check size and SHA-256 before an original goes, keep removed originals in a holding folder, and make migrations safe to stop and run again. Read the rule
moved.js
module site/shared/moved.js
Forwards old tool addresses.
Before you change it 3
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
- Stored data is people's. Files, worlds, chats, boards and stories belong to the people who made them. Copy first and check size and SHA-256 before an original goes, keep removed originals in a holding folder, and make migrations safe to stop and run again. Read the rule
restore.js
module site/shared/restore.js
Restores a saved file from an old app.
Before you change it 3
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
- Stored data is people's. Files, worlds, chats, boards and stories belong to the people who made them. Copy first and check size and SHA-256 before an original goes, keep removed originals in a holding folder, and make migrations safe to stop and run again. Read the rule
ai-setup.js
module site/shared/ai-setup.js
Admin: reorder AI providers.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
avatar-crop.js
module site/shared/avatar-crop.js
Profile picture picker.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule
scrollforge.js
module site/shared/scrollforge.js
The admin Scrollforge workspace: plain chats, pages with preview and Publish, and scheduled tasks with their runs, filtered by kind; builds the list, conversation, model picker and side panels and streams each answer as it arrives.
Before you change it 2
- Bump the ?v= number. When a shared file whose references carry ?v= changes, raise the number in every reference. Caddy caches versioned files forever, and check.sh fails on mismatches. Read the rule
- Works offline. A page and its scripts, styles and fonts are plain same-origin files that site/app-sw.js can keep. What cannot work offline says so instead of failing silently. Read the rule