Add browser chrome, packaging pipeline, and fix UTF-8 crash in calibration
Sanyam0385
1b83c9c
Browser chrome: top toolbar (back/forward/reload/home/address bar) and left
sidebar (Calibrate/Validate/Start Session) replace the old status pill, so
the window reads as a normal browser. Page content is pushed below/right of
the chrome via forced body padding instead of being hidden underneath it.
Session overlays now re-inject on navigation so a tracking session survives
back/forward. Added an in-app "update available" notice backed by
version.json.
Packaging: calibrate.py refactored into main() so it can run as
`--mode calibrate` inside a frozen build instead of shelling out to a
missing .py file; RESOURCE_DIR/DATA_DIR split (bundled assets vs. per-user
writable data) added to all three entry points. New packaging/ with a
PyInstaller onedir spec and an Inno Setup installer script (per-user install,
fixed AppId for in-place upgrades).
Fix: Windows consoles default to cp1252, so a single unicode character in a
print() (calibrate.py's low-sample "⚠" warning) crashed the whole
calibr…