Skip to content

fix(workbuddy): repair product-specific installation and repeat setup - #98

Merged
gofenix merged 1 commit into
mainfrom
fix/workbuddy-install-compat
Sep 9, 2026
Merged

fix(workbuddy): repair product-specific installation and repeat setup#98
gofenix merged 1 commit into
mainfrom
fix/workbuddy-install-compat

Conversation

@HarveySang

Copy link
Copy Markdown
Collaborator

WorkBuddy installations could write into the wrong product directory and miss a running Electron host, leaving OpenGUI unavailable or lifecycle Hooks ineffective. The installer now reads the selected application metadata, checks the 5.5.3 minimum and Hook declarations before downloads, and detects the application and its helpers before configuration writes.

Host configuration and runtime state remain separate. Each configuration root has its own installation receipt; explicit legacy repair restores only unchanged installer-owned files. Unknown same-name MCP entries are preserved. Verified downloads and installed dependencies are reused, and unchanged configuration returns ALREADY_CONFIGURED. This prepares the independent WorkBuddy 0.2.1 repair candidate and updates installation guidance.

Validation:

  • 121 tests, TypeScript build, package validation and release assets passed.
  • Preflight regressions cover product/custom directories, old versions, Electron/helper processes, unknown products and missing Hook declarations.
  • Configuration tests cover legacy repair, independent instance receipts, idempotence, foreign MCP conflicts and symlink protection.
  • Real packaged stdio startup, 11-tool registration and isolated read-only ADB discovery passed with fresh and offline caches.
  • Full macOS installer fixture: cold install 63.2 s; repeat install 1.3 s; package directory reused.
  • The previous installer (version constant normalized for the fixture) failed the running-Electron regression by incorrectly succeeding.
  • Direct read-back of the locally installed configuration connected to OpenGUI 0.2.1, registered 11 tools, and discovered one connected device without operating it.
  • Local WorkBuddy 5.5.3 installation succeeded; real running-host refusal verified; local repeat install approximately 3 s.

GitHub push CI passed on Node 22/24 and packaged startup on macOS, Linux and Windows: https://github.com/Core-Mate/OpenGUI/actions/runs/34228661977

Remaining acceptance: desktop task submission stayed disabled during UI validation, so host-level tool invocation, Hook continuation/stop and phone acceptance are not claimed. Owen's overseas build still needs retesting. Stable-release readiness flags remain false; no Release is published by this PR.

The previous installer assumed one configuration root and the WorkBuddy process name; its tests mocked pgrep and could not catch Electron or overseas builds. Add host preflight and real installer regression fixtures, isolate configuration receipts, and reuse verified packages. Prepare 0.2.1 as a repair candidate without asserting pending desktop or device acceptance.
@gofenix
gofenix marked this pull request as ready for review September 9, 2026 15:36
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 9, 2026

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 Completed 2026-09-09T15:43:26.701748Z d87f254 Draft marked ready
ℹ️ 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.

@gofenix
gofenix merged commit a64329e into main Sep 9, 2026
18 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d87f25478b

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

### Roll back

Finish tasks, close WorkBuddy's OpenGUI mirrors and quit WorkBuddy. `~/.workbuddy/opengui/local-install.json` records each affected file and its backup. Restore the previous MCP and Hook configuration, Skill, and previous installation metadata if present, then reopen WorkBuddy. A `null` backup means that file did not exist before installation; remove only this installation's entries if other settings have since been added. Preserve subsequent unrelated edits, old packages and caches. Never reset the entire WorkBuddy configuration or touch DSH/Codex state.
Finish tasks, close WorkBuddy's OpenGUI mirrors and quit WorkBuddy. `~/.workbuddy/opengui/local-install-<configuration-id>.json` records each affected file and its backup. Restore the previous MCP and Hook configuration, Skill, and previous installation metadata if present, then reopen WorkBuddy. A `null` backup means that file did not exist before installation; remove only this installation's entries if other settings have since been added. Preserve subsequent unrelated edits, old packages and caches. Never reset the entire WorkBuddy configuration or touch DSH/Codex state.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update the remaining rollback receipt path

For a fresh 0.2.1 installation, install-local.mjs writes only local-install-<configuration-id>.json, but the local-install instructions later in this README (line 93) still direct maintainers to opengui/local-install.json. That legacy file will not exist for a fresh install, so the documented rollback cannot locate the recorded backups; update the local workflow to use the per-configuration receipt or the installState path printed by the installer. CLAUDE.mdL239-L242

Useful? React with 👍 / 👎.

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.

2 participants