Skip to content

chore: align tooling with apps-team standards#21

Merged
shan8851 merged 1 commit into
mainfrom
chore/team-standards-alignment
May 19, 2026
Merged

chore: align tooling with apps-team standards#21
shan8851 merged 1 commit into
mainfrom
chore/team-standards-alignment

Conversation

@shan8851

@shan8851 shan8851 commented May 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Brings agglayer-dev-ui closer to the Polygon Apps Team's reference shape. Headline change is npm → pnpm; the rest is mechanical tooling alignment that follows from it.

What changed

  • Package manager: npmpnpm@10.30.3. New pnpm-workspace.yaml with the team's supply-chain hardening (blockExoticSubdeps, minimumReleaseAge: 1440, trustPolicy: no-downgrade, internal-scope excludes matching the template). .nvmrc pinned to Node 24.
  • ESLint: now composes @polygonlabs/apps-team-lint (recommended / typescript / frontend) on ESLint v10. Dropped eslint-config-next — its transitive sub-plugins (eslint-plugin-react@7.37.5, eslint-plugin-import@2.32.0, eslint-plugin-jsx-a11y@6.10.2) don't support ESLint v10 yet and crash at lint time. The @next/next/* rules they added were not load-bearing.
  • Prettier: .prettierrc.json matches template values (printWidth: 100, trailingComma: none, singleQuote: true). Source-file churn is the formatting + import-order normalisation that comes with the switch.
  • Husky + lint-staged + commitlint: full template setup. Pre-commit runs lint-staged + typecheck; commit-msg enforces conventional commits via @polygonlabs/apps-team-lint/commitlint.
  • Vitest scaffolded with one smoke test in app/utils/address.test.ts (covers isValidEthereumAddress / isSameAddress / shortenAddress). Playwright remains the integration layer via pnpm run test:e2e.
  • GitHub Actions:
    • Old custom ci.yaml replaced with ci-trigger.yml calling 0xPolygon/pipelines/.github/actions/ci@main (the shared composite action).
    • New claude-trigger.yml and claude-code-review-trigger.yml calling the shared workflows.
    • deploy.yaml and e2e.yaml updated to use pnpm + node-version-file: .nvmrc + cache: pnpm.
  • New files: .github/CODEOWNERS (@agglayer/polygon-application-team), .claude/settings.json (WebFetch allow for the team-standards gist), CLAUDE.md (team-standards fetch header + repo-specific notes including the wallet/wagmi pinning rationale).
  • Cleanup: tracked dist/ and tsconfig.tsbuildinfo removed and added to .gitignore. package-lock.json deleted, pnpm-lock.yaml added.

🤖 Generated with Claude Code

Brings agglayer-dev-ui closer to the Polygon Apps Team's reference
shape so future cross-repo tooling changes apply uniformly. Headline
change is the package-manager swap (npm -> pnpm); the rest is the
mechanical tooling alignment that follows from it.

What changed
- Package manager: npm -> pnpm@10.30.3. pnpm-workspace.yaml with the
  team's supply-chain hardening (blockExoticSubdeps, minimumReleaseAge,
  trustPolicy: no-downgrade, internal-scope excludes). .nvmrc pinned
  to Node 24.
- ESLint: now composes @polygonlabs/apps-team-lint (recommended /
  typescript / frontend) on ESLint v10. eslint-config-next dropped --
  its sub-plugins (eslint-plugin-react etc.) crash on v10 today and
  the @next/next/* rules are not load-bearing.
- Prettier: .prettierrc.json matches template values (printWidth 100,
  trailingComma none, singleQuote). Source-file churn is the
  formatting and import-order normalisation that comes with the switch.
- Husky + lint-staged + commitlint: full template setup so every
  commit runs lint-staged + typecheck, and commit messages enforce
  conventional commits.
- Vitest scaffolded with one smoke test covering app/utils/address.ts
  (Playwright e2e remains the integration layer).
- GitHub Actions: old custom ci.yaml replaced with the shared
  composite action via ci-trigger.yml. claude-trigger.yml and
  claude-code-review-trigger.yml added. deploy.yaml and e2e.yaml
  updated to pnpm.
- CODEOWNERS, .claude/settings.json, CLAUDE.md added.

pnpm strict layout surfaced three real findings npm hoisting was
hiding: @wagmi/core and @next/env were imported but not declared, and
Reown's optional `@wagmi/connectors >= 5.9.9` greedily resolved to v8
(a wagmi-v3 package) which fails the Next build. The first two are
now explicit deps; the third is constrained via a pnpm `overrides`
entry pinning @wagmi/connectors to ^5.9.9.

Out of scope (captured in CLAUDE.md)
- @reown/appkit* stays -- @0xsequence/connect does not support
  Agglayer-specific chains, so this app stays on Reown indefinitely.
  wagmi stays on v2 for the same reason (Reown's optional deps target
  the v2 connectors ecosystem).
- Vite migration, three-tier tsconfig, changesets -- not applicable
  or not worth doing in this pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@shan8851 shan8851 deployed to production May 15, 2026 14:08 — with GitHub Actions Active
@shan8851 shan8851 marked this pull request as ready for review May 15, 2026 14:13

@MaximusHaximus MaximusHaximus left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@shan8851 shan8851 merged commit 6179553 into main May 19, 2026
8 checks passed
@shan8851 shan8851 deleted the chore/team-standards-alignment branch May 19, 2026 08:45
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.

2 participants