The EDB binaries link vcruntime140 (and msvcp140 via ICU), which a clean
Windows install lacks, so the built-in DB and the wizard's external-DB
connection test (psql) failed on fresh/offline PCs without the VC++
2015-2022 redistributable. Copy vcruntime140(_1)/msvcp140(_1,_2) into
postgres\pgsql\bin at build time and extract vcruntime140 with psql.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Settings -> Update source writes NETX_UPDATE_SOURCES to ProgramData .env:
empty keeps the default (GitHub first, git.avelo.top mirror as fallback),
"forgejo" pins updates to git.avelo.top.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
NetX runs headless; these were ~70MB of the runtime (107MB -> 34MB) and made
CI Setups ~30MB larger than local ones. Setup: 105MB (CI) / 75MB -> 67MB.
ensurepip stays for venv creation.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Prefer Python 3.12 (py -3.12 / Python312) even when another version is
first on PATH, matching the CI pin.
- Skip npm ci when node_modules already matches package-lock.json: npm ci
wipes node_modules first and a running Vite dev server leaves it
half-deleted.
- pip --no-warn-script-location: its PATH check realpath()s every entry
and aborts on a broken reparse point.
- README: local release / Forgejo / offline steps.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Installer: dynamic light/dark Win11 style, new brand wizard images, auto
language, exclusive run mode (tray / Windows service) plus autostart and
auto-update on the Tasks page (pre-selected from what is installed on
upgrades, untouched by silent updates), 5 localized Start Menu entries.
Tray: theme-aware rounded menu with live status, icons and status-dot tray
icon; health polled off the UI thread; Settings submenu toggles autostart
and daily updates; browser opened de-elevated via explorer.
Fixes:
- tray Stop/Start was ignored in service mode (service_run restarted the
children) - all start/stop now goes through runtime_ctl.ps1
- logon tray task and SYSTEM service task were killed after 72h (default
ExecutionTimeLimit); autostart was registered for the elevating account
and opened a browser on every logon
- uninstall left the NetXTray/NetXUpdate tasks behind
- silent auto-update killed the tray without restarting it
- repair_venv.ps1 was never staged into the release
- wildcard NETX_HOST (0.0.0.0) broke health checks
- ICO frames were PNG, which System.Drawing decodes as noise; icons now
use the current brand mark
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
theme.css squashes every animation to 0.01ms x1 when the OS asks for reduced
motion, so the login earth jumped once and snapped back (position stuck at 0%).
The login stylesheet already intends the ambient spin to stay; restore it with a
class selector that outranks the universal rule.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Interactive Setup asks update vs reinstall; elevated install relinks .venv so tray start works under Program Files.
Co-authored-by: Cursor <cursoragent@cursor.com>
Use pwsh -File with UTF-8 BOM scripts, and default Forgejo uploads to the public domain when LAN IP is unreachable.
Co-authored-by: Cursor <cursoragent@cursor.com>
Offline Setup and check_update now upgrade in place without the database wizard; zip packages are no longer published.
Co-authored-by: Cursor <cursoragent@cursor.com>
Poll external processes instead of Start-Process -Wait on the UI thread, and restart the tray after a successful update.
Co-authored-by: Cursor <cursoragent@cursor.com>
Apply updates as Administrator for Program Files, copy portable python with .venv, and wait for tray apply to finish.
Co-authored-by: Cursor <cursoragent@cursor.com>
Allow non-admin reconfigure of .env, harden setup/tray flows, and refresh the context menu with hover selection.
Co-authored-by: Cursor <cursoragent@cursor.com>
0.4.5 venv pointed at the build machine user profile; other PCs failed to start API.
Bundle stdlib under python/runtime, repair pyvenv.cfg, and health-check before start.
Co-authored-by: Cursor <cursoragent@cursor.com>
Selecting built-in PostgreSQL now always applies setup_first_run after files copy;
failed config shows a clear error instead of a misleading first-time tip.
Co-authored-by: Cursor <cursoragent@cursor.com>
Choose bundled or external PostgreSQL in the Setup wizard with connection
validation; optional NETX_CREDENTIAL_SECRET_KEY; single desktop shortcut;
faster uninstall and tray startup for offline Windows packages.
Co-authored-by: Cursor <cursoragent@cursor.com>
Chinese packaging scripts without BOM were misread as ANSI and failed at first-run.
Document that bundled Python 3.13+ needs Server 2016+ / Win10+.
Co-authored-by: Cursor <cursoragent@cursor.com>
Ship installable releases via zip/Inno Setup with optional bundled Postgres, API-hosted SPA, manual update path, and CI workflow for future tag builds.
Co-authored-by: Cursor <cursoragent@cursor.com>