From 8ad69ee54275273d1bceb6239da8584c2cfb1d52 Mon Sep 17 00:00:00 2001 From: skulidropek Date: Wed, 11 Feb 2026 11:22:45 +0000 Subject: [PATCH 1/5] fix(ci): disable npm publish in release workflow --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ec33349e..19a8a08b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,7 +26,7 @@ jobs: package_json_path: packages/app/package.json pnpm_filter: ./packages/app bump_type: patch - publish_npm: true + publish_npm: false publish_github_packages: true skip_if_unchanged: true cancel_on_no_changes: true From f231ef20bd8668b2fb288c2eccacab9ce04e7179 Mon Sep 17 00:00:00 2001 From: skulidropek Date: Wed, 11 Feb 2026 11:31:18 +0000 Subject: [PATCH 2/5] fix(ci): gate npm publish on token/access checks --- .github/workflows/release.yml | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 19a8a08b..2b16bbdd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,6 +17,36 @@ jobs: if: github.event.workflow_run.conclusion == 'success' runs-on: ubuntu-latest steps: + - name: Detect npm publish eligibility + id: npm_gate + shell: bash + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + set -euo pipefail + echo "publish_npm=false" >> "$GITHUB_OUTPUT" + + if [ -z "${NPM_TOKEN:-}" ]; then + echo "::notice::NPM_TOKEN is empty; npm publish disabled for this run." + exit 0 + fi + + printf '%s\n' "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > "$HOME/.npmrc" + + if ! npm whoami >/dev/null 2>&1; then + echo "::warning::NPM_TOKEN is invalid/revoked; npm publish disabled for this run." + exit 0 + fi + + # Current workspace publishes @effect-template/* packages. + if ! npm access ls-packages effect-template >/dev/null 2>&1; then + echo "::warning::No publish access to npm scope 'effect-template'; npm publish disabled for this run." + exit 0 + fi + + echo "publish_npm=true" >> "$GITHUB_OUTPUT" + echo "::notice::npm publish is enabled for this run." + - uses: ProverCoderAI/action-release@v1.0.17 with: github_token: ${{ secrets.GITHUB_TOKEN }} @@ -26,7 +56,7 @@ jobs: package_json_path: packages/app/package.json pnpm_filter: ./packages/app bump_type: patch - publish_npm: false + publish_npm: ${{ steps.npm_gate.outputs.publish_npm }} publish_github_packages: true skip_if_unchanged: true cancel_on_no_changes: true From dc40d5c67568ea273c9b3655976bc8acce002d97 Mon Sep 17 00:00:00 2001 From: skulidropek Date: Wed, 11 Feb 2026 12:01:53 +0000 Subject: [PATCH 3/5] fix(release): publish app cli as @prover-coder-ai/docker-git --- .github/workflows/release.yml | 15 ++++++++++----- package.json | 24 ++++++++++++------------ packages/app/CHANGELOG.md | 2 +- packages/app/package.json | 18 +++++++++++------- 4 files changed, 34 insertions(+), 25 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2b16bbdd..3306ed5d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,6 +26,10 @@ jobs: set -euo pipefail echo "publish_npm=false" >> "$GITHUB_OUTPUT" + PKG_PATH="packages/app/package.json" + PKG_NAME="$(node -p "require('./${PKG_PATH}').name")" + PKG_SCOPE="$(printf "%s" "$PKG_NAME" | sed -n 's#^@\([^/]*\)/.*#\1#p')" + if [ -z "${NPM_TOKEN:-}" ]; then echo "::notice::NPM_TOKEN is empty; npm publish disabled for this run." exit 0 @@ -38,14 +42,15 @@ jobs: exit 0 fi - # Current workspace publishes @effect-template/* packages. - if ! npm access ls-packages effect-template >/dev/null 2>&1; then - echo "::warning::No publish access to npm scope 'effect-template'; npm publish disabled for this run." - exit 0 + if [ -n "$PKG_SCOPE" ]; then + if ! npm access ls-packages "$PKG_SCOPE" >/dev/null 2>&1; then + echo "::warning::No publish access to npm scope '$PKG_SCOPE'; npm publish disabled for this run." + exit 0 + fi fi echo "publish_npm=true" >> "$GITHUB_OUTPUT" - echo "::notice::npm publish is enabled for this run." + echo "::notice::npm publish is enabled for package ${PKG_NAME}." - uses: ProverCoderAI/action-release@v1.0.17 with: diff --git a/package.json b/package.json index 72cfbdf6..99c0e33c 100644 --- a/package.json +++ b/package.json @@ -8,21 +8,21 @@ "packages/*" ], "scripts": { - "build": "pnpm --filter @effect-template/app build", - "check": "pnpm --filter @effect-template/app check", + "build": "pnpm --filter ./packages/app build", + "check": "pnpm --filter ./packages/app check", "changeset": "changeset", "changeset-publish": "node -e \"if (!process.env.NPM_TOKEN) { console.log('Skipping publish: NPM_TOKEN is not set'); process.exit(0); }\" && changeset publish", "changeset-version": "changeset version", - "clone": "pnpm --filter @effect-template/app build && node packages/app/dist/main.js clone", - "docker-git": "pnpm --filter @effect-template/app build:docker-git && node packages/app/dist/src/docker-git/main.js", - "list": "pnpm --filter @effect-template/app build && node packages/app/dist/main.js list", - "dev": "pnpm --filter @effect-template/app dev", - "lint": "pnpm --filter @effect-template/app lint", - "lint:tests": "pnpm --filter @effect-template/app lint:tests", - "lint:effect": "pnpm --filter @effect-template/app lint:effect", - "test": "pnpm --filter @effect-template/app test", - "typecheck": "pnpm --filter @effect-template/app typecheck", - "start": "pnpm --filter @effect-template/app start" + "clone": "pnpm --filter ./packages/app build && node packages/app/dist/main.js clone", + "docker-git": "pnpm --filter ./packages/app build:docker-git && node packages/app/dist/src/docker-git/main.js", + "list": "pnpm --filter ./packages/app build && node packages/app/dist/main.js list", + "dev": "pnpm --filter ./packages/app dev", + "lint": "pnpm --filter ./packages/app lint", + "lint:tests": "pnpm --filter ./packages/app lint:tests", + "lint:effect": "pnpm --filter ./packages/app lint:effect", + "test": "pnpm --filter ./packages/app test", + "typecheck": "pnpm --filter ./packages/app typecheck", + "start": "pnpm --filter ./packages/app start" }, "devDependencies": { "@changesets/changelog-github": "^0.5.2", diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index bf645cb3..7abf14e9 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,4 +1,4 @@ -# @effect-template/app +# @prover-coder-ai/docker-git ## 1.0.2 diff --git a/packages/app/package.json b/packages/app/package.json index f93842fb..69a13c42 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,14 +1,18 @@ { - "name": "@effect-template/app", + "name": "@prover-coder-ai/docker-git", "version": "1.0.2", "description": "Minimal Vite-powered TypeScript console starter using Effect", - "main": "dist/main.js", + "main": "dist/src/docker-git/main.js", + "bin": { + "docker-git": "dist/src/docker-git/main.js" + }, "directories": { "doc": "doc" }, "scripts": { "prebuild": "pnpm -C ../lib build", - "build": "vite build --ssr src/app/main.ts", + "build": "pnpm run build:app && pnpm run build:docker-git", + "build:app": "vite build --ssr src/app/main.ts", "dev": "vite build --watch --ssr src/app/main.ts", "prelint": "pnpm -C ../lib build", "lint": "npx @ton-ai-core/vibecode-linter src/", @@ -18,7 +22,7 @@ "build:docker-git": "tsc -p tsconfig.json", "check": "pnpm run typecheck", "clone": "pnpm -C ../.. run clone", - "docker-git": "pnpm -C ../.. run docker-git", + "docker-git": "node dist/src/docker-git/main.js", "list": "pnpm -C ../.. run list", "prestart": "pnpm run build", "start": "node dist/main.js", @@ -29,7 +33,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/ProverCoderAI/effect-template.git" + "url": "git+https://github.com/ProverCoderAI/docker-git.git" }, "keywords": [ "effect", @@ -41,9 +45,9 @@ "license": "ISC", "type": "module", "bugs": { - "url": "https://github.com/ProverCoderAI/effect-template/issues" + "url": "https://github.com/ProverCoderAI/docker-git/issues" }, - "homepage": "https://github.com/ProverCoderAI/effect-template#readme", + "homepage": "https://github.com/ProverCoderAI/docker-git#readme", "packageManager": "pnpm@10.28.0", "dependencies": { "@effect-template/lib": "workspace:*", From 2170d9b363a4f66407269cb3842a5db955d29372 Mon Sep 17 00:00:00 2001 From: skulidropek Date: Wed, 11 Feb 2026 12:07:10 +0000 Subject: [PATCH 4/5] chore(ci): drop custom release workflow changes --- .github/workflows/release.yml | 37 +---------------------------------- 1 file changed, 1 insertion(+), 36 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3306ed5d..ec33349e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,41 +17,6 @@ jobs: if: github.event.workflow_run.conclusion == 'success' runs-on: ubuntu-latest steps: - - name: Detect npm publish eligibility - id: npm_gate - shell: bash - env: - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - run: | - set -euo pipefail - echo "publish_npm=false" >> "$GITHUB_OUTPUT" - - PKG_PATH="packages/app/package.json" - PKG_NAME="$(node -p "require('./${PKG_PATH}').name")" - PKG_SCOPE="$(printf "%s" "$PKG_NAME" | sed -n 's#^@\([^/]*\)/.*#\1#p')" - - if [ -z "${NPM_TOKEN:-}" ]; then - echo "::notice::NPM_TOKEN is empty; npm publish disabled for this run." - exit 0 - fi - - printf '%s\n' "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > "$HOME/.npmrc" - - if ! npm whoami >/dev/null 2>&1; then - echo "::warning::NPM_TOKEN is invalid/revoked; npm publish disabled for this run." - exit 0 - fi - - if [ -n "$PKG_SCOPE" ]; then - if ! npm access ls-packages "$PKG_SCOPE" >/dev/null 2>&1; then - echo "::warning::No publish access to npm scope '$PKG_SCOPE'; npm publish disabled for this run." - exit 0 - fi - fi - - echo "publish_npm=true" >> "$GITHUB_OUTPUT" - echo "::notice::npm publish is enabled for package ${PKG_NAME}." - - uses: ProverCoderAI/action-release@v1.0.17 with: github_token: ${{ secrets.GITHUB_TOKEN }} @@ -61,7 +26,7 @@ jobs: package_json_path: packages/app/package.json pnpm_filter: ./packages/app bump_type: patch - publish_npm: ${{ steps.npm_gate.outputs.publish_npm }} + publish_npm: true publish_github_packages: true skip_if_unchanged: true cancel_on_no_changes: true From 64906db88952ac318f499f7ffc553875aebadd09 Mon Sep 17 00:00:00 2001 From: skulidropek Date: Wed, 11 Feb 2026 12:20:40 +0000 Subject: [PATCH 5/5] fix(ci): keep app dist free of test-only deps --- packages/app/package.json | 2 +- packages/app/tsconfig.build.json | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 packages/app/tsconfig.build.json diff --git a/packages/app/package.json b/packages/app/package.json index 69a13c42..c1341b91 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -19,7 +19,7 @@ "lint:tests": "npx @ton-ai-core/vibecode-linter tests/", "lint:effect": "npx eslint --config eslint.effect-ts-check.config.mjs .", "prebuild:docker-git": "pnpm -C ../lib build", - "build:docker-git": "tsc -p tsconfig.json", + "build:docker-git": "tsc -p tsconfig.build.json", "check": "pnpm run typecheck", "clone": "pnpm -C ../.. run clone", "docker-git": "node dist/src/docker-git/main.js", diff --git a/packages/app/tsconfig.build.json b/packages/app/tsconfig.build.json new file mode 100644 index 00000000..9b8b523c --- /dev/null +++ b/packages/app/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "types": [] + }, + "include": ["src/**/*"], + "exclude": ["dist", "node_modules", "tests/**/*", "vite.config.ts", "vitest.config.ts"] +}