Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/build-android-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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'
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/build-desktop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand All @@ -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"
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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'
Expand All @@ -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:
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/build-mobile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-web.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down Expand Up @@ -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/
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-mobile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -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
Expand Down
20 changes: 13 additions & 7 deletions apps/desktop/craco.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
}

Expand Down
8 changes: 4 additions & 4 deletions apps/desktop/electron-builder.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down
1 change: 1 addition & 0 deletions apps/desktop/jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ module.exports = {
moduleFileExtensions: ['js', 'jsx', 'ts', 'tsx'],
moduleDirectories: ['node_modules'],
moduleNameMapper: {
'^(\\..*)\\.js$': '$1',
'^@assets$': '<rootDir>/../../shared/common/src/assets',
'^@assets/(.*)$': '<rootDir>/../../shared/common/src/assets/$1',
'^@components$': '<rootDir>/../../shared/common/src/components',
Expand Down
8 changes: 4 additions & 4 deletions apps/desktop/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down Expand Up @@ -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",
Expand All @@ -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",
Expand Down
Binary file modified apps/desktop/public/favicon.ico
Binary file not shown.
Binary file modified apps/desktop/public/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 6 additions & 4 deletions apps/desktop/public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#121416" />
<meta name="description" content="AudioMesh projects website" />
<meta name="description" content="FastDeck projects website" />
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<title>AudioMesh</title>
<title>FastDeck</title>
<!-- Google Fonts for Geist, Hanken Grotesk, and JetBrains Mono -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
Expand All @@ -22,6 +22,8 @@
body {
margin: 0;
padding: 0;
height: 100vh;
overflow: hidden;
}

#initial-loader {
Expand Down Expand Up @@ -571,7 +573,7 @@
</div> <!-- end spin layer -->
</div> <!-- end tilt layer -->
</div> <!-- end mesh container -->
<div class="loader-title">AudioMesh</div>
<div class="loader-title">FastDeck</div>
<div class="loader-subtitle">SYNCHRONIZED SPEAKER NETWORK</div>
<div class="loader-progress-track">
<div class="loader-progress-bar"></div>
Expand Down Expand Up @@ -601,7 +603,7 @@
</div>

<script>
// AudioMesh network synchronization logs
// FastDeck network synchronization logs
const logs = [
'INITIALIZING AUDIO SUBSYSTEM...',
'SCANNING WI-FI & BLUETOOTH INTERFACES...',
Expand Down
4 changes: 2 additions & 2 deletions apps/desktop/public/manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"short_name": "AudioMesh",
"name": "AudioMesh",
"short_name": "FastDeck",
"name": "FastDeck",
"icons": [
{
"src": "favicon.ico",
Expand Down
2 changes: 1 addition & 1 deletion apps/desktop/src/index.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import ReactDOM from 'react-dom/client';
import App from 'audiomesh-desktop-host';
import App from 'fastdeck-desktop-host';
import './index.css';
import reportWebVitals from './reportWebVitals';

Expand Down
8 changes: 4 additions & 4 deletions apps/mobile/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "audiomesh-mobile",
"description": "AudioMesh mobile project",
"name": "fastdeck-mobile",
"description": "FastDeck mobile project",
"version": "0.0.1",
"homepage": ".",
"scripts": {
Expand Down Expand Up @@ -56,8 +56,6 @@
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@types/react-test-renderer": "^18.3.0",
"audiomesh-client-common": "workspace:*",
"audiomesh-common": "workspace:*",
"babel-jest": "^29.7.0",
"cypress": "^13.8.1",
"eslint": "^8.0.1",
Expand All @@ -66,6 +64,8 @@
"eslint-plugin-import": "^2.25.2",
"eslint-plugin-n": "^15.0.0 || ^16.0.0 ",
"eslint-plugin-promise": "^6.0.0",
"fastdeck-client-common": "workspace:*",
"fastdeck-common": "workspace:*",
"framer-motion": "^11.3.2",
"fuse.js": "^7.0.0",
"husky": "^9.0.11",
Expand Down
8 changes: 4 additions & 4 deletions apps/mobile/public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"
/>
<meta name="theme-color" content="#121416" />
<meta name="description" content="AudioMesh projects website" />
<meta name="description" content="FastDeck projects website" />
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<title>AudioMesh</title>
<title>FastDeck</title>
<!-- Google Fonts for Geist, Hanken Grotesk, and JetBrains Mono -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
Expand Down Expand Up @@ -423,7 +423,7 @@
/>
</svg>
</div>
<div class="loader-title">AudioMesh</div>
<div class="loader-title">FastDeck</div>
<div class="loader-subtitle">SYNCHRONIZED SPEAKER NETWORK</div>
<div class="loader-progress-track">
<div class="loader-progress-bar"></div>
Expand Down Expand Up @@ -452,7 +452,7 @@
</div>

<script>
// AudioMesh network synchronization logs
// FastDeck network synchronization logs
const logs = [
'INITIALIZING AUDIO SUBSYSTEM...',
'SCANNING WI-FI & BLUETOOTH INTERFACES...',
Expand Down
4 changes: 2 additions & 2 deletions apps/mobile/public/manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"short_name": "AudioMesh",
"name": "AudioMesh",
"short_name": "FastDeck",
"name": "FastDeck",
"icons": [
{
"src": "favicon.ico",
Expand Down
Loading
Loading