odysseus/static
Léo 8a95ec9299 refactor(settings): extract four panels into settings/ modules
static/js/settings.js was 5,721 lines behind a four-name public surface.
static/js/settings/ already existed with dom, registry, search, sidebar,
navigation and lifecycle, so this continues that package rather than
inventing a layout.

Moved verbatim, 407 lines:

  settings/speech.js        initTtsSettings, initSttSettings
  settings/writingStyle.js  initDocumentWritingStyle
  settings/imageModels.js   initImageSettings
  settings/agent.js         initAgentSettings
  settings/api.js           postSettings, lifted from _postSettings

These five were chosen because their only dependencies outside themselves
were el/byId, _postSettings and sortModelIds. Panels with wider reach stay
put: initEmailAccountsSettings, for instance, pulls a 64-declaration closure
covering most of the file, and splitting that is a design change rather than
a move.

settings.js keeps its public surface exactly: open, close,
refreshAiModelEndpoints and the default export, verified in a browser.

Three test updates the move required:

- tests/helpers/test_settings_shell_coordinator.mjs allowlists the real
  modules the coordinator may import, and rejected the new ones. That guard
  working is the reason to trust the rest of this diff.
- two source-introspection tests read settings.js for behaviour that now
  lives in a panel module. They read the whole settings surface now, so the
  next extraction does not break them again.
2026-09-30 09:04:20 +02:00
..
css refactor(css): move cookbook, research, memory and settings styles to their own file 2026-09-23 16:12:53 +02:00
fonts feat(a11y): add a Text size control and an OpenDyslexic font option (#4210) 2026-06-22 13:53:46 +02:00
icons Cookbook model workflow fixes 2026-06-21 11:02:35 +00:00
js refactor(settings): extract four panels into settings/ modules 2026-09-30 09:04:20 +02:00
lib perf(static): vendor KaTeX and Mermaid, and load them on first use (#5994) 2026-08-16 22:43:12 +01:00
test-fixtures Squash Odysseus development history 2026-09-11 06:04:19 +00:00
app.js fix(ui): bust cache for collapsible subscription usage 2026-09-22 13:12:19 +01:00
icon.ico feat(launcher): add portable windows launcher (#976) 2026-06-16 04:58:16 +01:00
index.html refactor(css): move cookbook, research, memory and settings styles to their own file 2026-09-23 16:12:53 +02:00
login.html Squash Odysseus development history 2026-09-11 06:04:19 +00:00
manifest.json pwa missing icons added (#428) 2026-06-15 16:00:13 +09:00
modal-control-variants.html Merge verified Odysseus fixes 2026-07-23 14:49:02 +00:00
research-ascii-variants.html Squash Odysseus development history 2026-09-11 06:04:19 +00:00
research-ascii-variants.js Squash Odysseus development history 2026-09-11 06:04:19 +00:00
style.css refactor(css): move cookbook, research, memory and settings styles to their own file 2026-09-23 16:12:53 +02:00
sw.js refactor(css): move cookbook, research, memory and settings styles to their own file 2026-09-23 16:12:53 +02:00
wave-variants.html Merge verified Odysseus fixes 2026-07-23 14:49:02 +00:00
whirlpool-variants.html Merge verified Odysseus fixes 2026-07-23 14:49:02 +00:00