feat: v0.0.1-beta.4 — Local dev, clone, zero-install Windows#2
Merged
Conversation
- Local dev: create, clone, start, stop, push, pull, list, delete - Clone flow: full site clone from InstaWP cloud (files + MySQL→SQLite DB) - Background mode: --background flag with PID tracking and local stop - Teams: client-side team switch with team_id injection on all API calls - Sites list: 50 per page default, --all flag, pagination hints - Site resolver: 10-minute cache for name→ID lookups - Rsync: --itemize-changes (only shows changed files) - Auto-login: finds first admin user, works with cloned sites - AST SQLite driver: WP_SQLITE_AST_DRIVER=true for WooCommerce compat - Vendor: mysql2sqlite (MIT, dumblob/mysql2sqlite) for DB conversion - Terminal: stty sane after Playground exits Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ments
- Windows: fix ssh-keygen (remove /bin/sh, yes pipe), use where instead of which
- Windows: skip stty sane, platform-specific rsync install messages
- exec/wp: fix --api flag being swallowed by passThroughOptions
- sites php: view and update PHP version/settings via PATCH endpoint
- sites update: update site label, description, expiration
- create: add --wp flag for WordPress version selection
- login: show user name and team after successful login
- magic login: fix URL to use /wordpress-auto-login?site={hash}
- local clone: add --force to overwrite existing, --include for rsync patterns
- local pull: add --include flag for rsync patterns
- local stop: new command to stop background servers
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
Bundles rsync.exe + msys2-runtime DLLs and BusyBox-w64 (awk provider) in bin/win32/ so `local clone`, `local push/pull`, and `sync push/pull` work on Windows out of the box. Replaces the external sqlite3 CLI dependency with the better-sqlite3 Node module. Fixes: - local clone: mysql2sqlite path resolution (fileURLToPath, not URL.pathname) - local clone: awk invoked explicitly (no shebang reliance) - rsync: Windows drive paths converted to msys style (C:\\ -> /c/) - rsync: -e ssh command uses forward-slashed, quoted key paths - SQL injection risk in URL search-replace eliminated via bound params Adds scripts/fetch-windows-binaries.sh (maintainer-only) to refresh the Windows bundle from MSYS2 + frippery.org. 32 new tests cover path conversion and bundled-binary resolution; full suite 168 passing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
v0.0.1-beta.4 — Zero-install Windows support
rsync.exe+ msys2-runtime DLLs and BusyBox-w64 (awkprovider) inbin/win32/.local clone,local push/pull, andsync push/pullnow work on Windows out of the box — no Git for Windows / cwRsync prerequisite.sqlite3CLI withbetter-sqlite3Node module.scripts/fetch-windows-binaries.sh(maintainer-only) refreshes the bundle from MSYS2 + frippery.org.Windows bug fixes
local clone:mysql2sqlitescript path resolution (fileURLToPathinstead ofURL.pathname).local clone:awkinvoked explicitly (no shebang reliance).rsync: Windows drive paths (C:\foo) converted to msys style (/c/foo) so rsync doesn't interpretC:as a hostname.rsync:-e ssh -i ...command uses forward-slashed, quoted key paths so msys/cygwin sh parses them correctly.local clone's URL search-replace (bound params via better-sqlite3).v0.0.1-beta.3 (also included in this PR)
Local Development (WordPress Playground)
local create— spin up local WordPress sites (zero Docker, uses WASM PHP + SQLite)local clone <cloud-site>— full clone from InstaWP cloud (files + MySQL→SQLite DB import)local start/stop— foreground or--backgroundmode with PID trackinglocal push/pull— incremental rsync between local and cloud siteslocal list— shows running/stopped status and file pathlocal delete— clean removalClone Flow
mysql2sqlite→ import into SQLiteiwp576f_→wp_) including meta keys and option namesWP_SQLITE_AST_DRIVER=true) for WooCommerce compatibilityloginstep with actual admin usernameSite Management
sites php <site>— view/update PHP version and settingssites update <site>— update label, description, expirationcreate --wp <version>— WordPress version selectionsites list— 50 per page default,--allflag, pagination hintsTeams
teams switch <team>— client-side team context (injectsteam_idon all API calls)Cross-Platform (initial Windows fixes)
/bin/shandyes |pipewhich→whereon Windows for command detectionstty saneon Windows--apiflag fix: extracted from passthrough args so it works at any positionOther
--itemize-changes(only shows actually changed files)/wordpress-auto-login?site={hash}stty saneafter Playground exits (macOS/Linux)Test plan
instawp local create/local clone <site>/local push|pullinstawp local clone <site>(verifies bundled rsync + busybox)instawp sync push <site>(verifies bundled rsync via SSH)instawp exec <site> --apiand SSH key generationbin/win32/**(verified vianpm pack --dry-run)🤖 Generated with Claude Code