Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
240637e
Initial plan
Copilot Aug 13, 2025
3fb5773
Initial exploration: Understand Sequential Thinking MCP display issue
Copilot Aug 13, 2025
cea5d33
Implement SequentialThinkingWidget with smart UX improvements
Copilot Aug 13, 2025
e387077
Refactor session store and improve error handling
thedotmack Aug 13, 2025
763b40f
Refactor code structure for improved readability and maintainability
thedotmack Aug 13, 2025
0f6744f
Enhance ThinkingWidget with expand/collapse functionality for long th…
thedotmack Aug 13, 2025
827a249
Add ThinkingPreferencesService for managing default expansion of thin…
thedotmack Aug 13, 2025
fef5c9c
Complete code review and testing - Sequential Thinking widget impleme…
Copilot Aug 13, 2025
5b8295f
Merge branch 'main' into copilot/fix-1
thedotmack Aug 13, 2025
b81ca87
Merge pull request #3 from thedotmack/copilot/fix-1
thedotmack Aug 13, 2025
29e85c6
Merge branch 'getAsterisk:main' into main
thedotmack Aug 14, 2025
ce25e41
Initial plan
Copilot Aug 19, 2025
8e033e5
Implement complete TypeScript server with full API and documentation
Copilot Aug 19, 2025
07f347a
Add final documentation, tests, and deployment guides
Copilot Aug 19, 2025
82cd6bd
📝 Add docstrings to `copilot/fix-6`
coderabbitai[bot] Aug 19, 2025
3161bf1
Update CLAUDIA-SERVER.md
thedotmack Aug 19, 2025
a03e281
Update claudia-server/examples/javascript/client.js
thedotmack Aug 19, 2025
b7906b6
Update claudia-server/package.json
thedotmack Aug 19, 2025
0d2dc72
Update claudia-server/src/services/project.ts
thedotmack Aug 19, 2025
2460cdc
Update claudia-server/test.sh
thedotmack Aug 19, 2025
f261eea
Update claudia-server/tsconfig.json
thedotmack Aug 19, 2025
940b60f
Merge pull request #8 from thedotmack/coderabbitai/docstrings/07f347a
thedotmack Aug 19, 2025
d1c365a
CodeRabbit Generated Unit Tests: Add comprehensive unit tests for Cla…
coderabbitai[bot] Aug 19, 2025
9b15063
Merge pull request #9 from thedotmack/coderabbitai/utg/940b60f
thedotmack Aug 19, 2025
447e461
Merge pull request #7 from thedotmack/copilot/fix-6
thedotmack Aug 19, 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
20 changes: 10 additions & 10 deletions .github/workflows/build-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ jobs:
build:
name: Build Linux x86_64
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Install system dependencies
run: |
sudo apt-get update
Expand All @@ -24,36 +24,36 @@ jobs:
libssl-dev \
libayatana-appindicator3-dev \
librsvg2-dev

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-unknown-linux-gnu

- name: Setup Rust cache
uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri

- name: Setup Bun
uses: oven-sh/setup-bun@v2

- name: Install dependencies
run: bun install

- name: Build Tauri app
run: bun run tauri build --target x86_64-unknown-linux-gnu

- name: Create artifacts directory
run: |
mkdir -p dist/linux-x86_64
cp src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/deb/*.deb dist/linux-x86_64/ || true
cp src-tauri/target/x86_64-unknown-linux-gnu/release/bundle/appimage/*.AppImage dist/linux-x86_64/ || true

# Generate checksums
cd dist/linux-x86_64
sha256sum * > checksums.txt

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
Expand Down
96 changes: 48 additions & 48 deletions .github/workflows/build-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ on:
workflow_dispatch:
inputs:
skip_build:
description: 'Skip build and use artifacts from a previous run'
description: "Skip build and use artifacts from a previous run"
required: false
default: false
type: boolean
run_id:
description: 'Run ID to download artifacts from (leave empty for latest)'
description: "Run ID to download artifacts from (leave empty for latest)"
required: false
type: string
push:
Expand All @@ -39,30 +39,30 @@ jobs:
strategy:
matrix:
include:
- os: macos-13 # Intel
- os: macos-13 # Intel
target: x86_64-apple-darwin
arch: x86_64
- os: macos-14 # Apple Silicon
- os: macos-14 # Apple Silicon
target: aarch64-apple-darwin
arch: aarch64

steps:
- uses: actions/checkout@v4

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable

- name: Setup Rust cache
uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri

- name: Setup Bun
uses: oven-sh/setup-bun@v2

- name: Install dependencies
run: bun install

- name: Import Apple certificates
env:
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
Expand All @@ -72,25 +72,25 @@ jobs:
# Create variables
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db

# Import certificate from secrets
echo -n "$APPLE_CERTIFICATE" | base64 --decode -o $CERTIFICATE_PATH

# Create temporary keychain
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH

# Import certificate to keychain
security import $CERTIFICATE_PATH -P "$APPLE_CERTIFICATE_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
security set-key-partition-list -S apple-tool:,apple: -k "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
security list-keychain -d user -s $KEYCHAIN_PATH

- name: Build native
env:
CI: true
run: bun run tauri build

- name: Upload architecture-specific artifacts
uses: actions/upload-artifact@v4
with:
Expand All @@ -99,22 +99,22 @@ jobs:
src-tauri/target/release/bundle/macos/Claudia.app
src-tauri/target/release/bundle/dmg/*.dmg
retention-days: 1

universal:
name: Create Universal Binary
needs: [build]
if: ${{ !cancelled() && (needs.build.result == 'success' || needs.build.result == 'skipped') }}
runs-on: macos-latest
steps:
- uses: actions/checkout@v4

- name: Download artifacts from current workflow
if: ${{ !inputs.skip_build }}
uses: actions/download-artifact@v4
with:
pattern: macos-*
path: artifacts

- name: Download artifacts from specific run
if: ${{ inputs.skip_build && inputs.run_id != '' }}
uses: dawidd6/action-download-artifact@v3
Expand All @@ -123,7 +123,7 @@ jobs:
run_id: ${{ inputs.run_id }}
name: macos-*
path: artifacts

- name: Download artifacts from latest run
if: ${{ inputs.skip_build && inputs.run_id == '' }}
uses: dawidd6/action-download-artifact@v3
Expand All @@ -132,7 +132,7 @@ jobs:
workflow_conclusion: success
name: macos-*
path: artifacts

- name: List downloaded artifacts
run: |
echo "📁 Artifact structure:"
Expand All @@ -142,7 +142,7 @@ jobs:
ls -la artifacts/
ls -la artifacts/macos-aarch64/ || echo "macos-aarch64 directory not found"
ls -la artifacts/macos-x86_64/ || echo "macos-x86_64 directory not found"

- name: Import Apple certificates
env:
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
Expand All @@ -152,65 +152,65 @@ jobs:
# Create variables
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db

# Import certificate from secrets
echo -n "$APPLE_CERTIFICATE" | base64 --decode -o $CERTIFICATE_PATH

# Create temporary keychain
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH

# Import certificate to keychain
security import $CERTIFICATE_PATH -P "$APPLE_CERTIFICATE_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
security set-key-partition-list -S apple-tool:,apple: -k "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
security list-keychain -d user -s $KEYCHAIN_PATH

- name: Create universal app
run: |
# Create temp directory
mkdir -p dmg_temp

# Extract zip files if they exist
if [ -f "artifacts/macos-aarch64.zip" ]; then
echo "📦 Extracting macos-aarch64.zip..."
unzip -q artifacts/macos-aarch64.zip -d artifacts/macos-aarch64/
fi

if [ -f "artifacts/macos-x86_64.zip" ]; then
echo "📦 Extracting macos-x86_64.zip..."
unzip -q artifacts/macos-x86_64.zip -d artifacts/macos-x86_64/
fi

# Find the actual app paths
AARCH64_APP=$(find artifacts/macos-aarch64 -name "Claudia.app" -type d | head -1)
X86_64_APP=$(find artifacts/macos-x86_64 -name "Claudia.app" -type d | head -1)

if [ -z "$AARCH64_APP" ] || [ -z "$X86_64_APP" ]; then
echo "❌ Could not find app bundles"
echo "AARCH64_APP: $AARCH64_APP"
echo "X86_64_APP: $X86_64_APP"
exit 1
fi

echo "✅ Found app bundles:"
echo " ARM64: $AARCH64_APP"
echo " x86_64: $X86_64_APP"

# Copy ARM64 app as base
cp -R "$AARCH64_APP" dmg_temp/

# Create universal binary using lipo
lipo -create -output dmg_temp/Claudia.app/Contents/MacOS/claudia \
"$AARCH64_APP/Contents/MacOS/claudia" \
"$X86_64_APP/Contents/MacOS/claudia"

# Ensure executable permissions are set
chmod +x dmg_temp/Claudia.app/Contents/MacOS/claudia

echo "✅ Universal binary created"
lipo -info dmg_temp/Claudia.app/Contents/MacOS/claudia

- name: Sign app bundle
env:
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
Expand All @@ -222,21 +222,21 @@ jobs:
--deep \
--entitlements src-tauri/entitlements.plist \
dmg_temp/Claudia.app

- name: Create DMG
run: |
hdiutil create -volname "Claudia Installer" \
-srcfolder dmg_temp \
-ov -format UDZO Claudia.dmg

- name: Sign DMG
env:
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
run: |
codesign --sign "$APPLE_SIGNING_IDENTITY" \
--timestamp \
--force Claudia.dmg

- name: Notarize DMG
env:
APPLE_ID: ${{ secrets.APPLE_ID }}
Expand All @@ -248,47 +248,47 @@ jobs:
--apple-id "$APPLE_ID" \
--team-id "$APPLE_TEAM_ID" \
--password "$APPLE_PASSWORD"

# Submit for notarization
xcrun notarytool submit Claudia.dmg \
--keychain-profile "notarytool-profile" \
--wait

- name: Staple notarization
run: xcrun stapler staple Claudia.dmg

- name: Verify DMG
run: |
spctl -a -t open -vvv --context context:primary-signature Claudia.dmg
echo "✅ DMG verification complete"

- name: Create artifacts directory
run: |
mkdir -p dist/macos-universal
cp Claudia.dmg dist/macos-universal/

# Also save the app bundle using ditto to preserve permissions and signatures
ditto -c -k --sequesterRsrc --keepParent \
dmg_temp/Claudia.app dist/macos-universal/Claudia.app.zip

# Generate checksum
shasum -a 256 dist/macos-universal/* > dist/macos-universal/checksums.txt

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: macos-universal
path: dist/macos-universal/*

- name: Cleanup
if: always()
run: |
echo "🧹 Cleaning up temporary directories..."
rm -rf dmg_temp temp_x86 artifacts

# Clean up keychain
if [ -n "$RUNNER_TEMP" ] && [ -f "$RUNNER_TEMP/app-signing.keychain-db" ]; then
security delete-keychain "$RUNNER_TEMP/app-signing.keychain-db" || true
fi

echo "✅ Cleanup complete"
Loading