From 5a86ab097fd1f74ebd193674a3897238dc3daefb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E9=98=BF=E6=B1=9F=28Relakkes?= =?UTF-8?q?=29?= Date: Tue, 21 Apr 2026 01:29:25 +0800 Subject: [PATCH] Capture the desktop release workflow where agents will actually look The recent release automation and docs-workflow fixes are durable repository rules now, but they only lived in live context and recent commits. This adds a compact AGENTS.md memory block so future agents follow the remote desktop release path, use release-notes/vX.Y.Z.md as the GitHub Release source, and remember the npm lockfile requirement for the docs workflow. Constraint: AGENTS.md should stay compact and high-signal rather than turning into a changelog Rejected: Document the full release procedure in detail inside AGENTS.md | too much operational noise for the repo memory layer Confidence: high Scope-risk: narrow Reversibility: clean Directive: Keep AGENTS.md limited to durable workflow rules; do not expand it with transient release-specific prose Tested: git diff --check Not-tested: No runtime verification required for documentation-only guidance update --- AGENTS.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 19f9354e..fbce778b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -14,6 +14,18 @@ Install root dependencies with `bun install`, then install desktop dependencies - `cd desktop && bun run test`: run Vitest suites. - `cd desktop && bun run lint`: run TypeScript no-emit checks. +## Desktop Release Workflow +- Desktop releases are built remotely by GitHub Actions, not by uploading local build artifacts. +- The release workflow is `.github/workflows/release-desktop.yml`; it triggers automatically on `push` of tags matching `v*.*.*`. +- GitHub Release body is sourced from `release-notes/vX.Y.Z.md` in the tagged commit. Keep the filename aligned with the version/tag exactly. +- Use `bun run scripts/release.ts ` to cut a desktop release. The script updates version files, refreshes `desktop/src-tauri/Cargo.lock`, requires the matching `release-notes/vX.Y.Z.md`, commits it, and creates the annotated tag. +- The normal release push is `git push origin main --tags`. If the tag, app version, or release-notes filename do not match, the workflow is designed to fail fast instead of publishing the wrong release. +- For local macOS test packaging, `desktop/scripts/build-macos-arm64.sh` is the canonical Apple Silicon build entrypoint, and outputs land under `desktop/build-artifacts/macos-arm64/`. + +## Docs Workflow Notes +- The docs workflow is `.github/workflows/deploy-docs.yml` and uses `npm ci`, not Bun. When root `package.json` dependencies change, keep `package-lock.json` in the same commit or the docs build will fail. +- The docs workflow currently runs on Node 22; avoid reintroducing older Node assumptions there without checking dependency engine requirements. + ## Coding Style & Naming Conventions Use TypeScript with 2-space indentation, ESM imports, and no semicolons to match the existing code. Prefer `PascalCase` for React components, `camelCase` for functions, hooks, and stores, and descriptive file names like `teamWatcher.ts` or `AgentTranscript.tsx`. Keep shared UI in `desktop/src/components/`, API clients in `desktop/src/api/`, and avoid adding new dependencies unless the existing utilities cannot cover the change.