Showcase-readiness hardening: offline UI, reliable install, upload safety, screenshots#1
Merged
Merged
Conversation
…pload safety) Address findings from a multi-dimension review ahead of a public launch: Install & deps - numpy>=2.1.3,<2.3 so install works on the Python 3.13 the docs recommend - bump jinja2/werkzeug/flask to CVE-patched floors; drop unused python-multipart - setup.py now reads requirements.txt (single source of truth); python_requires>=3.11 - standardize Python version to 3.11 across scripts, docs, landing page, issue template - setup.ps1/run.ps1/VS Code tasks create and use a project venv (no global pollution) Privacy/offline - vendor Tailwind locally (compiled CSS) and remove the cdn.tailwindcss.com script, so the UI truly runs offline as advertised; add tailwind.config.js + npm build Reliability & safety - SSE stream: expire the session each poll so completion is detected; add a wall-clock cap - bootstrap: atomic model download (.part + os.replace) + truncation re-download - server-side upload validation (extension allow-list, collision/non-Latin-safe names) - JSON 413 handler for oversized uploads Docs - fill the empty Quick Start; correct model size (~37MB); fix 'any OS' overclaim; relabel launchers (run.ps1 = tray/auto-open, face-sort = headless); drop shipped dark-mode from roadmap; remove gitignored settings.json from the structure diagram Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…n landing page - Verified the app launches and renders in light + dark with zero external network requests (offline claim holds) and no console errors - Add hero/dark/dashboard screenshots to README and the GitHub Pages landing page - config.VERSION now reads the VERSION file (footer was stuck at v2.1.1) - Landing page: add 'View on GitHub' link, hero screenshot, bump release label Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…staller build.ps1 previously called a global 'pyinstaller' that isn't a declared dependency, so the documented EXE build failed on a clean clone. Now it uses venv\Scripts\python.exe, installs the app (-e .) + pyinstaller, then builds. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prepares Face Sort Studio for a public launch. Findings came from a deep multi-dimension review; each fix was verified against the code, and the app was launched and driven (light + dark, zero external network requests, no console errors).
Install & dependencies
numpy>=2.1.3,<2.3so install works on the Python 3.13 the docs recommended (2.0.2 had no 3.13 wheels → source-build failure)python-multipartsetup.pynow readsrequirements.txt(single source of truth);python_requires>=3.11setup.ps1/run.ps1/VS Code tasks now create and use a project venv (no global pollution)Privacy / offline
cdn.tailwindcss.comscript — the UI is now truly offline, matching the headline claim. Build vianpm run build:css(tailwind.config.js)Reliability & safety
bootstrap.py: atomic model download (.part+os.replace) + truncation re-download413handler for oversized uploadsbuild.ps1: use the venv + auto-install PyInstaller (was calling a non-existent global)Docs & presentation
face-sort= headless); drop shipped dark-mode from roadmapconfig.VERSIONreads the VERSION file (footer was stuck at v2.1.1)Tests: 15/15 pass · flake8 clean.