Skip to content

chore: align repo scaffolding with the package standard - #11

Merged
TheGreatAxios merged 5 commits into
cl-9370-google-tools-switch-to-oxfmt-and-oxlintfrom
cl-9393-google-tools-align-repo-scaffolding-with-the-package
Sep 27, 2026
Merged

TheGreatAxios merged 5 commits into
cl-9370-google-tools-switch-to-oxfmt-and-oxlintfrom
cl-9393-google-tools-align-repo-scaffolding-with-the-package

Conversation

@TheGreatAxios

@TheGreatAxios TheGreatAxios commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Closes CL-9393

Summary

  • LICENSE: the Interchange LGPL-2.1 text, byte-identical across @corbits repos (was the FSF text); add CLA.md and the cla.yml CLA Assistant workflow
  • package.json: drop main/types (exports covers Node 24 and Bun); engines adds bun; files lists README.md before LICENSE as in every repo; typecheck is plain tsc --noEmit (now covering e2e/), typecheck:e2e is gone, test adds --pass-with-no-tests, and a new check runs typecheck, lint, format check and unit tests. Key order is oxfmt's
  • tsconfig.json and tsconfig.build.json follow the standard templates; delete tsconfig.e2e.json and tsconfig.typecheck.json. The typecheck config gains exactOptionalPropertyTypes, isolatedModules, moduleDetection and resolveJsonModule, loses noFallthroughCasesInSwitch, and uses Bun types only
  • exactOptionalPropertyTypes fixes (no behavior change):
    • src/client/client.ts: optional fields on GmailRequest and the GmailClient method options accept undefined, since the tools forward optional inputs as-is
    • src/tools/models.ts: messageMetadata reads the subject and from headers once and omits the key when absent
    • e2e/helpers.ts: build the signed Request from the source request or the URL string in separate branches
  • .gitignore: the standard list plus .local/, which holds the live suite's Gmail refresh token
  • ci.yml: runs on pull requests and pushes to main (was every branch push); bun run check, then a pack-and-import smoke under Node 24 that installs the tarball and checks createGmailTools, createGmailClient and GmailApiError (the old smoke imported ./dist directly); drops the single-entry matrix
  • CONTRIBUTING.md: the standard template plus a CLA line and a shortened Live Gmail checks section (same env vars and fixture rules)
  • AGENTS.md: rewritten from the placeholder to purpose, layout, rules and local development
  • Delete CLAUDE.md (Bun's generated boilerplate)
  • README: rename the "Tools" section to "Reference"

Stacked on #10.

  • CONTRIBUTING gets a Releasing section: releases are manual, as in Interchange (npm version, push tags, gh release create --generate-notes, npm publish).

Commits

  1. refactor: type optional Gmail fields for exactOptionalPropertyTypes
  2. chore: use the Interchange LICENSE text and add the CLA
  3. build: align package.json and tsconfig with the package standard
  4. ci: run check and a Node pack smoke
  5. docs: trim CONTRIBUTING, rewrite AGENTS.md, drop CLAUDE.md

Checks

bun run build, bun run check and bun run test:e2e (live suites skipped) pass; the Node pack smoke passes locally.

@TheGreatAxios
TheGreatAxios added this pull request to stack #9 September 26, 2026 03:00
@TheGreatAxios
TheGreatAxios force-pushed the cl-9393-google-tools-align-repo-scaffolding-with-the-package branch from 49cb975 to db4214d Compare September 26, 2026 03:01
@TheGreatAxios
TheGreatAxios force-pushed the cl-9393-google-tools-align-repo-scaffolding-with-the-package branch from db4214d to 85f1bc1 Compare September 26, 2026 04:12
@TheGreatAxios
TheGreatAxios merged commit ae820e8 into main Sep 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant