chore: align tooling with apps-team standards#21
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brings
agglayer-dev-uicloser 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
npm→pnpm@10.30.3. Newpnpm-workspace.yamlwith the team's supply-chain hardening (blockExoticSubdeps,minimumReleaseAge: 1440,trustPolicy: no-downgrade, internal-scope excludes matching the template)..nvmrcpinned to Node 24.@polygonlabs/apps-team-lint(recommended/typescript/frontend) on ESLint v10. Droppedeslint-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..prettierrc.jsonmatches template values (printWidth: 100,trailingComma: none,singleQuote: true). Source-file churn is the formatting + import-order normalisation that comes with the switch.lint-staged+typecheck;commit-msgenforces conventional commits via@polygonlabs/apps-team-lint/commitlint.app/utils/address.test.ts(coversisValidEthereumAddress/isSameAddress/shortenAddress). Playwright remains the integration layer viapnpm run test:e2e.ci.yamlreplaced withci-trigger.ymlcalling0xPolygon/pipelines/.github/actions/ci@main(the shared composite action).claude-trigger.ymlandclaude-code-review-trigger.ymlcalling the shared workflows.deploy.yamlande2e.yamlupdated to usepnpm+node-version-file: .nvmrc+cache: pnpm..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).dist/andtsconfig.tsbuildinforemoved and added to.gitignore.package-lock.jsondeleted,pnpm-lock.yamladded.🤖 Generated with Claude Code