Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
bc98ab6
Add Windows compatibility and fix notification settings synchronization
Sallvainian Jul 28, 2025
4c38f2b
Add remaining Windows compatibility changes
Sallvainian Jul 29, 2025
9ab4241
Add Windows binary building to GitHub Actions workflows
Sallvainian Jul 29, 2025
e98a3db
Fix Windows build failure: Add bash shell for ls command
Sallvainian Jul 30, 2025
9a07107
Add test workflow for debugging Windows builds
Sallvainian Jul 30, 2025
efa7ccb
Merge branch 'main' into windows-compatibility-clean
jordan-BAIC Aug 4, 2025
94c5428
Merge branch 'main' into windows-compatibility-clean
jordan-BAIC Aug 4, 2025
af77071
Fix Windows worktree deletion: Rebuild node-pty native module in CI
Sallvainian Aug 4, 2025
df802a1
Merge branch 'windows-compatibility-clean' of https://github.com/Sall…
Sallvainian Aug 4, 2025
2480aa0
Add Windows-specific Playwright tests and fix CI build issues
Sallvainian Aug 4, 2025
d648576
Merge branch 'main' into windows-compatibility-clean
jordan-BAIC Aug 4, 2025
c9f3634
Merge branch 'main' into windows-compatibility-clean
jordan-BAIC Aug 4, 2025
866b68f
Merge branch 'main' into main
jordan-BAIC Aug 5, 2025
00a1782
Fix Claude output display on Windows - working version
Sallvainian Aug 6, 2025
0b7f88b
Clean up debugging code and simplify filtering
Sallvainian Aug 6, 2025
570cd64
Merge branch 'main' into main
jordan-BAIC Aug 6, 2025
c0b596a
Fix git commit failures in worktrees by writing temp files to worktre…
Sallvainian Aug 6, 2025
d808dc0
Fix excessive logging and Windows compatibility issues
Sallvainian Aug 6, 2025
3e7032e
Merge stravu:main into sallvainian:main
jordan-BAIC Aug 11, 2025
16eb0fe
checkpoint: https://github.com/stravu/crystal/pull/145
jordan-BAIC Aug 12, 2025
9da1fd0
Revert "checkpoint: https://github.com/stravu/crystal/pull/145"
jordan-BAIC Aug 12, 2025
99e7fc0
Remove accidentally added RichOutputView-upstream.tsx
jordan-BAIC Aug 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"permissions": {
"allow": [
"WebFetch(domain:raw.githubusercontent.com)",
"Bash(pnpm run build:main:*)"
],
"deny": []
}
}
11 changes: 9 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ jobs:
build:
strategy:
matrix:
# Build both platforms for validation, but use different commands for speed
os: [macos-latest, ubuntu-latest]
# Build all platforms for validation, but use different commands for speed
os: [macos-latest, ubuntu-latest, windows-latest]
include:
- os: macos-latest
build_cmd: canary:mac
Expand All @@ -28,6 +28,10 @@ jobs:
dist-electron/*.deb
dist-electron/*.AppImage
dist-electron/latest-linux.yml
- os: windows-latest
build_cmd: build:win:ci
artifact_name: crystal-windows
artifact_path: dist-electron/*.exe

runs-on: ${{ matrix.os }}

Expand Down Expand Up @@ -93,6 +97,7 @@ jobs:

# Build frontend and main process in parallel for faster builds (skip if cached)
- name: Build frontend and main process
shell: bash
run: |
# Check if builds exist from cache
if [ ! -d "frontend/dist" ] || [ ! -d "main/dist" ]; then
Expand All @@ -106,6 +111,7 @@ jobs:
fi

- name: Rebuild native modules (if needed)
shell: bash
run: |
# Only rebuild if native modules cache missed or build files changed
if [ ! -f "main/node_modules/.bin/electron-rebuild" ] || [ ! -f "main/build/Release/better_sqlite3.node" ]; then
Expand Down Expand Up @@ -138,6 +144,7 @@ jobs:
CSC_DISABLE: ${{ (matrix.os == 'macos-latest' && !secrets.APPLE_CERTIFICATE) && 'true' || 'false' }}

- name: List build artifacts
shell: bash
run: ls -la dist-electron/

# Skip Flatpak build for CI speed - saves 4+ minutes
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
release:
strategy:
matrix:
os: [macos-latest, ubuntu-latest]
os: [macos-latest, ubuntu-latest, windows-latest]
include:
- os: macos-latest
release_cmd: release:mac
Expand All @@ -25,6 +25,12 @@ jobs:
dist-electron/*.deb
dist-electron/*.AppImage
dist-electron/latest-linux.yml
- os: windows-latest
release_cmd: release:win
artifact_name: crystal-windows
artifact_path: |
dist-electron/*.exe
dist-electron/latest.yml

runs-on: ${{ matrix.os }}

Expand Down Expand Up @@ -74,6 +80,7 @@ jobs:
CSC_IDENTITY_AUTO_DISCOVERY: ${{ matrix.os == 'macos-latest' && 'true' || 'false' }}

- name: List release artifacts
shell: bash
run: ls -la dist-electron/

# - name: Build Flatpak
Expand Down
73 changes: 73 additions & 0 deletions .github/workflows/test-windows-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Test Windows Build

on:
push:
branches:
- windows-compatibility-clean
workflow_dispatch:

jobs:
test-build:
runs-on: windows-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Setup pnpm
uses: pnpm/action-setup@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.15.1'
cache: 'pnpm'

- name: Install dependencies
run: pnpm install

- name: Build frontend and main process
shell: bash
run: |
echo "Building frontend and main process..."
pnpm run build:frontend &
pnpm run build:main &
wait

- name: Rebuild native modules
run: pnpm run electron:rebuild

- name: Generate NOTICES file
run: pnpm run generate-notices

- name: Build Windows application
run: pnpm run build:win:ci
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: List build artifacts
shell: bash
run: ls -la dist-electron/

- name: Check for exe file
shell: pwsh
run: |
$exeFiles = Get-ChildItem -Path "dist-electron" -Filter "*.exe"
if ($exeFiles.Count -eq 0) {
Write-Error "No .exe file found!"
exit 1
}
Write-Host "Found .exe files:"
$exeFiles | ForEach-Object { Write-Host $_.FullName }

- name: Upload Windows artifact
uses: actions/upload-artifact@v4
with:
name: crystal-windows-test
path: dist-electron/*.exe
if-no-files-found: error
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -104,3 +104,4 @@ shared/*.js
shared/*.js.map
shared/*.d.ts
shared/*.d.ts.map
.grok/
3 changes: 3 additions & 0 deletions .grok/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"model": "grok-4-latest"
}
34 changes: 34 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -713,6 +713,40 @@ In development mode, Crystal automatically captures all frontend console logs an

Crystal is an independent project created by [Stravu](https://stravu.com/?utm_source=Crystal&utm_medium=OS&utm_campaign=Crystal&utm_id=1). Claude™ is a trademark of Anthropic, PBC. Crystal is not affiliated with, endorsed by, or sponsored by Anthropic. This tool is designed to work with Claude Code, which must be installed separately.

## File Deletion Syntax Reference

⚠️ **IMPORTANT**: Use the correct syntax for deleting files based on the shell environment:

### In Git Bash (Windows)
```bash
# Use forward slashes and rm command
rm "path/to/file.txt"
rm path/to/file.txt

# For directories
rm -rf "path/to/directory"

# DO NOT USE:
# - del (Windows cmd command)
# - backslashes in paths
# - C:\path\to\file (use C:/path/to/file or just relative paths)
```

### Examples
```bash
# ✅ CORRECT in Git Bash:
rm "tests/windows-binary-e2e.spec.ts"
rm playwright.windows-binary.config.ts
rm -rf test-artifacts/

# ❌ WRONG in Git Bash:
del "C:\Users\frank\Projects\crystal\tests\file.ts" # del command not found
rm "C:\Users\frank\Projects\crystal\tests\file.ts" # backslashes cause issues
```

### Best Practice
Always use relative paths from the current directory when possible to avoid path separator issues.

## important-instruction-reminders
Do what has been asked; nothing more, nothing less.
NEVER create files unless they're absolutely necessary for achieving your goal.
Expand Down
Loading
Loading