You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit aeb2543
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: .github/copilot-instructions.md
+14-10Lines changed: 14 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,8 +6,7 @@ Gitify is a multi-forge notification client — an Electron desktop app that sur
6
6
7
7
## Prerequisites and Setup
8
8
9
-
-**Node.js**: `>=24` (`.nvmrc` pins `24.18.0`). Use `nvm use` to activate the right version.
10
-
-**Install pnpm globally**: `npm install -g pnpm`
9
+
-**Development tools**: Install [mise](https://mise.jdx.dev/), then run `mise install` to activate the Node.js and pnpm versions pinned in `mise.toml`.
11
10
-**Bootstrap the repository**: `pnpm install` — takes up to a minute on a clean install. NEVER CANCEL. Set timeout to 5+ minutes.
12
11
13
12
## Key Commands
@@ -17,7 +16,7 @@ Gitify is a multi-forge notification client — an Electron desktop app that sur
17
16
|`pnpm dev`| Vite dev server + GraphQL codegen watch (main development loop) |~10s to start |
18
17
|`pnpm build`| Production build for all Electron targets (main, preload, renderer, shared) |~30s clean |
19
18
|`pnpm test`| Run full Vitest suite with coverage |~15s |
@@ -26,7 +25,7 @@ Gitify is a multi-forge notification client — an Electron desktop app that sur
26
25
## Development Workflow
27
26
28
27
-**Day-to-day development**: `pnpm dev` — starts both the Vite dev server and GraphQL codegen watcher concurrently. Leave running while developing.
29
-
-**Full build**: `pnpm build` — builds all targets via `vp build`. Output goes to `build/` (subdirectories: `main/`, `preload/`, `renderer/`, `shared/`).
28
+
-**Full build**: `pnpm build` — builds all targets via Vite. Output goes to `build/` (subdirectories: `main/`, `preload/`, `renderer/`, `shared/`).
30
29
-**Run the Electron app**: `pnpm start` — runs `pnpm build` then `pnpm dev`. Will fail in headless/container environments due to Electron sandbox restrictions (this is expected and normal).
31
30
32
31
## Validation
@@ -40,7 +39,7 @@ After making changes, validate in this order:
40
39
41
40
**Snapshot test failures**: Run `pnpm test -u` to regenerate after legitimate UI changes.
@@ -83,7 +86,7 @@ Requires a prior `pnpm build` and platform-specific tooling:
83
86
## Constraints and Gotchas
84
87
85
88
-**Electron won't start in CI/containers**: Sandbox restrictions make `pnpm start` / `pnpm dev` fail headlessly. This is expected — test logic; don't try to fix the launch.
86
-
-**Node version is strict**: `>=24` required. Check `.nvmrc` and run `nvm use` if commands behave oddly.
89
+
-**Node version is strict**: `>=24` required. Run `mise install` if commands use the wrong Node.js or pnpm version.
87
90
-**Snapshot drift on non-UTC machines**: Some snapshot tests encode relative dates. Tests may fail locally if your timezone differs from UTC. The test setup stubs `TZ=UTC` via `vi.stubEnv`.
88
91
-**Lint warnings are OK**: The codebase has pre-existing lint warnings. Only new errors block CI.
89
92
-**GraphQL codegen**: Running `pnpm dev` auto-watches for schema changes. If you edit `.graphql` files manually, re-run `pnpm codegen` to regenerate `graphql/generated/graphql.ts`.
@@ -102,9 +105,10 @@ This is a notification _viewer_, not a full forge client. Keep changes:
102
105
-**Electron 43+** — desktop app host
103
106
-**React 19+** — UI
104
107
-**TypeScript 5+** — language
105
-
-**pnpm 10+** — package manager
106
-
-**Vite + vite-plus** — unified build, dev, lint (`oxlint`), format (`oxfmt`), and test toolchain. The `vp` CLI drives all tooling.
107
-
-**Vitest** — test runner (via `vp test`); `@testing-library/jest-dom` provides DOM matchers
108
+
-**pnpm 11+** — package manager
109
+
-**Vite** — development server and build tool
110
+
-**Vitest** — test runner; `@testing-library/jest-dom` provides DOM matchers
111
+
-**Oxlint and Oxfmt** — linting and formatting
108
112
-**Tailwind CSS v4** — styling
109
113
-**Zustand** — client state management
110
114
-**TanStack Query** — server state / notification fetching
echo "::error::vp migrate produced changes. This means vite-plus, vite, vitest, or the @vitest/* family have drifted out of alignment. Run 'pnpm exec vp migrate' locally and commit the result."
0 commit comments