diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index 75737c3..cf40f1d 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -205,13 +205,13 @@ FastDeck is a Stream Deck-style productivity tool that lets users configure a gr - **Unit/Integration**: `yarn web:test` - Snapshots are located in `__snapshots__` directories adjacent to tests. - RTL `renderHook` is natively imported from `@testing-library/react`. -- **E2E**: `yarn workspace audiomesh-web cy:open` +- **E2E**: `yarn workspace fastdeck-web cy:open` - **Build**: `yarn web:build` (Always verify build compatibility after dependency updates). ## 6. Agent Workflow 1. **Understand**: Review this file and `.claude/CLAUDE.md`. -2. **Verify**: Always run `yarn workspace audiomesh-web lint` and `yarn web:test` before declaring a task complete. +2. **Verify**: Always run `yarn workspace fastdeck-web lint` and `yarn web:test` before declaring a task complete. 3. **Documentation**: Always check if a README update is required for any modified components. If so, update the corresponding `README.md` following the guidelines in the [readme skill](file:///Users/mr.robot/z-stash/FastDeck/fastdeck/.claude/skills/readme/SKILL.md). 4. **Governance**: Follow Conventional Commits and link all changes to the **FastDeck** Jira project using `prefix/FAS-XXX` branch naming. diff --git a/.github/workflows/build-android-release.yml b/.github/workflows/build-android-release.yml index 59ce977..e17bb2a 100644 --- a/.github/workflows/build-android-release.yml +++ b/.github/workflows/build-android-release.yml @@ -39,7 +39,7 @@ jobs: uses: TriPSs/conventional-changelog-action@latest with: github-token: ${{ secrets.PA_TOKEN }} - git-user-name: 'AudioMesh bot' + git-user-name: 'FastDeck bot' output-file: false version-file: 'apps/mobile/package.json' git-path: 'apps/mobile' @@ -67,7 +67,7 @@ jobs: run: yarn install --immutable - name: Build Mobile React App - run: yarn workspace audiomesh-mobile build + run: yarn workspace fastdeck-mobile build - name: Upload Frontend Build Artifact uses: actions/upload-artifact@v7 @@ -143,8 +143,8 @@ jobs: run: | if [ -n "$ANDROID_KEYSTORE_BASE64" ]; then mkdir -p apps/mobile/src-tauri/gen/android - echo "$ANDROID_KEYSTORE_BASE64" | base64 -d > apps/mobile/src-tauri/gen/android/audiomesh.keystore - echo "storeFile=${{ github.workspace }}/apps/mobile/src-tauri/gen/android/audiomesh.keystore" > apps/mobile/src-tauri/gen/android/keystore.properties + echo "$ANDROID_KEYSTORE_BASE64" | base64 -d > apps/mobile/src-tauri/gen/android/fastdeck.keystore + echo "storeFile=${{ github.workspace }}/apps/mobile/src-tauri/gen/android/fastdeck.keystore" > apps/mobile/src-tauri/gen/android/keystore.properties echo "storePassword=$ANDROID_KEYSTORE_PASSWORD" >> apps/mobile/src-tauri/gen/android/keystore.properties echo "keyAlias=$ANDROID_KEY_ALIAS" >> apps/mobile/src-tauri/gen/android/keystore.properties echo "keyPassword=$ANDROID_KEY_PASSWORD" >> apps/mobile/src-tauri/gen/android/keystore.properties @@ -156,7 +156,7 @@ jobs: - name: Build Android App env: TAURI_SKIP_FRONTEND_BUILD: 'true' - run: yarn workspace audiomesh-mobile run tauri android build --ci + run: yarn workspace fastdeck-mobile run tauri android build --ci - name: Upload Android Release Artifacts uses: actions/upload-artifact@v7 @@ -186,7 +186,7 @@ jobs: uses: TriPSs/conventional-changelog-action@latest with: github-token: ${{ secrets.PA_TOKEN }} - git-user-name: 'AudioMesh bot' + git-user-name: 'FastDeck bot' output-file: false version-file: 'apps/mobile/package.json' git-path: 'apps/mobile' diff --git a/.github/workflows/build-desktop.yml b/.github/workflows/build-desktop.yml index b7d0e02..3cc28aa 100644 --- a/.github/workflows/build-desktop.yml +++ b/.github/workflows/build-desktop.yml @@ -61,7 +61,7 @@ jobs: uses: TriPSs/conventional-changelog-action@latest with: github-token: ${{ secrets.PA_TOKEN }} - git-user-name: 'AudioMesh bot' + git-user-name: 'FastDeck bot' output-file: false version-file: 'apps/desktop/package.json' git-path: 'apps/desktop' @@ -83,13 +83,13 @@ jobs: run: | MATRIX_ITEMS="[]" if [ "${{ inputs.build-mac }}" = "true" ]; then - MATRIX_ITEMS=$(echo "$MATRIX_ITEMS" | jq -c '. + [{"os": "macos-latest", "platform": "mac", "artifact-path": "apps/desktop/dist/", "artifact-name": "desktop-build-macos", "server-binary": "apps/server/target/release/audiomesh-server", "release-assets": "apps/desktop/dist/*.dmg"}]') + MATRIX_ITEMS=$(echo "$MATRIX_ITEMS" | jq -c '. + [{"os": "macos-latest", "platform": "mac", "artifact-path": "apps/desktop/dist/", "artifact-name": "desktop-build-macos", "server-binary": "apps/server/target/release/fastdeck-server", "release-assets": "apps/desktop/dist/*.dmg"}]') fi if [ "${{ inputs.build-windows }}" = "true" ]; then - MATRIX_ITEMS=$(echo "$MATRIX_ITEMS" | jq -c '. + [{"os": "windows-latest", "platform": "win", "artifact-path": "apps/desktop/dist/", "artifact-name": "desktop-build-windows", "server-binary": "apps/server/target/release/audiomesh-server.exe", "release-assets": "apps/desktop/dist/*.exe"}]') + MATRIX_ITEMS=$(echo "$MATRIX_ITEMS" | jq -c '. + [{"os": "windows-latest", "platform": "win", "artifact-path": "apps/desktop/dist/", "artifact-name": "desktop-build-windows", "server-binary": "apps/server/target/release/fastdeck-server.exe", "release-assets": "apps/desktop/dist/*.exe"}]') fi if [ "${{ inputs.build-linux }}" = "true" ]; then - MATRIX_ITEMS=$(echo "$MATRIX_ITEMS" | jq -c '. + [{"os": "ubuntu-latest", "platform": "linux", "artifact-path": "apps/desktop/dist/", "artifact-name": "desktop-build-linux", "server-binary": "apps/server/target/release/audiomesh-server", "release-assets": "apps/desktop/dist/*.AppImage\napps/desktop/dist/*.deb"}]') + MATRIX_ITEMS=$(echo "$MATRIX_ITEMS" | jq -c '. + [{"os": "ubuntu-latest", "platform": "linux", "artifact-path": "apps/desktop/dist/", "artifact-name": "desktop-build-linux", "server-binary": "apps/server/target/release/fastdeck-server", "release-assets": "apps/desktop/dist/*.AppImage\napps/desktop/dist/*.deb"}]') fi HAS_TARGETS="false" @@ -123,7 +123,7 @@ jobs: run: yarn install --immutable - name: Build Desktop React App - run: yarn workspace audiomesh-desktop build + run: yarn workspace fastdeck-desktop build - name: Upload Frontend Build Artifact uses: actions/upload-artifact@v7 @@ -215,7 +215,7 @@ jobs: uses: TriPSs/conventional-changelog-action@latest with: github-token: ${{ secrets.PA_TOKEN }} - git-user-name: 'AudioMesh bot' + git-user-name: 'FastDeck bot' output-file: false version-file: 'apps/desktop/package.json' git-path: 'apps/desktop' @@ -238,8 +238,8 @@ jobs: release-artifacts/**/*.exe release-artifacts/**/*.AppImage release-artifacts/**/*.deb - release-artifacts/**/audiomesh-server - release-artifacts/**/audiomesh-server.exe + release-artifacts/**/fastdeck-server + release-artifacts/**/fastdeck-server.exe draft: false prerelease: false env: diff --git a/.github/workflows/build-mobile.yml b/.github/workflows/build-mobile.yml index aaee7f8..561a01b 100644 --- a/.github/workflows/build-mobile.yml +++ b/.github/workflows/build-mobile.yml @@ -81,7 +81,7 @@ jobs: run: yarn install --immutable - name: Build Mobile React App - run: yarn workspace audiomesh-mobile build + run: yarn workspace fastdeck-mobile build - name: Upload Frontend Build Artifact uses: actions/upload-artifact@v7 @@ -152,21 +152,21 @@ jobs: # Compile Android App Debug target - name: Build Android App (Debug) if: ${{ matrix.platform == 'android' }} - run: yarn workspace audiomesh-mobile run tauri android build --debug --ci + run: yarn workspace fastdeck-mobile run tauri android build --debug --ci # Compile iOS App Debug target - name: Build iOS App (Debug) if: ${{ matrix.platform == 'ios' }} run: | - yarn workspace audiomesh-mobile run tauri ios build --debug --no-sign --ci + yarn workspace fastdeck-mobile run tauri ios build --debug --no-sign --ci APP_PATH=$(find apps/mobile/src-tauri/gen/apple/build -name "*.app" -type d | head -n 1) if [ -n "$APP_PATH" ]; then echo "Found app bundle at $APP_PATH" cd $(dirname "$APP_PATH") - zip -r audiomesh-ios-debug.zip $(basename "$APP_PATH") + zip -r fastdeck-ios-debug.zip $(basename "$APP_PATH") cd - mkdir -p apps/mobile/src-tauri/gen/apple/build/artifacts - cp "$(dirname "$APP_PATH")/audiomesh-ios-debug.zip" apps/mobile/src-tauri/gen/apple/build/artifacts/ + cp "$(dirname "$APP_PATH")/fastdeck-ios-debug.zip" apps/mobile/src-tauri/gen/apple/build/artifacts/ else echo "Error: Could not find compiled .app bundle!" exit 1 diff --git a/.github/workflows/build-web.yml b/.github/workflows/build-web.yml index d88c695..aa2b090 100644 --- a/.github/workflows/build-web.yml +++ b/.github/workflows/build-web.yml @@ -72,7 +72,7 @@ jobs: uses: TriPSs/conventional-changelog-action@latest with: github-token: ${{ secrets.PA_TOKEN }} - git-user-name: 'AudioMesh bot' + git-user-name: 'FastDeck bot' output-file: false version-file: 'apps/web/package.json' git-path: 'apps/web' @@ -110,7 +110,7 @@ jobs: if: ${{ steps.changelog.outputs.skipped == 'false' }} uses: SamKirkland/FTP-Deploy-Action@v4.3.5 with: - server: ftp.audiomesh.amitraikwar.in + server: ftp.fastdeck.amitraikwar.in username: u392139545.githubdep password: ${{ secrets.HOSTINGER_FTP_PASSWORD }} local-dir: apps/web/build/ diff --git a/.github/workflows/ci-mobile.yml b/.github/workflows/ci-mobile.yml index b9f9df9..e4b2700 100644 --- a/.github/workflows/ci-mobile.yml +++ b/.github/workflows/ci-mobile.yml @@ -45,7 +45,7 @@ jobs: run: yarn install --immutable - name: Lint - run: yarn workspace audiomesh-mobile run lint + run: yarn workspace fastdeck-mobile run lint - name: Build Frontend run: yarn mobile:build diff --git a/LICENSE b/LICENSE index b7502e8..b8b6181 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 One Man Fighter +Copyright (c) 2026 amit raikwar Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/apps/desktop/craco.config.js b/apps/desktop/craco.config.js index 10379ab..b2e9ce4 100644 --- a/apps/desktop/craco.config.js +++ b/apps/desktop/craco.config.js @@ -50,13 +50,19 @@ module.exports = { }, configure: (webpackConfig) => { // Remove ModuleScopePlugin to allow importing from common/ workspace - if (webpackConfig.resolve && webpackConfig.resolve.plugins) { - const scopePluginIndex = webpackConfig.resolve.plugins.findIndex( - ({ constructor }) => - constructor && constructor.name === 'ModuleScopePlugin', - ); - if (scopePluginIndex !== -1) { - webpackConfig.resolve.plugins.splice(scopePluginIndex, 1); + if (webpackConfig.resolve) { + webpackConfig.resolve.extensionAlias = { + ...webpackConfig.resolve.extensionAlias, + '.js': ['.ts', '.tsx', '.js', '.jsx'], + }; + if (webpackConfig.resolve.plugins) { + const scopePluginIndex = webpackConfig.resolve.plugins.findIndex( + ({ constructor }) => + constructor && constructor.name === 'ModuleScopePlugin', + ); + if (scopePluginIndex !== -1) { + webpackConfig.resolve.plugins.splice(scopePluginIndex, 1); + } } } diff --git a/apps/desktop/electron-builder.json b/apps/desktop/electron-builder.json index d40714b..89203ec 100644 --- a/apps/desktop/electron-builder.json +++ b/apps/desktop/electron-builder.json @@ -1,14 +1,14 @@ { "extends": null, "electronVersion": "31.0.0", - "appId": "com.audiomesh.app", - "productName": "AudioMesh", + "appId": "com.fastdeck.app", + "productName": "FastDeck", "compression": "maximum", "publish": [ { "provider": "github", - "owner": "audiomesh", - "repo": "audiomesh" + "owner": "fastdeck", + "repo": "fastdeck" } ], "directories": { diff --git a/apps/desktop/jest.config.js b/apps/desktop/jest.config.js index ed6a10f..26d6e25 100644 --- a/apps/desktop/jest.config.js +++ b/apps/desktop/jest.config.js @@ -31,6 +31,7 @@ module.exports = { moduleFileExtensions: ['js', 'jsx', 'ts', 'tsx'], moduleDirectories: ['node_modules'], moduleNameMapper: { + '^(\\..*)\\.js$': '$1', '^@assets$': '/../../shared/common/src/assets', '^@assets/(.*)$': '/../../shared/common/src/assets/$1', '^@components$': '/../../shared/common/src/components', diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 9c24433..8a8d455 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -1,6 +1,6 @@ { - "name": "audiomesh-desktop", - "description": "AudioMesh desktop project", + "name": "fastdeck-desktop", + "description": "FastDeck desktop project", "version": "0.0.1", "homepage": ".", "main": "main.js", @@ -50,8 +50,6 @@ "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@types/react-test-renderer": "^18.3.0", - "audiomesh-common": "workspace:*", - "audiomesh-desktop-host": "workspace:*", "babel-jest": "^29.7.0", "cypress": "^13.8.1", "electron": "^31.0.0", @@ -62,6 +60,8 @@ "eslint-plugin-import": "^2.25.2", "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", "eslint-plugin-promise": "^6.0.0", + "fastdeck-common": "workspace:*", + "fastdeck-desktop-host": "workspace:*", "framer-motion": "^11.3.2", "fuse.js": "^7.0.0", "husky": "^9.0.11", diff --git a/apps/desktop/public/favicon.ico b/apps/desktop/public/favicon.ico index 3a9246a..7442cad 100644 Binary files a/apps/desktop/public/favicon.ico and b/apps/desktop/public/favicon.ico differ diff --git a/apps/desktop/public/icon.png b/apps/desktop/public/icon.png index 80cad3f..7442cad 100644 Binary files a/apps/desktop/public/icon.png and b/apps/desktop/public/icon.png differ diff --git a/apps/desktop/public/index.html b/apps/desktop/public/index.html index 0b3b222..33d3db4 100644 --- a/apps/desktop/public/index.html +++ b/apps/desktop/public/index.html @@ -6,9 +6,9 @@ - + - AudioMesh + FastDeck @@ -22,6 +22,8 @@ body { margin: 0; padding: 0; + height: 100vh; + overflow: hidden; } #initial-loader { @@ -571,7 +573,7 @@ -
AudioMesh
+
FastDeck
SYNCHRONIZED SPEAKER NETWORK
@@ -601,7 +603,7 @@