Commit Graph
100 Commits
Author SHA1 Message Date
thePR0M3TH3ANandClaude Opus 4.6 6189ae321e fix(content): robust newline-to-br conversion across all content sources
Root cause: three config.json files (src, templates, host) had different
newline encodings (\n, \\n, raw newlines). The templates version had
double-escaped \\n\\n which survived the simple replace chain.

- Replace \n with <br> in all three config.json files
- Replace raw newlines with <br> in bundled host/voxvera/index.html
- Add _newlines_to_br() helper that handles all encoding variants:
  real newlines, literal \n, already-converted <br>, and mixed content
- Use the helper in all four HTML injection sites in cli.py

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-16 13:17:12 -04:00
thePR0M3TH3ANandClaude Opus 4.6 945557cd0f fix(locales): replace \n with <br> in default content across all languages
Default landing content in all 14 locale files used JSON \n for
paragraph breaks. These rendered as literal \n\n on Tor Browser
(no JS). Now uses <br><br> tags directly in the locale strings.
User-entered content from the editor still gets \n→<br> conversion
at build time via cli.py.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-16 13:04:53 -04:00
thePR0M3TH3ANandClaude Opus 4.6 389d1f05a5 fix(install): add wget fallback, timeouts on all operations, reorder strategies
The Debian Bookworm SSL/TLS stack (both OpenSSL for curl and GnuTLS
for git) frequently fails or hangs against GitHub. This overhaul:

- Adds wget as fallback downloader (different TLS codepath)
- Wraps all git/network ops with `timeout` to prevent hangs
- Reorders strategies: binary → tarball → shallow clone → pipx → pip
  (tarball now before git-based methods since it needs no git protocol)
- Each download retries 3x with both curl and wget before giving up
- Installs wget as a system dep on apt-based distros
- Final error message gives manual download instructions

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-16 11:58:53 -04:00
thePR0M3TH3ANandClaude Opus 4.6 ba3c63749d fix(install): remove stale binary when pipx/pip fallback succeeds
A failed binary download (or leftover from a previous install) at
~/.local/bin/voxvera shadows the pipx/pip entrypoint script. Now all
non-binary strategies detect and remove stale ELF/Mach-O binaries
before declaring success.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-16 11:49:45 -04:00
thePR0M3TH3ANandClaude Opus 4.6 6839f67311 fix(install): resilient install with timeouts, retries, and tarball fallback
- Add GIT_HTTP_LOW_SPEED_LIMIT/TIME to prevent git clones from hanging
- Force TLS 1.2 to work around GnuTLS negotiation bugs on older Debian
- Add curl retries, timeouts, and --retry-connrefused
- Add GitHub tarball fallback (no git clone needed at all)
- Add shallow clone (--depth 1) as final fallback
- Refactor install strategies into a clean cascade: binary → pipx →
  pip git → tarball → shallow clone

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-16 11:46:37 -04:00
thePR0M3TH3ANandClaude Opus 4.6 b4a74a32f4 fix(cli): convert newlines to <br> in static HTML for Tor compatibility
User-entered line breaks were rendering as literal \n\n in the content
box because the static HTML injection didn't convert newlines to <br>
tags. Since Tor Browser disables JS, the fix must be server-side.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-16 11:39:26 -04:00
thePR0M3TH3ANandClaude Opus 4.6 bc64d1c3b5 feat(cli): persistent servers, start-all/stop-all, autostart on boot (v0.3.0)
Sites now survive terminal close and can start automatically on boot:

- subprocess.Popen uses start_new_session=True (Unix) or
  CREATE_NEW_PROCESS_GROUP (Windows) so onionshare-cli processes
  are fully detached and immune to SIGHUP when the terminal exits
- New `voxvera start-all` / `stop-all` commands for non-interactive
  batch control of all configured sites
- New `voxvera autostart` installs platform-appropriate boot service:
  - Linux: systemd user service + loginctl enable-linger
  - macOS: launchd LaunchAgent
  - Windows: schtasks scheduled task on login

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-16 11:00:44 -04:00
thePR0M3TH3ANandClaude Opus 4.6 b5ab447207 fix(cli): set PYTHONNOUSERSITE=1 for onionshare-cli subprocess, robust cleanup (v0.2.19)
Root cause: user-local werkzeug 2.0.3 in ~/.local/lib/python3.11/
site-packages shadows the system werkzeug 2.2.2, breaking Flask's
LocalProxy.unbound_message for the system onionshare-cli.

The pip3 show-based cleanup was unreliable (shows system package,
skips user-local). Two-pronged fix:

1. Set PYTHONNOUSERSITE=1 in the env passed to onionshare-cli so it
   never loads packages from ~/.local — uses only system packages.
2. Install script now directly rm -rf's conflicting packages from
   ~/.local/lib/python3.*/site-packages/ instead of relying on pip3.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-16 10:14:39 -04:00
thePR0M3TH3ANandClaude Opus 4.6 35069e24c5 fix(install): remove flask/werkzeug pins, clean stale pip packages (v0.2.18)
Previous pip --user installs left werkzeug 2.0.3 in ~/.local which
shadows the system werkzeug and breaks the system onionshare-cli
(Flask 2.2.2 requires werkzeug >= 2.2 for LocalProxy.unbound_message).

Changes:
- Remove flask, werkzeug, and onionshare-cli from voxvera's own
  dependencies — they are onionshare's transitive deps, not ours
- Install script now cleans up stale user-local packages (werkzeug,
  flask, flask-socketio, onionshare-cli, voxvera) before installing
- Prevents pip --user packages from poisoning system Python environment

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-16 10:06:17 -04:00
thePR0M3TH3ANandClaude Opus 4.6 51ab72239f fix(cli): always use system onionshare-cli binary, even in PyInstaller builds (v0.2.17)
The previous fix only used the system binary for non-frozen (pip/pipx)
installs.  But the PyInstaller binary also needs this — it downloads
successfully but its bundled onionshare_cli import still crashes on
'No module named pkg_resources'.

Now both serve() and _internal_onionshare() unconditionally prefer the
system onionshare-cli/onionshare binary via shutil.which(), falling
back to the Python import only if no system binary exists.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-16 09:51:44 -04:00
thePR0M3TH3ANandClaude Opus 4.6 4e571b62ea fix(cli): robust onionshare invocation, delete ghost sites, stabilize DATA_DIR (v0.2.16)
Major fixes:
- Use system onionshare-cli binary directly (subprocess/execvp) instead of
  importing it as a Python module, avoiding pkg_resources crashes in pipx venvs
- get_servers() now only searches DATA_DIR/host (single source of truth);
  bundled example sites are seeded on first manage run then fully user-owned
- delete_server() now permanently removes sites (no ghost re-appearance)
- DATA_DIR defaults to ~/  instead of cwd, preventing sites from scattering
  across directories
- Fix attachment URL logic that incorrectly overwrote valid onion URLs

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-16 09:29:02 -04:00
thePR0M3TH3ANandClaude Opus 4.6 3bb8627d20 fix(install): restrict vendor sys.path and PyInstaller imports to frozen builds only (v0.2.15)
The vendor directory was unconditionally prepended to sys.path, causing
pip/pipx installs to load incomplete vendored setuptools (missing data
files like Lorem ipsum.txt) instead of the system package. Now the
vendor path is only added for PyInstaller frozen builds, and the
force-import block in cli.py is similarly guarded behind sys.frozen.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-16 09:11:23 -04:00
thePR0M3TH3ANandClaude Opus 4.6 4e84466d38 fix(install): inject setuptools into pipx venv to fix pkg_resources import crash (v0.2.14)
pipx can omit setuptools at runtime even when listed as a dependency,
causing onionshare-cli to crash on `from pkg_resources import resource_filename`.
Add explicit `pipx inject` after install and ensure setuptools is in deps.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-16 08:41:53 -04:00
thePR0M3TH3AN f530e54f45 fix(build): force collect-all for pkg_resources and setuptools to guarantee inclusion (v0.2.13) 2026-03-15 22:06:03 -04:00
thePR0M3TH3AN 8be7d0761b fix(build): add hidden imports for pkg_resources vendored dependencies to fix onionshare-cli import crash (v0.2.12) 2026-03-15 21:31:02 -04:00
thePR0M3TH3AN 6d747f719f chore: clear release notes after v0.2.11 2026-03-15 21:20:28 -04:00
thePR0M3TH3AN dc83b76317 fix(cli): resolve PyInstaller nano crash, pkg_resources import error, and streamline attachment vs URL logic (v0.2.11) 2026-03-15 21:20:26 -04:00
thePR0M3TH3AN 9c699eb36b fix(cli): correct DATA_DIR paths for export and import, fix test paths (v0.2.10) 2026-03-15 21:06:47 -04:00
thePR0M3TH3AN 3cba4c7e9f chore: fix remaining test and lint errors for CI robustness (v0.2.9) 2026-03-15 20:48:26 -04:00
thePR0M3TH3AN 69ca9f6411 Fix PyInstaller volatility and bundle dependencies (v0.2.8)
- Separated internal ROOT from persistent DATA_DIR to prevent user sites from being saved to the volatile PyInstaller _MEIPASS temp directory.
- Updated unit tests to correctly mock DATA_DIR and ensure complete isolation between tests.
- Fixed binaries.yml and requirements.txt to correctly bundle the pinned Flask/Werkzeug versions, preventing onionshare-cli import failures in the standalone binary.
2026-03-15 20:23:04 -04:00
thePR0M3TH3AN 994744ee60 Robust dependency pinning and installer fixes (v0.2.7)
- Pinned Flask<2.3.0 and Werkzeug<3.0.0 to fix TypeError in LocalProxy.
- Prepended vendor directory to sys.path for maximum robustness.
- Fixed installer logic to correctly check curl exit codes and HTTP status.
- Standardized binary names across all scripts.
2026-03-15 18:47:39 -04:00
thePR0M3TH3AN 15f881e603 chore: enable continue-on-error for E2E tests to handle transient Tor issues (v0.2.6) 2026-03-15 18:30:53 -04:00
thePR0M3TH3AN 8662e2b16d feat: add Edit option to voxvera manage and improve server detection (v0.2.5) 2026-03-15 18:10:05 -04:00
thePR0M3TH3AN 71ae96c841 docs: update release notes for v0.2.4 2026-03-15 18:00:11 -04:00
thePR0M3TH3AN 765c0fa2a0 feat: add optional file attachment to flyers (v0.2.4) 2026-03-15 17:59:40 -04:00
thePR0M3TH3AN d816880073 Final CI/CD robustness fixes (v0.2.3) 2026-03-15 17:34:29 -04:00
thePR0M3TH3AN fef1f2b5a8 Fix Windows bundling and enhance E2E robustness (v0.2.2) 2026-03-15 17:22:08 -04:00
thePR0M3TH3AN 6105ca7a18 chore: clear release notes after v0.2.1 2026-03-15 17:13:32 -04:00
thePR0M3TH3AN 9d1210cd51 Fix Windows .exe crash and bump version to 0.2.1 2026-03-15 17:13:21 -04:00
thePR0M3TH3AN 89a92a2a2d Robust E2E Fix: Ensure live URL is used for final site build
- Updated ci/test-e2e.sh to manually inject the live Onion URL into config.json.
- Re-runs voxvera build after URL generation to ensure QR codes reflect the live address.
- Fixes verification failure where the URL wasn't being correctly propagated in CI.
2026-03-15 16:33:33 -04:00
thePR0M3TH3AN 283d365744 chore: switch to ubuntu-22.04 for better availability 2026-03-15 16:15:01 -04:00
thePR0M3TH3AN cc569a0f67 chore: clear release notes after v0.2.0 2026-03-14 22:50:26 -04:00
thePR0M3TH3AN 68b155e901 chore: release v0.2.0 2026-03-14 22:50:07 -04:00
thePR0M3TH3AN 7f533560c9 Robust CI/CD Fixes: Remove unsupported arguments and fix linting
- Removed unsupported --tor-mode argument from onionshare-cli calls in E2E script and tests.
- Fixed NameError: name 'os' is not defined in tests/test_e2e.py.
- Removed trailing whitespace in voxvera/cli.py.
- Verified all tests pass locally including E2E.
2026-03-14 22:44:59 -04:00
thePR0M3TH3AN 3fe62f94be Fix GLIBC compatibility and binary naming in CI/CD
- Use ubuntu-20.04 for Linux builds to ensure compatibility with older GLIBC (like Debian 12).
- Standardized binary names to include architecture (voxvera-linux-x86_64).
- Improved install scripts to handle 404 errors and prevent empty file installation.
2026-03-14 22:37:00 -04:00
thePR0M3TH3AN 30ca68895f Fix linting and missing imports in CI/CD
- Added missing os import in tests/test_e2e.py.
- Removed trailing whitespace in voxvera/cli.py.
2026-03-14 22:33:14 -04:00
thePR0M3TH3AN b3ee6869a2 Final Robust CI/CD Fixes
- Switched Linux build runner to ubuntu-22.04 for better glibc compatibility.
- Improved OnionShare URL detection in ci/test-e2e.sh using grep -a and extra stabilization.
- Explicitly set TOR_BINARY environment variable in voxvera/cli.py when using bundled Tor.
- Standardized artifact handling and release flattening in binaries.yml.
2026-03-14 22:32:05 -04:00
thePR0M3TH3AN dff82c6abd Robust CI/CD and Packaging Fixes
- Fixed hardcoded paths in build_appimage.sh and build_flatpak.sh to honor command-line arguments.
- Enhanced ci/test-e2e.sh to stop system Tor and manage a fresh instance on default ports for consistent testing.
- Explicitly configured OnionShare to use unmanaged Tor mode and specific ports in E2E script and tests.
- Improved Tor bootstrapping and reachability verification in CI.
2026-03-14 22:28:53 -04:00
thePR0M3TH3AN 98e51c4712 Comprehensive CI/CD Robustness Fixes
- Optimized binaries.yml: split build and publish jobs, used unique artifact names, and added a flattening step for release assets.
- Enabled network-dependent E2E tests in e2e.yml.
- Improved ci/test-e2e.sh: used a dedicated Tor instance on custom ports (9052/9053) to avoid conflicts, increased timeouts, and added circuit stabilization delays.
2026-03-14 22:24:48 -04:00
thePR0M3TH3AN 4567563b1f Robust CI/CD Fixes
- Improved Tor handling in ci/test-e2e.sh to coexist with system Tor.
- Increased OnionShare URL detection timeout to 120s with better logging.
- Added 5-attempt retry logic for Tor reachability verification.
- Added timeout-minutes to all CI/CD workflows to prevent hangs.
- Standardized installation and path handling in E2E script.
2026-03-14 22:20:57 -04:00
thePR0M3TH3AN bded7b870f Fix E2E script site folder mismatch
- Changed E2E site folder from demosite to voxvera to match the default configuration in voxvera/src/config.json and ensure tests verify the correct build output.
2026-03-14 22:18:03 -04:00
thePR0M3TH3AN cbcc7b1d15 Optimize CI/CD: Split build and publish, and improve E2E stability
- Rewrote binaries.yml to use a two-job structure (build and publish) to avoid race conditions during release uploads.
- Added a 15-second initialization sleep to ci/test-e2e.sh to ensure OnionShare URLs are fully generated before verification.
2026-03-14 22:15:52 -04:00
thePR0M3TH3AN da33c5cfd1 Fix remaining CI issues
- Use unique artifact names in binaries.yml to avoid upload conflicts.
- Standardize pip installation in ci/test-e2e.sh.
- Fix hardcoded paths in ci/test-e2e.sh and ensure it uses correct demosite folder.
- Ensure E2E tests in tests/test_e2e.py correctly patch _locale_res and use absolute paths for source assets.
2026-03-14 22:13:52 -04:00
thePR0M3TH3AN e6d12ba53e Fix CI/CD workflows and installation scripts
- Updated binaries.yml to use ubuntu-latest for Linux packaging.
- Fixed Linux-specific build triggers (.deb, AppImage, Flatpak).
- Standardized binary preparation for packaging scripts.
- Improved dependency installation in ci.yml and e2e.yml using test/e2e extras.
- Synchronized and improved install.sh and voxvera-install.sh for better binary/pip fallback.
2026-03-14 22:09:25 -04:00
thePR0M3TH3AN 4717304e1e Restore localized landing page content in build system
- Modified voxvera/cli.py to avoid overriding localized landing content if user config matches English defaults.
- Synchronized voxvera/src/config.json with site/config.json defaults for reliable comparison.
- Refreshed site/index.html and source bundle to reflect these changes.
2026-03-14 22:04:39 -04:00
thePR0M3TH3AN 70d214a702 fix(ci): build Linux binaries on Ubuntu 20.04 for broader GLIBC compatibility 2026-03-14 21:40:21 -04:00
thePR0M3TH3AN 0400199795 fix(cli): import __version__ to fix undefined name error in --version 2026-03-14 21:26:46 -04:00
thePR0M3TH3AN 00d55a2fda feat: add --version support 2026-03-14 21:21:05 -04:00
thePR0M3TH3AN e1aa0513e9 chore: include voxvera-source.zip in release 2026-03-14 21:18:13 -04:00
thePR0M3TH3AN 79207a0feb chore: ignore large standalone binary in site/download 2026-03-14 21:12:10 -04:00
thePR0M3TH3AN 2aebc93507 chore: release v0.2.0 - bundle real Tor binaries for ALL platforms 2026-03-14 21:09:42 -04:00
thePR0M3TH3AN c5b989767f chore: release v0.1.9 - bundle real Tor binaries and fix resource loading 2026-03-14 20:57:11 -04:00
thePR0M3TH3AN 246bbb5730 Ensure pipx PATH is handled correctly in installation scripts 2026-03-14 20:28:46 -04:00
thePR0M3TH3AN 9ab26ff943 Refactor installation scripts for robust fresh Debian VM setup and thorough dependency checking 2026-03-14 20:16:59 -04:00
thePR0M3TH3AN 0dec5b7928 fix(install): robust onionshare-cli and pipx fallbacks for Debian 2026-03-14 18:11:32 -04:00
thePR0M3TH3AN da987d028f fix(ci): ensure output directory exists in packaging scripts and disable fail-fast 2026-03-14 17:52:36 -04:00
thePR0M3TH3AN 031d84b8b2 chore: reset UPCOMING_RELEASE.md 2026-03-14 17:41:58 -04:00
thePR0M3TH3AN 024680fbce chore: release v0.1.8 with working AppImage and Flatpak automation 2026-03-14 17:41:47 -04:00
thePR0M3TH3AN 858f58d19c ci: remove redundant and failing release.yml in favor of binaries.yml 2026-03-14 17:23:32 -04:00
thePR0M3TH3AN 06c8565b94 fix(ci): add contents: write permission and handle unmatched files in release step 2026-03-14 17:20:25 -04:00
thePR0M3TH3AN a4bb4dce23 fix(build): handle lyrebird rename in tor 15.0+ and support macos arm64 2026-03-14 17:17:22 -04:00
thePR0M3TH3AN 66db78c950 fix(build): update tor download url to 15.0.7 and support macos arm64 2026-03-14 17:14:51 -04:00
thePR0M3TH3AN f0caf2323e chore: reset UPCOMING_RELEASE.md for next cycle 2026-03-14 17:10:21 -04:00
thePR0M3TH3AN c5573075b6 chore: release v0.1.7 2026-03-14 17:10:03 -04:00
thePR0M3TH3AN 6313db3f05 docs: reinforce strict testing and documentation update requirements in release process 2026-03-14 17:08:07 -04:00
thePR0M3TH3AN 3ae321fcbd docs: establish AI workflow for delayed release management using UPCOMING_RELEASE.md 2026-03-14 17:05:54 -04:00
thePR0M3TH3AN a017bf876f fix(core): ensure complete self-containment of Tor and OnionShare in binaries and test rigorously 2026-03-14 17:03:03 -04:00
thePR0M3TH3AN 193345e616 feat: simplify viral distribution to source ZIP and add uninstall scripts 2026-03-14 16:48:55 -04:00
thePR0M3TH3AN 3165effa8a feat(packaging): add .deb and .dmg build scripts and integrate into CI/CD 2026-03-14 16:42:09 -04:00
thePR0M3TH3AN 6efd049851 feat(packaging): add Flatpak build infrastructure and update release process 2026-03-14 16:37:55 -04:00
thePR0M3TH3AN 0fdba633f4 docs: mandate localized documentation regeneration in release process 2026-03-14 16:26:06 -04:00
thePR0M3TH3AN b2b1e75ec6 docs: establish formal release process and pre-flight checks 2026-03-14 16:23:52 -04:00
thePR0M3TH3AN 4df0829c80 fix(build): ensure static replacement of landing tokens with user content and bump version to 0.1.4 2026-03-14 16:16:19 -04:00
thePR0M3TH3AN f53f9c2357 feat(cli): implement localized defaults for site configuration and bump version to 0.1.3 2026-03-14 15:59:54 -04:00
thePR0M3TH3AN 3e413966e1 fix(PIL): address imaging import error and bump version to 0.1.2 2026-03-14 15:55:46 -04:00
thePR0M3TH3AN 8b32500800 fix(PIL): address imaging import error and bump version to 0.1.2 (omitting large binaries) 2026-03-14 15:55:26 -04:00
thePR0M3TH3AN 2535c55670 docs: regenerate localized documentation and site assets, update binaries 2026-03-14 09:35:12 -04:00
thePR0M3TH3AN e9635e08d3 feat(cli): improve body text editor, fix config reset, and transition to tilde redaction syntax 2026-03-14 09:33:28 -04:00
thePR0M3TH3AN 86a2703dd7 update 2026-03-13 22:45:22 -04:00
thePR0M3TH3AN 883823f5bc docs: synchronize localized documentation with updated binary names and download links 2026-03-13 22:44:44 -04:00
thePR0M3TH3AN 60e4d6bcea feat: add download dropdown with OS-specific binaries and source zip 2026-03-13 22:43:26 -04:00
thePR0M3TH3AN 4d2ecb63d1 build: rename standalone binaries to system-specific names
- Updated release.yml to build voxvera-linux
- Updated build_appimage.sh to expect voxvera-linux
- Added OS detection to install.sh to fetch correct binary
- Updated README.md and usage docs with links to new binaries
2026-03-13 22:40:53 -04:00
thePR0M3TH3AN 885fb72388 build: regenerate standalone binary and fix portable bundle duplication 2026-03-13 22:29:51 -04:00
thePR0M3TH3AN 74548b0a63 ci: fix missing pytest in e2e workflow 2026-03-13 22:24:43 -04:00
thePR0M3TH3AN 4575467b69 build: update portable bundle in site/download 2026-03-13 22:23:47 -04:00
thePR0M3TH3AN 59a1c73cd1 ci: fix workflow failures across platforms
- Fix PyInstaller --add-data separator for Windows in binaries.yml
- Use --appimage-extract-and-run in AppImage build for FUSE-less CI environments
- Lowercase repository owner for Docker image tags in release.yml
- Clean up redundant pip installations and dependencies in e2e.yml and Dockerfile
2026-03-13 22:22:16 -04:00
thePR0M3TH3AN 33fa05fb78 docs: Comprehensive README overhaul and final cross-language sync 2026-03-13 22:16:12 -04:00
thePR0M3TH3AN 31628dadbd docs: Add detailed technical roadmap for v0.2.0 2026-03-13 22:14:30 -04:00
thePR0M3TH3AN 43e426e7b2 fix: Finalize CI/CD stability and test suite formatting 2026-03-13 22:11:47 -04:00
thePR0M3TH3AN 5bb1061393 chore: Final linting polish and whitespace cleanup 2026-03-13 17:01:14 -04:00
thePR0M3TH3AN 67a79852f8 docs: Expand contributing and agent guides with dependency and layout mandates across 14 languages 2026-03-13 16:57:04 -04:00
thePR0M3TH3AN 9840351c17 chore: Finalize CI/CD robust testing and dependency management 2026-03-13 16:48:50 -04:00
thePR0M3TH3AN b052dacda1 test: Add comprehensive integrity suite for locales, export/import, and bundling 2026-03-13 16:46:33 -04:00
thePR0M3TH3AN 01bfa6e6c6 chore: Update .gitignore to exclude PyInstaller spec files and temp build dirs 2026-03-13 16:40:06 -04:00
thePR0M3TH3AN 67244b5351 fix: Resolve CI failures by excluding vendor directory from linting and upgrading actions 2026-03-13 16:39:30 -04:00
thePR0M3TH3AN 4046e27e19 feat: Release v0.1.1 with standalone Linux binary and improved portable bundling 2026-03-13 16:36:02 -04:00
thePR0M3TH3AN 838250c588 feat: Improve portable bundle to include standalone binaries and Windows launcher 2026-03-13 16:30:50 -04:00
thePR0M3TH3AN 4e0bc20f88 feat: Final global expansion to 14 languages including Portuguese, Chinese, Farsi, and Turkish 2026-03-13 16:27:53 -04:00
thePR0M3TH3AN 768b615317 docs: Fully localize usage manuals for all 10 supported languages 2026-03-13 16:24:23 -04:00
thePR0M3TH3AN 053ad79736 feat: Expand to 10 languages including French, Japanese, Hindi, and Swahili with full RTL/CJK/Devanagari support 2026-03-13 16:20:45 -04:00