Skip to content

Update-path fixes + docs sync for 0.5.1 - #40

Merged
korjwl1 merged 6 commits into
mainfrom
agent/linux-support-testing
Aug 11, 2026
Merged

Update-path fixes + docs sync for 0.5.1#40
korjwl1 merged 6 commits into
mainfrom
agent/linux-support-testing

Conversation

@korjwl1

@korjwl1 korjwl1 commented Aug 11, 2026

Copy link
Copy Markdown
Owner

Release PR for 0.5.1 (user-directed). Contains everything on
agent/linux-support-testing since the 0.5.0 snapshot:

Update path (issue #38)

  • 'Update Now' can no longer succeed silently (cd9a174): after brew upgrade
    exits 0, the installed bundle's CFBundleShortVersionString is verified against
    the target release — a skip/no-op now fails loudly instead of reporting success.
    Progress phases (repository refresh / installing) stream to the banner via
    update_progress events, and failures render inline in the banner and the
    About panel instead of a toast hidden under the modal.
  • Homebrew 6 tap-trust gate (a0c4a95): an untrusted tap refusal triggers
    brew trust korjwl1/tap (scoped to exactly our tap) and one retry;
    HOMEBREW_NO_AUTO_UPDATE=1 skips the redundant implicit re-update.

Docs

  • READMEs (en/ko): Linux install (DEB) + platform badge, tested-coverage matrix
    (what's actually exercised per OS/link type), CLI start/stop/--json/
    install-skills, wireguard-go date corrected, SignPath attribution restored.
  • DESIGN.md: helper lifetime (RunAtLoad=false / crash-only KeepAlive), pf anchor
    com.apple/wireguide, IPC table completed, update-flow verification documented.
  • CHANGELOG: 0.5.0 entry synced from main; Unreleased section for the above fixes.
  • CONTRIBUTING: 3-OS dev hosts, current project structure, CI-matrix checklist.
  • Dropped the pre-implementation planning doc (git history keeps it).

🤖 Generated with Claude Code

korjwl1 and others added 6 commits August 11, 2026 00:49
…tall, show phases, surface errors inline (Refs #38)

Three holes made the button untrustworthy:
- Success was defined as 'brew exited 0'. Every skip/no-op path exits 0,
  so RunUpdate reported success while the bundle never changed. Now: if
  brew returns without the cask postflight having killed us (a real
  install kills this process first), read the installed bundle's version
  and fail loudly when it isn't the target.
- Zero feedback for the whole run — the tap refresh alone was observed
  taking 75 s with a static 'Updating…' label. RunUpdate now emits
  update_progress (refresh/install) and the banner + About show the phase.
- Failures surfaced only as a toast, which renders under the Settings
  modal. handleUpdate rethrows; the banner and About render the error
  inline next to the button that failed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…pdate (Refs #38)

Homebrew 6 refuses to load casks from untrusted third-party taps —
interactively it prompts, but our TTY-less subprocess just gets the
error. On 'untrusted tap' failure, trust exactly our own tap and retry
once: the user installed from this tap and clicked Update Now, which is
the consent that prompt exists to collect. Also HOMEBREW_NO_AUTO_UPDATE
on the upgrade step — we already ran brew update ourselves.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- README (en/ko): Linux graduates into the platform badge, install
  section (DEB), tested-platforms line and QA note; CLI section gains
  ctl start/stop, --json, install-skills; wireguard-go date corrected
  to the May 2026 build (stale '57 commits ahead of May 2025' claim
  dropped); English README regains the SignPath attribution that
  SIGNING-POLICY.md promises it displays.
- CHANGELOG: sync the 0.5.0 entry from main onto this branch; add an
  Unreleased section for the update-path fixes that live only here
  (install verification + progress + inline errors, Homebrew 6
  tap-trust retry, cask auto_updates removal).
- CONTRIBUTING: all three OSes are dev hosts now; project structure
  lists internal/{app,wifi,cli,update}; PR checklist points at the
  3-OS CI matrix instead of 'test on Apple Silicon'.
- DESIGN.md: helper lifetime matches the RunAtLoad=false /
  crash-only-KeepAlive model; pf anchor spelled com.apple/wireguide
  (slash) as the code requires; IPC table gains Helper.RequestQuit,
  Automation.Preview, event.settings_changed, event.quit and the
  Windows named-pipe SID verification; update flow documents
  --greedy + post-install verification + tap-trust retry.
- wireguard-app.md: marked as the historical pre-implementation plan
  with a pointer to DESIGN.md/README.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
macOS 26.4/Apple Silicon is verified on both Ethernet and Wi-Fi;
Windows 11 only on a wired desktop (Wi-Fi paths untested); Linux on
Raspberry Pi OS Lite over Wi-Fi (wired untested). Calls out that the
gaps mostly affect SSID automation / handover / wired fingerprinting,
and asks users who hit errors there to open an issue.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… (Refs #35)

The initial project plan (docs/wireguard-app.md) predates the
implementation and no longer matches it; rather than maintaining a
'historical document' banner, remove it. Anyone curious can read it at
any pre-removal commit. Current architecture lives in docs/DESIGN.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@korjwl1
korjwl1 merged commit 1022c16 into main Aug 11, 2026
3 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