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
3 changes: 2 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ jobs:
- uses: oven-sh/setup-bun@v2
- run: bun install --frozen-lockfile
- run: bun run typecheck
- run: bun test
- run: bun run typecheck:e2e
- run: bun run test
- run: bun run build
- name: node smoke
run: |
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ Instructions for AI agents working in this repository.

```bash
bun install
bun test
bun run test
```
11 changes: 9 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
```bash
bun install
bun run typecheck
bun run typecheck:live
bun run typecheck:e2e
bun run test
bun run build
```
Expand All @@ -23,7 +23,7 @@ GMAIL_LIVE_TEST=1 \
GMAIL_LIVE_CLIENT_ID='...' \
GMAIL_LIVE_CLIENT_SECRET='...' \
GMAIL_LIVE_FIXTURE_QUERY='subject:(interchange-gmail-e2e-fixture)' \
bun run test:live
bun run test:e2e
```

The full live suite has been verified against a dedicated Gmail fixture account.
Expand All @@ -45,3 +45,10 @@ deletes its draft, restores the fixture labels, and never sends email.
The first run opens Google OAuth and stores the refresh token in the ignored
`.local/gmail-live-token.json` file. Set `GMAIL_LIVE_TOKEN_FILE` when using a
different token file. Credentials and message contents are not logged.

## Commit messages

Commit subjects and PR titles follow [Conventional Commits](https://www.conventionalcommits.org): `feat`, `fix`, `refactor`, `test`, `docs`, `build`, `ci`, `perf`, and `chore(release): x.y.z` for releases.
Add `!` only for public API breaks: removed or renamed exports, changed signatures, newly required params. Peer and dependency range changes are `build(deps):` with no `!`.
Keep subjects imperative, lowercase after the colon, 72 characters or less, and free of ticket IDs.
Every PR links its issue with a `Closes <issue id>` line in the PR body.
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { afterAll, beforeAll, describe, expect, test } from "bun:test";

import { getArray, getString, isRecord } from "./json.js";
import {
createLiveHarness,
getArray,
getString,
isRecord,
toolData,
} from "./live-harness.js";
} from "./helpers.js";

const LIVE_TEST_TIMEOUT_MS = 60_000;
const mutationEnabled =
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { afterAll, beforeAll, describe, expect, test } from "bun:test";

import { createLiveHarness, toolData, toolId } from "./live-harness.js";
import { createLiveHarness, toolData, toolId } from "./helpers.js";

const LIVE_TEST_TIMEOUT_MS = 60_000;

Expand Down
Loading
Loading