Repository navigation
Shared unfocused agent window, reload tool, input stall fix (#5) #22
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: release | |
| on: | |
| push: | |
| tags: ["v*"] | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| - name: Install daemon deps | |
| run: npm ci | |
| working-directory: daemon | |
| - name: Daemon end-to-end tests (fake extension + real MCP client) | |
| run: npm test | |
| working-directory: daemon | |
| - name: GIF encoder round-trip tests | |
| run: node test/gif-encoder.test.mjs | |
| working-directory: daemon | |
| release: | |
| needs: test | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Package extension (loadable via chrome://extensions) | |
| run: | | |
| cd extension | |
| zip -qr "../TaskWindow-extension-${GITHUB_REF_NAME}.zip" . | |
| - name: Package daemon (npx-ready) | |
| run: | | |
| cp README.md daemon/README.md | |
| cp LICENSE daemon/LICENSE | |
| cd daemon | |
| zip -qr "../TaskWindow-daemon-${GITHUB_REF_NAME}.zip" . -x "node_modules/*" | |
| - name: Create GitHub release | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| # Release notes = this version's CHANGELOG.md section + the install | |
| # boilerplate. Deliberately not the tag annotation: `git tag -m` | |
| # strips lines starting with '#', which silently eats markdown | |
| # headings. A missing section just yields install-only notes. | |
| awk -v v="${GITHUB_REF_NAME#v}" ' | |
| $0 ~ "^## +"v"([^0-9.]|$)" { inside = 1; next } | |
| inside && /^## / { exit } | |
| inside { print } | |
| ' CHANGELOG.md > notes.md || : > notes.md | |
| if [ -s notes.md ]; then printf '\n' >> notes.md; fi | |
| cat >> notes.md <<'EOF' | |
| ## Install | |
| Run `npm install -g taskwindow@latest`, then `taskwindow install`. The guided installer configures the daemon and selected coding agents, downloads the extension, opens Chrome, and pairs automatically after you load the unpacked folder. | |
| Manual archives are attached below. Run `taskwindow doctor` for connection diagnostics or `taskwindow pair` for manual recovery. | |
| See the README for the full guide. | |
| EOF | |
| gh release create "$GITHUB_REF_NAME" \ | |
| "TaskWindow-extension-${GITHUB_REF_NAME}.zip" \ | |
| "TaskWindow-daemon-${GITHUB_REF_NAME}.zip" \ | |
| --title "TaskWindow ${GITHUB_REF_NAME}" \ | |
| --notes-file notes.md | |
| - name: Publish daemon to npm | |
| working-directory: daemon | |
| env: | |
| NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| run: | | |
| if [ -z "$NPM_TOKEN" ]; then | |
| echo "NPM_TOKEN secret not set — skipping npm publish" | |
| exit 0 | |
| fi | |
| echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc | |
| npm publish --access public |