Skip to content
Merged
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
15 changes: 12 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
name: build

# Push/PR runs checks only; installers are built only for a release (release.yml sets package).
# Docs-only changes (*.md, docs/) skip CI entirely.
on:
push:
branches: [main]
paths-ignore: ['**.md', 'docs/**']
pull_request:
paths-ignore: ['**.md', 'docs/**']
workflow_dispatch:
# release.yml reuses this job for tagged builds.
workflow_call:
inputs:
package:
type: boolean
default: false

permissions:
contents: read
Expand Down Expand Up @@ -46,8 +53,10 @@ jobs:
- name: E2E smoke test
if: runner.os == 'Linux'
run: xvfb-run -a pnpm test:e2e
- run: pnpm ${{ matrix.dist }}
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
- if: inputs.package
run: pnpm ${{ matrix.dist }}
- if: inputs.package
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wraithgrid-${{ runner.os }}
path: ${{ matrix.artifacts }}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ jobs:
build:
needs: check
uses: ./.github/workflows/build.yml
with:
package: true

publish:
needs: build
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## 2026-09-30

- [ci] Build installers only on release tags; push/PR runs checks only, docs-only changes skip CI (files: .github/workflows/build.yml, .github/workflows/release.yml)
- [docs] Add the AI Working Agreement and context files (files: CLAUDE.md, CHANGELOG.md, docs/CONTEXT.md, docs/ARCHITECTURE.md, docs/DECISIONS.md, docs/TODO.md)

## 2026-09-29
Expand Down
3 changes: 2 additions & 1 deletion docs/CONTEXT.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ react-resizable-panels, @dnd-kit. Tests: Vitest (unit), Playwright (Electron e2e
- `src/renderer/styles/`: design tokens + base CSS
- `tests/unit/`, `tests/e2e/`, `tests/fixtures/fake-claude.sh`: tests + fake CLI
- `scripts/`: Docker Linux build, multi-distro package smoke test
- `build/`: icons; `.github/workflows/`: build.yml (CI), release.yml (tag → release)
- `build/`: icons; `.github/workflows/`: build.yml (CI checks; packages only when release.yml calls it), release.yml (tag → release)
- `docs/REQUIREMENTS.md`: original requirements (FR-*/NFR-* IDs); `docs/screenshots/`

## Conventions
Expand All @@ -70,6 +70,7 @@ react-resizable-panels, @dnd-kit. Tests: Vitest (unit), Playwright (Electron e2e
- Sandboxed preload can't require node_modules: preload is bundled (`externalizeDeps: false`).
- Single-instance lock: a second launch exits.
- Tests use `WRAITHGRID_USER_DATA_DIR` for a throwaway config dir.
- CI skips pushes touching only `*.md`/`docs/**`; installers build only on a `v*.*.*` tag.
- AppImage on Ubuntu 24.04+/Kali blocked by AppArmor; prefer .deb.

## Current focus
Expand Down
1 change: 1 addition & 0 deletions docs/DECISIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ Entries dated 2026-09-29 are reconstructed from the code and commit history duri
- 2026-09-29 | Update check reports only, from a hardcoded GitHub URL | Works for every package type; no SSRF from config | Auto-updater (electron-updater)
- 2026-09-29 | Platform logic as pure functions of `(platform, env)` | Unit-testable on any OS | Branching on `process.platform` inline
- 2026-09-30 | Adopt the AI Working Agreement (`CLAUDE.md`) + docs context files | Cut per-session re-exploration | None
- 2026-09-30 | CI builds installers only for release tags; docs-only pushes skip CI | Avoid rebuilding downloads on every push/doc edit | Separate package workflow (more files); manual workflow_dispatch packaging (not needed)