Skip to content

Shared unfocused agent window, reload tool, input stall fix (#5) #22

Shared unfocused agent window, reload tool, input stall fix (#5)

Shared unfocused agent window, reload tool, input stall fix (#5) #22

Workflow file for this run

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