ulysses/static/js
chrisdvz.io ff81a22285
perf(ui): hoist esc() lookup table and build option lists once (#160)
Hoist the HTML-escape lookup table in static/js/ui.js out of the
String.replace callback so it is allocated once instead of on every
matched character. esc() is the canonical escaper aliased across 27
modules and runs on essentially every render, so this removes a lot of
short-lived garbage on the hottest text path. Output is byte-identical
(verified across null/undefined/emoji/attribute edge cases).

Also build the <select> option lists in cookbook-hwfit.js and group.js
by accumulating a string and assigning innerHTML once, instead of
`innerHTML +=` inside a forEach (which makes the browser re-parse the
element's markup on every iteration). Final DOM is unchanged.

Pure micro-optimizations; no behavior change.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 13:09:33 +09:00
..
calendar Odysseus v1.0 2026-05-31 23:58:26 +09:00
compare Odysseus v1.0 2026-05-31 23:58:26 +09:00
editor Odysseus v1.0 2026-05-31 23:58:26 +09:00
emailLibrary Odysseus v1.0 2026-05-31 23:58:26 +09:00
research Odysseus v1.0 2026-05-31 23:58:26 +09:00
admin.js Add admin user rename 2026-06-01 12:52:58 +09:00
assistant.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
calendar.js Fix timezone-aware calendar event times 2026-06-01 02:15:58 +00:00
censor.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
chat.js Improve Ollama setup and model endpoint handling 2026-06-01 10:00:15 +09:00
chatRenderer.js Close stale setup and line-ending gaps 2026-06-01 10:43:35 +09:00
chatStream.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
codeRunner.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
colorPicker.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
cookbook-diagnosis.js Clarify Cookbook diffusion dependencies 2026-06-01 11:45:26 +09:00
cookbook-hwfit.js perf(ui): hoist esc() lookup table and build option lists once (#160) 2026-06-01 13:09:33 +09:00
cookbook.js fix: group cookbook dependencies into Odysseus and Server sections (#144) 2026-06-01 02:50:50 +00:00
cookbookDownload.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
cookbookRunning.js Improve Cookbook serve reliability 2026-06-01 11:43:08 +09:00
cookbookServe.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
document.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
documentLibrary.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
dragSort.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
emailInbox.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
emailLibrary.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
emojiPicker.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
fileHandler.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
gallery.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
galleryEditor.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
group.js perf(ui): hoist esc() lookup table and build option lists once (#160) 2026-06-01 13:09:33 +09:00
init.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
keyboard-shortcuts.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
langIcons.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
markdown.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
memory.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
modalManager.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
modalSnap.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
modelPicker.js Improve Ollama setup and model endpoint handling 2026-06-01 10:00:15 +09:00
models.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
MODULE_SUMMARY.md Odysseus v1.0 2026-05-31 23:58:26 +09:00
notes.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
presets.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
providers.js Improve Ollama setup and model endpoint handling 2026-06-01 10:00:15 +09:00
rag.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
researchSynapse.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
search-chat.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
search.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
section-management.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
sessions.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
settings.js Move email account management to integrations 2026-06-01 13:01:33 +09:00
sidebar-layout.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
signature.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
skills.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
slashCommands.js Fix provider setup and strip message metadata 2026-06-01 10:20:18 +09:00
spinner.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
storage.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
tasks.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
theme.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
tileManager.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
tourAutoplay.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
tourHints.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
tts-ai.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
ui.js perf(ui): hoist esc() lookup table and build option lists once (#160) 2026-06-01 13:09:33 +09:00
voiceRecorder.js Odysseus v1.0 2026-05-31 23:58:26 +09:00
windowDrag.js Odysseus v1.0 2026-05-31 23:58:26 +09:00