Commit graph

5,418 commits

Author SHA1 Message Date
Lea Anthony
bc76ca97b3 Document Docker API version and fallback behavior
Add comment explaining that pullViaDockerAPI uses API v1.44 (Docker 25.0+)
and that older versions gracefully fall back to CLI-based pulling.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 22:04:31 +11:00
Lea Anthony
67913a2e9b Fix CI: restore dist/ for Go embed directive
The Go embed directive requires frontend/dist/* to exist at build time.
Reverting .gitignore change - dist/ must be tracked for CI to pass.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 21:11:06 +11:00
Lea Anthony
a9ed6b0d7d Fix CORS and Docker API error handling
- Remove unnecessary Access-Control-Allow-Origin: * from SSE endpoint
  (UI is served same-origin, no CORS needed)
- Return error when Docker API reports event.Error to trigger CLI fallback

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 21:09:43 +11:00
Lea Anthony
41811886d8 Remove unused formatBytes function
Only formatBytesMB is used in the codebase.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 19:48:44 +11:00
Lea Anthony
3726cba230 Fix CodeRabbit review comments
- Fix .gitignore: track public/ (source), ignore dist/ (build output)
- Apply beta/rc Go version parsing fix to Linux and Darwin
- Surface LoadGlobalDefaults error in signing status response

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 16:08:09 +11:00
Lea Anthony
80f6a71e05
Merge branch 'v3-alpha' into v3/feature/setup 2026-01-26 15:40:16 +11:00
Lea Anthony
59e99f35c9 Remove duplicate public/ dir and unused showcase images
- Add public/ to .gitignore (dist/ already contains copied files)
- Remove unused showcase images (only montage.png is used)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 15:39:15 +11:00
github-actions[bot]
279eea9799 chore(v3): bump to v3.0.0-alpha.64 and update changelog [skip ci] v3.0.0-alpha.64 2026-01-26 02:56:39 +00:00
Lea Anthony
af58b9e95b Fix Docker image name and stream error handling
- Use shared crossImageName constant in platform-specific wizard files
- Return error on non-EOF decode failures to trigger CLI fallback

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 13:23:58 +11:00
Lea Anthony
55aeb70c2c Update Build your own link to v3.wails.io
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 13:08:08 +11:00
Lea Anthony
e99a8917cf Reset stale Docker pull state when starting new pull
Clear PullError, BytesTotal, BytesDone, LayerCount, LayersDone, and
dockerBuildLogs when starting a new Docker pull to prevent stale UI state.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 12:56:51 +11:00
Lea Anthony
20f46380d4 Improve wizard UX and fix CodeRabbit issues
- Add docker-options intermediate step with two choices:
  - "Download official image" (red outline) → SDK license → download
  - "Build your own image" (gray outline) → opens docs in new tab
- Update SDK license page to match other pages (back button at bottom)
- Add Wails favicon to wizard
- Fix shutdown channel panic on repeated /api/close (sync.Once guard)
- Fix Go version parsing for beta/rc versions like go1.25beta1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 12:54:10 +11:00
Lea Anthony
017133e48e Remove local SDK upload from setup wizard
- Replace "Use local file" upload with "Build your own" docs link
- Remove handleDockerBuildWithSDK endpoint and startDockerBuildLocal
- Remove embedded Dockerfile.cross files (now documented inline)
- Add comprehensive "Build Your Own Image" documentation section
- Clean up unused imports (bufio, strconv)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 12:25:24 +11:00
Lea Anthony
39a91fa75d chore: remove TODO.md planning doc
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 12:14:33 +11:00
Lea Anthony
f7d58af119 fix: address CodeRabbit minor review feedback
- Add BuildKit syntax directive to Dockerfiles for heredoc support
- Log warning when defaults.Load() fails in signing check
- Use errors.Is(err, io.EOF) instead of string comparison
- Clean up temp SDK file after Docker build copies it
- Guard against short/empty rows in RenderTable to prevent panics

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 11:59:51 +11:00
Lea Anthony
a2e93de942 fix: address CodeRabbit review feedback
- Use fileURLToPath for Vite alias in astro.config.mjs
- Add gcompat to Alpine Dockerfiles for Zig glibc compatibility
- Add conditional check for UseInterfaces in applyGlobalDefaults
- Expand REG_EXPAND_SZ registry values in Windows PATH refresh
- Route Header/Section output through pterm to honor DisableOutput

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 11:35:46 +11:00
Lea Anthony
cec29f03b4 docs: add Desktop/Server morph effect and clean up changelog
- Add MorphText component for animated title text morphing
- Title morphs between "Desktop" and "Server" with fade/blur/scale effects
- Add humorous footnote to "No browsers*" tagline
- Add Vite alias for component imports in MDX
- Clean up UNRELEASED_CHANGELOG to only show setup wizard changes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 21:02:45 +11:00
Lea Anthony
d260a7efdd docs: center morphing text within fixed-width container
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:40:32 +11:00
Lea Anthony
453ce9f3d7 docs: improve text morphing with multiple transitions in tagline
- Morphs "desktop" to "server" in the hero tagline
- 4 transition types: fade, blur, scale, slide
- Random transition selection
- Random interval 3-5 seconds
- Fixed width to prevent layout shift
- Slow 0.8s transitions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:39:08 +11:00
Lea Anthony
c058b0ff59 docs: add Desktop/Server text morphing effect on home page
Adds CSS animation that morphs between "Desktop" and "Server" text
to highlight the new server mode feature.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:36:51 +11:00
Lea Anthony
9a43ab558f docs: simplify home page quickstart to two-step format
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:05:11 +11:00
Lea Anthony
4c96969d7e docs: add first project steps to setup guide
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:01:40 +11:00
Lea Anthony
6ebb63ac2e docs: simplify setup guide with two-step quick start
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:00:52 +11:00
Lea Anthony
573754e925 docs: add wails3 setup to home page and quick-start guide
- Add setup step to quickstart code blocks on home page
- Add setup to TL;DR section in quick-start/installation
- Add new step 4 "Run Setup Wizard" with experimental warning
- Link to feedback issue #4904

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 17:32:12 +11:00
Lea Anthony
8e6476db98 docs: update installation guide to recommend wails3 setup
- Add tip about setup wizard in Dependencies section
- Add "Next Steps" section recommending `wails3 setup`
- Keep manual installation as fallback option
- Link to setup guide and feedback issue

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 17:28:30 +11:00
Lea Anthony
d4d2dd0aa3 feat(setup): add documentation, bug reporting, and improve dependency detection
- Add user-facing documentation at docs/getting-started/setup.mdx
- Remove internal design storyboard (docs/setup-wizard-storyboard.md)
- Wire up main `wails3 setup` command in CLI
- Add experimental warning with link to feedback issue #4904
- Add "Report Bug" button in wizard sidebar with clipboard template
- Fix npm detection on Linux to check PATH, not just package manager
- Use term.Warning and term.Hyperlink for styled terminal output

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 17:24:49 +11:00
Lea Anthony
30a830136f feat(setup): improve macOS signing UX for non-Mac hosts
- Detect host OS and show platform-appropriate guidance
- On Mac: show 'security find-identity' and 'xcrun notarytool' commands
- On Linux/Windows: show rcodesign info and P12 certificate path field
- Add App Store Connect API fields for cross-platform notarization
- Link to Apple docs for API key creation
- Disable keychain profile field on non-Mac (not applicable)
2026-01-25 14:44:49 +11:00
Lea Anthony
e88d25f38f feat(setup): add signing configuration forms with inline platform icons
- Add Configure button for each platform that opens a form
- Add configuration forms for macOS (identity, team ID, notarization profile)
- Add configuration forms for Windows (certificate path, thumbprint, timestamp)
- Add configuration forms for Linux (GPG key ID, key path)
- Use inline SVGs for platform icons (same as CrossPlatformPage)
- Forms save to defaults.yaml via /api/signing endpoint
- Include helpful command hints for finding signing identities
2026-01-25 14:44:49 +11:00
Lea Anthony
16f7df8562 feat(setup): add code signing configuration and status display
- Add SigningDefaults to GlobalDefaults for macOS/Windows/Linux signing config
- Add signing status section to doctor command with platform detection
- Add --json flag to doctor command for machine-readable output
- Add /api/signing and /api/signing/status endpoints to setup wizard
- Add SigningStep component with platform tabs and status indicators
- Wire signing step into wizard flow after projects step

The signing step shows detected signing identities from:
- macOS: keychain codesigning identities, notarization config
- Windows: certificate file/store/cloud, SignTool availability
- Linux: GPG keys from keyring or config
2026-01-25 14:44:49 +11:00
Lea Anthony
0dba0d5d6f feat(init): add lipgloss TUI styling and show global config defaults
- Add lipgloss-based styling (term/styles.go) with Wails brand colors
- Update init output to show Framework, Language, Bindings from config
- Display '(default)' suffix for values from global config
- Add Framework/Language fields to defaults for cleaner config
- New minimal banner style: 'Wails v3.x.x › Command'
2026-01-25 14:44:24 +11:00
Lea Anthony
2afcfddc84 chore: remove wails3 binary from tracking 2026-01-25 14:44:24 +11:00
Lea Anthony
f763cf3e2f feat(setup): add real-time Docker pull progress via Docker Engine API
- Use Docker Engine API for accurate download progress with byte counts
- Add SSE streaming for smooth real-time UI updates (replaces polling)
- Show toast notification when Docker completes in background mode
- Fix progress calculation to use bytes instead of layer count
- Fix framework selection border clipping with padding
- Pull pre-built image from ghcr.io/wailsapp/wails-cross instead of building locally
2026-01-25 14:44:24 +11:00
Lea Anthony
ecec018d0c fix: use real macOS SDK version 26.1 with robust download 2026-01-25 14:44:24 +11:00
Lea Anthony
0ff34442f5 fix(setup): improve light mode styling for language and framework cards
- Update language selection cards with light mode text colors
- Update framework/template cards with light mode backgrounds and borders
- Use text-gray-900 dark:text-white pattern for proper contrast
- Add bg-gray-100 dark:bg-white/5 for unselected card backgrounds

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:44:24 +11:00
Lea Anthony
40f36acee9 fix(setup): improve light mode styling and add Docker progress to sidebar
- Move Docker build progress indicator to sidebar (above bottom icons)
- Fix light mode text colors in ProjectsPage settings rows
- Add light mode CSS variants for settings-group and settings-row
- Improve button positioning consistency across pages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:44:24 +11:00
Lea Anthony
e2b0d5b86b feat(setup): add TypeScript binding style selection (interfaces vs classes)
- Add new wizard step after TypeScript selection for binding style choice
- Add UseInterfaces field to GlobalDefaults and pass through to templates
- Update Taskfile template to conditionally add -i flag for interfaces
- Improve button positioning to match SplashPage layout
- Remove "This sets the default template" text from template page
- Fix overflow issues when resizing window

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:44:24 +11:00
Lea Anthony
a6042d2708 fix(setup): simplify complete page with direct docs link
- Remove terminal-style command display from complete page
- Remove "Read the documentation" link
- Change "Start Building" button to link to first-app quickstart guide
- Remove unused CopyableCommand component and handleClose function

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:44:23 +11:00
Lea Anthony
272a316db6 fix(setup): improve layout centering and add terminal-style complete page
- Fix CheckingPage centering by using justify-start with pt-[30%] padding
- Replace h-full with flex-1 for proper flex container sizing
- Redesign CompletePage with compact terminal-style command display
- Add framework logos (JavaScript, TypeScript, React, Vue, Svelte, etc.)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:44:23 +11:00
Lea Anthony
81e3b06576 feat(setup): merge author and project defaults into single Projects page
Combine Company and Bundle ID fields into one page called "Projects" in
the sidebar. Remove template selection from setup wizard as it's not
needed during initial setup.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:44:23 +11:00
Lea Anthony
469de2eca0 fix(setup): use correct Docker SVG with container boxes, add reboot note
- Replace all Docker logo SVGs with official path that includes container boxes
- Add "Some platforms may require a reboot" note on Docker install page
- Affects: Install Docker, Start Docker, Building image, Docker ready pages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:44:23 +11:00
Lea Anthony
205aaf5355 fix(setup): always show cross-platform page in wizard
Show the cross-platform build question regardless of Docker install
status. Previously, the page was only shown when Docker was installed
but the wails-cross image wasn't built. Now it's shown when:
1. Docker is not installed (user might want to install it), OR
2. Docker is installed but wails-cross image is not built

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:44:23 +11:00
Lea Anthony
9ef1ae96e6 fix(setup/windows): refresh PATH from registry before checking dependencies
On Windows, when software is installed, the PATH environment variable
is updated in the registry but running processes still have the old
PATH. This adds a refreshPath() function that reads the current PATH
from both system and user registry keys before checking for npm and
docker. This allows "Check Again" to work without restarting setup.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:44:23 +11:00
Lea Anthony
80bc7103fb fix(setup): use HelpURL field for clickable links in dependency messages
Move URLs from Message field to HelpURL field on Windows and Darwin
so the frontend can render them as clickable links.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:44:23 +11:00
Lea Anthony
3cb68f691e test(init): add tests for applyGlobalDefaults
Add comprehensive test coverage for the applyGlobalDefaults function
that applies global defaults from ~/.config/wails/defaults.yaml to
init options when creating new projects.

Tests cover:
- Template default application
- Company default application
- Copyright generation with year/company placeholders
- Product identifier generation from prefix
- Description template with {name} placeholder
- Version default application
- Verification that non-default values are not overridden
- Combined defaults application

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:44:23 +11:00
Lea Anthony
807ffc01e7 feat(setup): add docker logo and updated build assets
Add Docker logo asset and updated frontend build output files.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:43:52 +11:00
Lea Anthony
ee6530e48b feat(setup): add imageBuilt status to Docker dependency check
Add imageBuilt field to DependencyStatus struct to track whether the
wails-cross Docker image exists. This allows the OOBE flow to properly
detect when Docker is installed but the cross-compilation image hasn't
been built yet, and prompt users to set up cross-platform builds.

Also moves the Docker build progress indicator to the center of the
footer for better visual placement.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:43:52 +11:00
Lea Anthony
951930bd61 feat(setup): check dependencies on page load with inline spinner
- Move dependency checking from splash transition to dependencies page
- Show inline spinner above deps list while checking
- Show green success message above deps when all installed
- Disable Next button while checking
- Trigger check automatically via useEffect on page mount

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:43:52 +11:00
Lea Anthony
4820501b7f feat(setup): update dependencies page to use PageTemplate layout
- Add logo (80px) top left with header/subheader next to it
- Footer grounded to bottom with theme toggle, sponsor, and nav buttons
- Remove WelcomePage (splash now goes directly to dependencies)
- Match splash page footer dimensions with template footer

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:43:52 +11:00
Lea Anthony
a3ade1c123 feat(setup): redesign welcome page with PageTemplate layout
- Add TemplateFooter with theme toggle + sponsor on left, nav on right
- Redesign WelcomePage with logo on left, title/subtitle on right
- Add numbered setup steps (1, 2, 3) and links bar
- Footer styling now matches splash page design

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:43:52 +11:00
Lea Anthony
522bff2fc0 feat(setup): add splash landing page with scrolling background
- Add 'splash' step as the initial wizard page
- Scrolling montage background with Wails app screenshots
- Centered logo with red glow effect
- Apple-style welcome text
- Footer with theme toggle, sponsor link, and Get Started button
- Simplified button styling (rounded-lg, no glow)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:43:52 +11:00