From 9e963f4fb81923bbf4a329a1dccd511468ecb9ef Mon Sep 17 00:00:00 2001 From: Elimihele God's favour Date: Sat, 6 Dec 2025 15:26:16 +0100 Subject: [PATCH 1/7] feat: JetStart v0.1.0 - blazing fast hot reload for Android Compose - Sub-100ms hot reload for UI changes - Real Kotlin Compose code support - WebSocket-based communication - QR code device pairing - Automatic Gradle builds - Network security config for dev --- .github/workflows/ci.yml | 4 ++-- package.json | 8 ++++---- packages/cli/package.json | 11 ++++++++++- packages/core/package.json | 11 ++++++++++- packages/shared/package.json | 11 ++++++++++- 5 files changed, 36 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f87e8a7..40f9613 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,9 +2,9 @@ name: CI on: push: - branches: [main, develop] + branches: [master, develop] pull_request: - branches: [main, develop] + branches: [master, develop] jobs: build-and-test: diff --git a/package.json b/package.json index a30350f..2c01078 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/phantom/jetstart.git" + "url": "https://github.com/dev-phantom/jetstart.git" }, "keywords": [ "android", @@ -41,11 +41,11 @@ "mobile-development" ], "author": "Phantom", - "license": "Apache-2.0", + "license": "MIT", "bugs": { - "url": "https://github.com/phantom/jetstart/issues" + "url": "https://github.com/dev-phantom/jetstart/issues" }, - "homepage": "https://github.com/phantom/jetstart#readme", + "homepage": "https://github.com/dev-phantom/jetstart#readme", "engines": { "node": ">=18.0.0", "npm": ">=9.0.0" diff --git a/packages/cli/package.json b/packages/cli/package.json index afdf15d..f916cbe 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -25,7 +25,16 @@ "jetpack-compose" ], "author": "Phantom", - "license": "Apache-2.0", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/dev-phantom/jetstart.git", + "directory": "packages/cli" + }, + "bugs": { + "url": "https://github.com/dev-phantom/jetstart/issues" + }, + "homepage": "https://github.com/dev-phantom/jetstart#readme", "dependencies": { "@jetstart/shared": "0.1.0", "axios": "^1.6.2", diff --git a/packages/core/package.json b/packages/core/package.json index 63a0bfb..7d497cd 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -22,7 +22,16 @@ "websocket" ], "author": "Phantom", - "license": "Apache-2.0", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/dev-phantom/jetstart.git", + "directory": "packages/core" + }, + "bugs": { + "url": "https://github.com/dev-phantom/jetstart/issues" + }, + "homepage": "https://github.com/dev-phantom/jetstart#readme", "dependencies": { "@jetstart/shared": "0.1.0", "express": "^4.18.2", diff --git a/packages/shared/package.json b/packages/shared/package.json index 93d3414..6f90e4d 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -20,7 +20,16 @@ "protocols" ], "author": "Phantom", - "license": "Apache-2.0", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/dev-phantom/jetstart.git", + "directory": "packages/shared" + }, + "bugs": { + "url": "https://github.com/dev-phantom/jetstart/issues" + }, + "homepage": "https://github.com/dev-phantom/jetstart#readme", "devDependencies": { "@types/jest": "29.5.14", "@types/node": "^20.10.0", From 6c46ced50b7846e2be9ed825be5e335ceaa8a309 Mon Sep 17 00:00:00 2001 From: Elimihele God's favour Date: Sat, 6 Dec 2025 15:26:16 +0100 Subject: [PATCH 2/7] feat: JetStart v0.1.0 - blazing fast hot reload for Android Compose - Sub-100ms hot reload for UI changes - Real Kotlin Compose code support - WebSocket-based communication - QR code device pairing - Automatic Gradle builds - Network security config for dev --- .github/workflows/ci.yml | 4 ++-- package.json | 8 ++++---- packages/cli/package.json | 11 ++++++++++- packages/core/package.json | 11 ++++++++++- packages/shared/package.json | 11 ++++++++++- 5 files changed, 36 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f87e8a7..40f9613 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,9 +2,9 @@ name: CI on: push: - branches: [main, develop] + branches: [master, develop] pull_request: - branches: [main, develop] + branches: [master, develop] jobs: build-and-test: diff --git a/package.json b/package.json index a30350f..2c01078 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/phantom/jetstart.git" + "url": "https://github.com/dev-phantom/jetstart.git" }, "keywords": [ "android", @@ -41,11 +41,11 @@ "mobile-development" ], "author": "Phantom", - "license": "Apache-2.0", + "license": "MIT", "bugs": { - "url": "https://github.com/phantom/jetstart/issues" + "url": "https://github.com/dev-phantom/jetstart/issues" }, - "homepage": "https://github.com/phantom/jetstart#readme", + "homepage": "https://github.com/dev-phantom/jetstart#readme", "engines": { "node": ">=18.0.0", "npm": ">=9.0.0" diff --git a/packages/cli/package.json b/packages/cli/package.json index afdf15d..f916cbe 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -25,7 +25,16 @@ "jetpack-compose" ], "author": "Phantom", - "license": "Apache-2.0", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/dev-phantom/jetstart.git", + "directory": "packages/cli" + }, + "bugs": { + "url": "https://github.com/dev-phantom/jetstart/issues" + }, + "homepage": "https://github.com/dev-phantom/jetstart#readme", "dependencies": { "@jetstart/shared": "0.1.0", "axios": "^1.6.2", diff --git a/packages/core/package.json b/packages/core/package.json index 63a0bfb..7d497cd 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -22,7 +22,16 @@ "websocket" ], "author": "Phantom", - "license": "Apache-2.0", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/dev-phantom/jetstart.git", + "directory": "packages/core" + }, + "bugs": { + "url": "https://github.com/dev-phantom/jetstart/issues" + }, + "homepage": "https://github.com/dev-phantom/jetstart#readme", "dependencies": { "@jetstart/shared": "0.1.0", "express": "^4.18.2", diff --git a/packages/shared/package.json b/packages/shared/package.json index 93d3414..6f90e4d 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -20,7 +20,16 @@ "protocols" ], "author": "Phantom", - "license": "Apache-2.0", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/dev-phantom/jetstart.git", + "directory": "packages/shared" + }, + "bugs": { + "url": "https://github.com/dev-phantom/jetstart/issues" + }, + "homepage": "https://github.com/dev-phantom/jetstart#readme", "devDependencies": { "@types/jest": "29.5.14", "@types/node": "^20.10.0", From 8b97c7bd1c518c99ed2c0e57dc7aa62669bd5159 Mon Sep 17 00:00:00 2001 From: Elimihele God's favour Date: Sat, 6 Dec 2025 15:31:06 +0100 Subject: [PATCH 3/7] fix(ci): only build and test published packages (shared, core, cli) --- .github/workflows/ci.yml | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 40f9613..5834c36 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,14 +27,23 @@ jobs: - name: Install dependencies run: npm ci - - name: Build packages - run: npm run build + - name: Build packages (only published packages) + run: | + npm run build:shared + npm run build:core + npm run build:cli - - name: Run linter - run: npm run lint --if-present + - name: Run linter (only published packages) + run: | + npm run lint --workspace=packages/shared --if-present + npm run lint --workspace=packages/core --if-present + npm run lint --workspace=packages/cli --if-present - - name: Run tests - run: npm test --if-present + - name: Run tests (only published packages) + run: | + npm test --workspace=packages/shared --if-present + npm test --workspace=packages/core --if-present + npm test --workspace=packages/cli --if-present - name: Check package integrity run: | @@ -68,8 +77,11 @@ jobs: - name: Install Node dependencies run: npm ci - - name: Build packages - run: npm run build + - name: Build packages (only published packages) + run: | + npm run build:shared + npm run build:core + npm run build:cli - name: Create test project run: | From 6a99031042b2897bffd6c7101597158381dc5c20 Mon Sep 17 00:00:00 2001 From: Elimihele God's favour Date: Sat, 6 Dec 2025 15:40:53 +0100 Subject: [PATCH 4/7] fix(ci): use local CLI build instead of npx for testing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The build-android job was failing because it tried to use 'npx jetstart create' before the package is published to npm. This commit fixes it by: - Using npm link to make the local CLI available - Calling jetstart directly instead of npx - Adding chmod +x for gradlew execution in CI 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .github/workflows/ci.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5834c36..4734641 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -85,8 +85,12 @@ jobs: - name: Create test project run: | - npx jetstart create test-ci-app --package com.jetstart.ci + cd packages/cli + npm link + cd ../.. + jetstart create test-ci-app --package com.jetstart.ci cd test-ci-app + chmod +x gradlew ./gradlew assembleDebug --no-daemon - name: Upload APK artifact From 04e86e70458b607b2bc830216bbc2bc07b041c56 Mon Sep 17 00:00:00 2001 From: Elimihele God's favour Date: Sat, 6 Dec 2025 15:43:36 +0100 Subject: [PATCH 5/7] fix(ci): run CLI directly with node instead of npm link MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The npm link approach failed because the global bin directory wasn't in PATH on the CI runner. Now running the CLI binary directly with node. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .github/workflows/ci.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4734641..21a3b1c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -85,10 +85,7 @@ jobs: - name: Create test project run: | - cd packages/cli - npm link - cd ../.. - jetstart create test-ci-app --package com.jetstart.ci + node packages/cli/bin/jetstart.js create test-ci-app --package com.jetstart.ci cd test-ci-app chmod +x gradlew ./gradlew assembleDebug --no-daemon From f449dd88e6638b150662e2a67d2a51d3bb84c788 Mon Sep 17 00:00:00 2001 From: Elimihele God's favour Date: Sat, 6 Dec 2025 15:47:10 +0100 Subject: [PATCH 6/7] fix(ci): add CLI bin directory to git for CI execution MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The bin/ directory was being ignored by .gitignore, which prevented the CLI binary wrapper from being available in CI. Added exception for packages/cli/bin/ to allow the binary to be committed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .gitignore | 1 + packages/cli/bin/jetstart.js | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 packages/cli/bin/jetstart.js diff --git a/.gitignore b/.gitignore index b34b6aa..f4885b5 100644 --- a/.gitignore +++ b/.gitignore @@ -51,6 +51,7 @@ pnpm-debug.log* *.dex *.class bin/ +!packages/cli/bin/ gen/ out/ .gradle/ diff --git a/packages/cli/bin/jetstart.js b/packages/cli/bin/jetstart.js new file mode 100644 index 0000000..9618031 --- /dev/null +++ b/packages/cli/bin/jetstart.js @@ -0,0 +1,3 @@ +#!/usr/bin/env node + +require('../dist/cli.js'); From fb05882b4e0a0c618f2f4d470ca6387a80b16bf2 Mon Sep 17 00:00:00 2001 From: Elimihele God's favour Date: Sat, 6 Dec 2025 15:56:26 +0100 Subject: [PATCH 7/7] refactor(ci): build actual client package instead of test project MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Building the real client package is more meaningful than creating a test project. The client package is complete with all hot reload files and properly validates the full Android build. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .github/workflows/ci.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 21a3b1c..c16c31c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -83,16 +83,15 @@ jobs: npm run build:core npm run build:cli - - name: Create test project + - name: Build Android client run: | - node packages/cli/bin/jetstart.js create test-ci-app --package com.jetstart.ci - cd test-ci-app + cd packages/client chmod +x gradlew ./gradlew assembleDebug --no-daemon - name: Upload APK artifact uses: actions/upload-artifact@v4 with: - name: test-app-debug - path: test-ci-app/app/build/outputs/apk/debug/app-debug.apk + name: jetstart-client-debug + path: packages/client/app/build/outputs/apk/debug/app-debug.apk retention-days: 7