Commit Graph
4 Commits
Author SHA1 Message Date
digital-garbage dd70d23e57 core: cache fonts, keep everything else uncached
A font filename carries family, weight range and subset, so its bytes never
change -- re-fetching 133 KB on every reload to stay honest about a file that
cannot go stale is the wrong trade. Code stays no-store: the editor is edited
while it is running.

*.woff2 declared binary so autocrlf can never rewrite one.
2026-08-28 14:52:22 +03:00
digital-garbage dd7c531fce composer: bundle Figtree, Archivo and IBM Plex Mono
Self-hosted, so the editor is correct offline and behind firewalls that block
Google's CDN -- v4 linked the CDN and silently rendered in a fallback there.
133 KB: Figtree and Archivo are variable, one file per subset; latin and
latin-ext only.

The OFL texts ship beside the fonts because redistribution requires it, and a
test fails if a bundled family arrives without one.

A missing face degrades silently into the fallback stack, so the faces declared
in fonts.css are checked against what is actually on disk, both directions.
2026-08-28 14:47:31 +03:00
digital-garbage 058ca1a427 core: test the routes, and stop one try guarding two imports
routes.py had no coverage. register() now takes the route table so the real
routes mount on a throwaway app.

The tests write the request line onto the socket instead of using aiohttp's
TestClient, which normalises the URL before sending -- ask it for
modules/%2e%2e/app/x.css and the server receives a plain app/x.css, so the test
looks like a routing bypass when it is the client tidying up. On the wire the
modules route does match, dots intact, and resolve() refuses it.

Splitting the aiohttp and PromptServer imports: one try around both nulled
web whenever ComfyUI's server module was absent, which is every test run.
2026-08-28 14:31:49 +03:00
digital-garbage d5effb0378 core: serve the app, with the module allowlist as the wall
Static serving routes through a pure resolve(), so the extension allowlist and
the traversal guard are tested without aiohttp. modules/ serves .js only: a
module cannot ship a stylesheet even if one is written.
2026-08-28 14:18:55 +03:00