From 98061412c80fe93d2336d837e56f591d039d1f6f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 23 Nov 2025 00:58:13 +0000 Subject: [PATCH 1/4] Initial plan From 260a32d332aa7ee3942d9245c056b0fb1d39e21c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 23 Nov 2025 01:01:48 +0000 Subject: [PATCH 2/4] Add copilot setup yml and lean AGENTS.md inspired by cross-org/kv Co-authored-by: Hexagon <419737+Hexagon@users.noreply.github.com> --- .github/workflows/copilot-setup-steps.yml | 48 +++++++++++++++++++++++ AGENTS.md | 47 ++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 .github/workflows/copilot-setup-steps.yml create mode 100644 AGENTS.md diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml new file mode 100644 index 0000000..38674b9 --- /dev/null +++ b/.github/workflows/copilot-setup-steps.yml @@ -0,0 +1,48 @@ +name: "Copilot Setup Steps" + +# Automatically run the setup steps when they are changed to allow for easy validation, and +# allow manual testing through the repository's "Actions" tab +on: + workflow_dispatch: + push: + paths: + - .github/workflows/copilot-setup-steps.yml + pull_request: + paths: + - .github/workflows/copilot-setup-steps.yml + +jobs: + # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot. + copilot-setup-steps: + runs-on: ubuntu-latest + + # Set the permissions to the lowest permissions possible needed for your steps. + # Copilot will be given its own token for its operations. + permissions: + # If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission. If you don't clone the repository in your setup steps, Copilot will do this for you automatically after the steps complete. + contents: read + + # You can define any steps you want, and they will run before the agent starts. + # If you do not check out your code, Copilot will do this for you. + steps: + - name: Checkout code + uses: actions/checkout@v5 + + - name: Setup Deno + uses: denoland/setup-deno@v2 + with: + deno-version: v2.x + cache: true + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "lts/*" + + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version: latest + + - name: Cache dependencies + run: deno install diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..02fcbf5 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,47 @@ +# Agents quick checklist + +This repo uses cross-org reusable CI for Deno, Bun, and Node. Make your changes +pass the same checks locally. + +Source of truth: + +- Deno CI: + https://github.com/cross-org/workflows/blob/main/.github/workflows/deno-ci.yml +- Bun CI: + https://github.com/cross-org/workflows/blob/main/.github/workflows/bun-ci.yml +- Node CI: + https://github.com/cross-org/workflows/blob/main/.github/workflows/node-ci.yml + +Repo CI inputs (`.github/workflows/test.yml`): + +- Deno: entrypoint=mod.ts, lint_docs=false +- Bun: jsr deps: @std/assert @std/async @cross/runtime; npm deps: sinon +- Node: test_target=*.test.ts; jsr deps: @std/assert @std/async @cross/runtime; + npm deps: sinon + +Do before you commit: + +- Deno: deno fmt --check; deno lint; deno check mod.ts; deno test -A +- Bun: tests run with bun test after jsr/npm deps install +- Node (18/20/22): tests run with tsx; ESM required (package.json + {"type":"module"}) + +Keep in mind: + +- Don't break the public entrypoint (mod.ts). If you change it, update + test.yml. +- Prefer minimal diffs and stable public APIs. +- New deps must resolve via JSR/NPM across Deno/Bun/Node. +- Keep this file (AGENTS.md) lean if requested to add stuff. +- This is a cross-runtime testing framework - changes must work identically + across all three runtimes. + +Docs: + +- Keep README concise and focused on usage examples. +- Inline documentation in mod.ts should be comprehensive for JSR docs. + +Network access (Copilot workspace): + +- npmjs.org, registry.npmjs.org, deno.land, jsr.io +- github.com, raw.githubusercontent.com, bun.sh From bea900c3cc21cd2f2dc092ff19b1b195398fbfdc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 23 Nov 2025 01:03:14 +0000 Subject: [PATCH 3/4] Address code review feedback: Fix step name and remove package.json reference Co-authored-by: Hexagon <419737+Hexagon@users.noreply.github.com> --- .github/workflows/copilot-setup-steps.yml | 2 +- AGENTS.md | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index 38674b9..24c7401 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -44,5 +44,5 @@ jobs: with: bun-version: latest - - name: Cache dependencies + - name: Install dependencies run: deno install diff --git a/AGENTS.md b/AGENTS.md index 02fcbf5..ff5a86b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -23,8 +23,7 @@ Do before you commit: - Deno: deno fmt --check; deno lint; deno check mod.ts; deno test -A - Bun: tests run with bun test after jsr/npm deps install -- Node (18/20/22): tests run with tsx; ESM required (package.json - {"type":"module"}) +- Node (18/20/22): tests run with tsx; ESM required Keep in mind: From 850f3995d6c1ffad223e883772ed18ca25183f6b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 23 Nov 2025 11:04:32 +0000 Subject: [PATCH 4/4] Fix AGENTS.md formatting for Deno fmt Co-authored-by: Hexagon <419737+Hexagon@users.noreply.github.com> --- AGENTS.md | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index ff5a86b..06d0c3c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,23 +1,18 @@ # Agents quick checklist -This repo uses cross-org reusable CI for Deno, Bun, and Node. Make your changes -pass the same checks locally. +This repo uses cross-org reusable CI for Deno, Bun, and Node. Make your changes pass the same checks locally. Source of truth: -- Deno CI: - https://github.com/cross-org/workflows/blob/main/.github/workflows/deno-ci.yml -- Bun CI: - https://github.com/cross-org/workflows/blob/main/.github/workflows/bun-ci.yml -- Node CI: - https://github.com/cross-org/workflows/blob/main/.github/workflows/node-ci.yml +- Deno CI: https://github.com/cross-org/workflows/blob/main/.github/workflows/deno-ci.yml +- Bun CI: https://github.com/cross-org/workflows/blob/main/.github/workflows/bun-ci.yml +- Node CI: https://github.com/cross-org/workflows/blob/main/.github/workflows/node-ci.yml Repo CI inputs (`.github/workflows/test.yml`): - Deno: entrypoint=mod.ts, lint_docs=false - Bun: jsr deps: @std/assert @std/async @cross/runtime; npm deps: sinon -- Node: test_target=*.test.ts; jsr deps: @std/assert @std/async @cross/runtime; - npm deps: sinon +- Node: test_target=*.test.ts; jsr deps: @std/assert @std/async @cross/runtime; npm deps: sinon Do before you commit: @@ -27,13 +22,11 @@ Do before you commit: Keep in mind: -- Don't break the public entrypoint (mod.ts). If you change it, update - test.yml. +- Don't break the public entrypoint (mod.ts). If you change it, update test.yml. - Prefer minimal diffs and stable public APIs. - New deps must resolve via JSR/NPM across Deno/Bun/Node. - Keep this file (AGENTS.md) lean if requested to add stuff. -- This is a cross-runtime testing framework - changes must work identically - across all three runtimes. +- This is a cross-runtime testing framework - changes must work identically across all three runtimes. Docs: