Skip to content
Skills Library
Programming · Automation

rebuild-wavefunction

/rebuild-wavefunction

Rebuild and relaunch the local Wavefunction macOS app with its bundled Python sidecar while preserving conversations, projects, skills, and credentials. Use when the user requests an app rebuild or restart after changes.

Licence
MIT
Last repository change
07.11.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 07.11.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What it does and when to use it

Rebuild and relaunch the local Wavefunction macOS app with its bundled Python sidecar while preserving conversations, projects, skills, and credentials. Use when the user requests an app rebuild or restart after changes.

Original author description

Rebuild and relaunch the local Wavefunction macOS app with its bundled Python sidecar while preserving conversations, projects, skills, and credentials. Use when the user requests an app rebuild or restart after changes.

How it works

  1. Identify the checkout and app
  2. Close an existing Wavefunction app
  3. Build and package
  4. Verify and launch
Original SKILL.md headings · 50 lines, 736 words
SKILL.md preview
---
name: rebuild-wavefunction
description: Rebuild and relaunch the local Wavefunction macOS app with its bundled Python sidecar while preserving conversations, projects, skills, and credentials. Use when the user requests an app rebuild or restart after changes.
---

# Rebuild and relaunch Wavefunction

Wavefunction uses a self-contained frozen Python sidecar and a signed app/ZIP.

## Identify the checkout and app

- Check the branch and working tree. Build the requested checkout, including intended local changes; preserve unrelated edits.
- Follow the requested app path. Otherwise identify an already-running Wavefunction executable with `ps -axo pid=,comm=` and check `/Applications/Wavefunction.app` and `~/Applications/Wavefunction.app`. If no installation exists, launch the built bundle from this checkout.
- Never print full backend arguments: they contain a per-launch bearer token. Keep any token needed for a read-only API check in memory.
- Preserve `~/Library/Application Support/app.harness.coding`, including conversation/checkpoint databases, the skills library, files, settings, and credentials. Do not reset it or read credential contents for a rebuild.

For a launch-only request, use the existing app when it contains the requested changes. Do not rebuild solely because a skill or other guidance changed, unless the user asks to rebuild.

## Close an existing Wavefunction app

- Check for active work immediately before quitting. Prefer the app's authenticated `/api/activity` endpoint when session access is available; otherwise read only run statuses from its saved history. Queued, running, or waiting tasks count as active; an open, idle chat does not. If work is active, or the status cannot be established, ask the user before quitting.
- When idle, a rebuild/restart request authorizes quitting without another confirmation. Use the normal Quit action through native app controls, or AppleScript (`osascript`) targeting the exact running Wavefunction bundle when those controls are unavailable. Preserve the app's own active-work confirmation in case a task starts after the check; do not dismiss that warning without user approval.
- Wait for the app and its sidecar to exit before replacing the bundle. If normal Quit does not complete, report the blocker; do not force-kill the app or bypass an unresolved dialog. Honor cancellation, and leave unrelated processes untouched.

## Build and package

From the repository root, run:

```sh
npm run desktop:build
```

This freezes the Python backend, bundles the built-in skills and computer tools, builds the React/Tauri desktop, then seals the complete app with an ad-hoc signature and creates the ZIP/checksum. Outputs:

- `src-tauri/target/release/bundle/macos/Wavefunction.app`
- `dist/desktop/Wavefunction-0.1.0-macos-<arch>.zip`
- The ZIP's adjacent `.sha256` file

Use `npm run setup` only when development dependencies are missing. Rust and Xcode Command Line Tools are also needed to build. If Cargo is absent from PATH but installed in `~/.cargo/bin`, add that directory for the build command. Keep large build logs in a task-specific temporary file. Stop on failure and preserve any existing installation.

Do not provision a managed runtime: the Wavefunction app contains Python, its libraries, and ripgrep. Developer ID signing, notarization, and automatic updates are separate work; do not claim an ad-hoc build has them.

If the user requested installation or updating an existing installed Wavefunction, copy the successful signed bundle to the selected path while it is closed, then verify the copied signature. Otherwise launch the built bundle in place; creating an installation is optional.

## Verify and launch

- Verify the app with `codesign --verify --deep --strict <app-path>`, check the ZIP with `unzip -tq <zip-path>`, and run `shasum -a 256 -c <zip-name>.sha256` from `dist/desktop`.
- For a synthetic native regression check, `uv run --no-sync --project backend python scripts/verify-native.py --app <app-path>` verifies the frozen tools and restart persistence and cleans up afterward. It refuses existing Wavefunction data. Never remove or rename user data to make it run; use a disposable OS account when needed.
- Launch the requested signed app through the platform's application launcher. Confirm its executable and bundled sidecar remain running, and poll its own loopback `/health` for `status: healthy` and the Wavefunction data path. Use read-only `/api/coding/workspace` and `/api/skills` checks when session access is available; do not submit a coding task as a launch check.
- Inspect the native window when native UI tools are available. Report visual verification as unavailable when they are not; a launch request alone does not prove startup succeeded.
- For existing data, compare read-only project/thread/skill IDs or counts before and after. Do not reset the workspace or replace user-authored skills.
- Clean up synthetic test processes, workspaces, disposable build caches, and temporary verification resources. Keep the requested app running for the user, along with source, build deliverables, and useful evidence.
- Report the launched app path, build/startup checks, cleanup outcome, and material limitations. Copying or rebuilding does not itself authorize a PR merge, release upload, or repository visibility change.

Versions

The database has no other skills named rebuild-wavefunction.

Database snapshot: 13.11.2026 · package version 0b3bbf02d082 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100package-wavefunction-install-kit
    Build and verify a shareable Wavefunction macOS app ZIP and checksum using its bundled Python runtime. Use when the user asks for an install kit, test kit, or app archive for another Mac.
  • 100release-wavefunction-dmg
    Build, verify and hand over a Developer ID-signed, notarized Wavefunction DMG on this Mac with npm run release:local, then relaunch the local app. Use when the user asks for a new DMG, a signed or notarized build, or a release build to install on another Mac or send to someone.
  • 100macos-python-app-launch-fix
    排查并修复 macOS 上 Python 打包的 .app「双击没反应 / 打不开 / 闪退」。当用户说「点了打不开」「双击没反应」「app 闪退」,或 Python 应用在本地能跑但打包成 .app 后双击失败时使用。也适用于给脚本型 .app 增加可观测启动日志、ad-hoc 签名、第三方依赖可选化。
  • 92rebuild-review
    Run a rebuild review on a target project path. Use when the user asks to rebuild-review a project.
  • 100coograph-rebuild-graph
    Rebuild or update the code-graph database. Use when the user wants to refresh the code graph, e.g. after major changes or when graph seems stale.
  • 86cctop-restart
    Restart cctop for local development and testing. Use when the user asks to restart, relaunch, run, or prepare the cctop app locally; ensures the current cctop-hook is installed before the menubar app is relaunched and verified.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.