Skip to content

Add local browser mode and verified installation paths - #67

Merged
MinorGlitch merged 49 commits into
masterfrom
codex/install-and-distribution
Oct 24, 2026
Merged

MinorGlitch merged 49 commits into
masterfrom
codex/install-and-distribution

Conversation

@MinorGlitch

@MinorGlitch MinorGlitch commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Users can install, upgrade, and remove Ethernity using verified release artifacts, and optionally run the existing terminal app in a local browser with ethernity --web. The terminal remains the default. This PR also improves recovery text entry and reduces CI time while retaining the platform tests and coverage gates.

  • Add a Linux installer and repair the Windows installer with required checksums, staged replacement, rollback, legacy-install handling, and uninstall support. Reuse the existing archives, source distribution, wheel, and Homebrew bottles.
  • Prepare PyPI trusted publishing and WinGet metadata from verified release files. Keep Linux x64/ARM64, macOS Apple silicon, and Windows x64 native builds; remove Intel Mac archives and bottles.
  • Add browser mode with local assets, a loopback-only server, session authentication, origin checks, and cleanup when tabs disconnect or the server stops. Reuse the same Textual application and improve scrolling and input handling.
  • Simplify navigation and result screens, separate folder expansion from file selection, fix narrow layouts, and reset the backup flow after a successful summary closes. Add numbered, highlighted recovery text entry with reversible whitespace cleanup to the app and standalone kit.
  • Load PDF fonts only when used and avoid an unnecessary raster copy, with checks for embedded fonts, exact pixels, transparency, and image ownership.
  • Run separate core, rendering, and two balanced UI groups on every platform. Combine all four Linux coverage files without rerunning tests. Reuse kit and packaging outputs, cache Homebrew dependencies, and schedule source staging before native builds to reduce runner contention.
  • Update installation guidance, capacity examples, and the README backup demo. Keep the deferred publication steps explicit.

Validation: CI run 40085452016 passed all 33 jobs on implementation commit d69b09da494c63f7cd5a2a5cf32d89faf8bc497b. This includes Linux, macOS, Windows, both UI groups on each platform, end-to-end recovery, visual checks, both recovery kit variants in Chromium and WebKit, dependency audits, native packages, the Python distribution, and both Homebrew platforms. Application coverage is 88% against the 85% gate; inspector coverage is 49% against 45%.

Installer checks cover installation, failed upgrades, rollback, replacement, recovery, and uninstall. Homebrew also upgrades a real installed 0.0.1 fixture to the release bottle and checks obsolete-command removal. That fixture exercises the upgrade mechanism; format compatibility remains covered separately. The final repository change only corrects the documented test-group count from three to four.

PyPI account and trusted-publisher setup remains pending at the owner's request. WinGet community submission requires public release assets. Merging this PR does not publish a release.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review 🔄 Running since 2026-10-22T13:16:05.531899Z c8d76ce PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@MinorGlitch
MinorGlitch changed the base branch from dev/recovery-state-cleanup to master October 22, 2026 15:01
Retain separate platform runs, file-level scheduling, full test selection and coverage gates. Use logical CPU counts capped at four so hosted Linux and Windows runners can use four workers and macOS can use three. The same 532-test local sample improves from 208s to 139s with lazy font loading.
Build the UI and recovery-worker test pages once through esbuild's API.
Run at most two browser engines concurrently using the existing Node test
runner, retaining both kit variants and every recovery/scanner check per
engine. Wait for siblings and close browsers before removing shared files.
Remove the unused subprocess build helper.

Local Chromium/WebKit check: 95.78s -> 64.10s (33% faster).
Validation: 311 Node tests, Chromium/Firefox/WebKit browser checks, kit lint
and format. A deliberately unavailable WebKit still reports failure while
Chromium completes and shared fixtures are cleaned up.
Traverse Button instances directly instead of evaluating a CSS selector
against every widget after each interaction. Preserve all message, refresh,
animation, resize and button-feedback synchronization. Cover nested button
subclasses and hidden controls retaining their active class.

Python 3.14 with coverage and four workers: 204.37s -> 193.57s (5% faster),
with all 394 original tests plus one regression test and 24 subtests passing.
The profiled readiness check performed the same 254 scans, taking 0.169s
instead of 2.925s. Platform jobs and coverage gates are unchanged.
Use pytest-split with recorded timings to distribute every UI test exactly once per platform. Require coverage from both Linux groups before applying the existing gates; preserve all assertions and synchronization behavior.
Let Homebrew request its Linux and macOS runners before native builds consume the remaining hosted-runner capacity. Preserve every platform, UI group, packaging lifecycle check, and coverage gate.
@MinorGlitch MinorGlitch changed the title Improve installation and reuse verified release artifacts Add local browser mode and verified installation paths Oct 24, 2026
@MinorGlitch
MinorGlitch merged commit 03dba8b into master Oct 24, 2026
33 checks passed
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