Skip to content

Showcase-readiness hardening: offline UI, reliable install, upload safety, screenshots#1

Merged
Shaan-alpha merged 3 commits into
mainfrom
showcase-readiness-fixes
Jun 4, 2026
Merged

Showcase-readiness hardening: offline UI, reliable install, upload safety, screenshots#1
Shaan-alpha merged 3 commits into
mainfrom
showcase-readiness-fixes

Conversation

@Shaan-alpha

Copy link
Copy Markdown
Owner

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.3 so install works on the Python 3.13 the docs recommended (2.0.2 had no 3.13 wheels → source-build failure)
  • 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 to 3.11 across scripts, docs, landing page, issue template
  • setup.ps1/run.ps1/VS Code tasks now create and use a project venv (no global pollution)

Privacy / offline

  • Vendor Tailwind (compiled CSS) and remove the cdn.tailwindcss.com script — the UI is now truly offline, matching the headline claim. Build via npm run build:css (tailwind.config.js)

Reliability & safety

  • SSE stream: expire the session each poll so job completion is detected; add a wall-clock cap
  • bootstrap.py: atomic model download (.part + os.replace) + truncation re-download
  • Server-side upload validation (extension allow-list, collision/non-Latin-safe filenames)
  • JSON 413 handler for oversized uploads
  • build.ps1: use the venv + auto-install PyInstaller (was calling a non-existent global)

Docs & presentation

  • Fill the empty Quick Start; correct model size (~37 MB); fix the "any OS" overclaim; relabel launchers (run.ps1 = tray/auto-open, face-sort = headless); drop shipped dark-mode from roadmap
  • config.VERSION reads the VERSION file (footer was stuck at v2.1.1)
  • Add UI screenshots to the README and the GitHub Pages landing page; add a "View on GitHub" link

Tests: 15/15 pass · flake8 clean.

Shaan-alpha and others added 3 commits June 4, 2026 23:10
…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>
@Shaan-alpha Shaan-alpha merged commit 2c9c63b into main Jun 4, 2026
3 checks passed
@Shaan-alpha Shaan-alpha deleted the showcase-readiness-fixes branch June 4, 2026 18:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant