Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
438 commits
Select commit Hold shift + click to select a range
f583e57
i18n(mr): LLM translation
wackerow Apr 27, 2026
f4f27ff
i18n(pl): LLM translation
wackerow Apr 27, 2026
bf7fd5b
i18n(pt-br): LLM translation
wackerow Apr 27, 2026
8a70845
i18n(ru): LLM translation
wackerow Apr 27, 2026
4996788
i18n(sw): LLM translation
wackerow Apr 27, 2026
4f81c4c
i18n(ta): LLM translation
wackerow Apr 27, 2026
398526a
i18n(te): LLM translation
wackerow Apr 27, 2026
be98ddd
i18n(tr): LLM translation
wackerow Apr 27, 2026
f5bc21e
i18n(uk): LLM translation
wackerow Apr 27, 2026
081d330
i18n(ur): LLM translation
wackerow Apr 27, 2026
a63f123
i18n(vi): LLM translation
wackerow Apr 27, 2026
7b46f81
i18n(zh): LLM translation
wackerow Apr 27, 2026
a111597
i18n(zh-tw): LLM translation
wackerow Apr 27, 2026
c26a4aa
i18n: merge tmp-intl/run-0427-1613 into intl/pending-dev
wackerow Apr 27, 2026
6ef1a94
Merge remote-tracking branch 'origin/dev' into refactor/turbopack-ado…
pettinarip Apr 27, 2026
5e845ad
fix(tracking): passive section view [Fixes #18047]
myelinated-wackerow Apr 27, 2026
de7ea4c
feat(intl-pipeline): translate JSX attribute values
myelinated-wackerow Apr 27, 2026
098d9fb
chore(review-translations): drop dead sanitizer step, allow zero-crit…
myelinated-wackerow Apr 27, 2026
4e735b3
i18n(all): LLM translation, JSX attribute back fill
myelinated-wackerow Apr 27, 2026
ec4a322
chore(intl-pipeline): remove force_attrs backfill flag
myelinated-wackerow Apr 27, 2026
c6c66e8
fix(intl-pipeline): enforce Western Arabic numerals in translations
myelinated-wackerow Apr 27, 2026
1fda55d
fix(intl-pipeline): escape inner quotes in JSX attribute translations
myelinated-wackerow Apr 27, 2026
518e8c1
Merge pull request #18042 from ethereum/dependabot/npm_and_yarn/postc…
wackerow Apr 28, 2026
6175536
Merge branch 'dev' into intl-pipeline-v7
myelinated-wackerow Apr 28, 2026
2aa1f9f
patch: link cleanup
wackerow Apr 28, 2026
3f90614
Merge pull request #18044 from shalom-ezekiel/fix/remove-dead-media-c…
wackerow Apr 28, 2026
c873355
docs: update README.md [skip ci]
allcontributors[bot] Apr 28, 2026
2cced9b
docs: update .all-contributorsrc [skip ci]
allcontributors[bot] Apr 28, 2026
d272c1c
Merge pull request #18053 from ethereum/all-contributors/add-shalom-e…
wackerow Apr 28, 2026
1048549
Merge pull request #18045 from bshastry/revofusion-1124-nethermind-up…
wackerow Apr 28, 2026
4588134
docs: update README.md [skip ci]
allcontributors[bot] Apr 28, 2026
416bb84
docs: update .all-contributorsrc [skip ci]
allcontributors[bot] Apr 28, 2026
40fdab0
Merge pull request #18054 from ethereum/all-contributors/add-bshastry
wackerow Apr 28, 2026
2225803
Merge pull request #18037 from ethereum/automated-update-20260424163840
wackerow Apr 28, 2026
501df95
Merge pull request #18033 from naftalimurgor/patch-2
wackerow Apr 28, 2026
85739af
docs: update README.md [skip ci]
allcontributors[bot] Apr 28, 2026
2c48d10
docs: update .all-contributorsrc [skip ci]
allcontributors[bot] Apr 28, 2026
d97adef
Merge pull request #18055 from ethereum/all-contributors/add-naftalim…
wackerow Apr 28, 2026
a6fb44e
docs(intl-pipeline): bugs brief from PR #18041
myelinated-wackerow Apr 28, 2026
ea97919
fix(intl): patch criticals from #18041 review
myelinated-wackerow Apr 28, 2026
5b99183
Merge pull request #18041 from ethereum/intl/pending-dev
wackerow Apr 28, 2026
9187de5
Merge pull request #17951 from ethereum/ba-hub
wackerow Apr 28, 2026
840f8cc
Leaderboard: Update David Matosse points in ethereum execution data
bshastry Apr 28, 2026
2831a07
Leaderboard: Update Revofusion points in ethereum consensus board
bshastry Apr 28, 2026
f94cdf6
Merge remote-tracking branch 'origin/dev' into HEAD
pettinarip Apr 28, 2026
00ed4ad
Address PR review feedback (#17906)
pettinarip Apr 28, 2026
e785508
Merge pull request #17906 from ethereum/refactor/turbopack-adoption
pettinarip Apr 28, 2026
e94ed3b
fix(seo): SSR the wallet list on /wallets/find-wallet
pettinarip Apr 23, 2026
5be44e3
fix(ssr): drop mediaquery wrapper around desktop filters sidebar
pettinarip Apr 28, 2026
1289d5f
fix(ssr): import findwalletproducttable directly to avoid skeleton flash
pettinarip Apr 28, 2026
a820c7a
updating nav
mnelsonBT Apr 28, 2026
780979b
fix(ssr): replace usesearchparams with window.location to avoid csr b…
pettinarip Apr 28, 2026
6be34f5
Merge pull request #18056 from bshastry/david-1134-geth-update
wackerow Apr 28, 2026
9d7a3aa
Merge pull request #18057 from bshastry/revofusion-1154-prysm-update
wackerow Apr 28, 2026
2716383
perf(ssr): drop virtualization, ssr all wallets, lazy subcomponent + …
pettinarip Apr 28, 2026
b006c95
Merge pull request #18043 from ethereum/intl-pipeline-v7
wackerow Apr 28, 2026
2ade6ff
Merge branch 'dev' into feat/wallet-account-abstraction-metadata
myelinated-wackerow Apr 28, 2026
f28ff27
build(deps): bump "lucide-react" from ^0.516.0 to ^1.12.0
myelinated-wackerow Apr 28, 2026
31cb1a7
feat(ui): use lucide icons for new wallet filters
myelinated-wackerow Apr 28, 2026
3f985e6
perf(inp): replace radix collapsible with native details/summary in w…
pettinarip Apr 28, 2026
db69df1
feat(ui): arrow after label in LinkWithArrow
wackerow Apr 28, 2026
2225cbf
i18n(ar): LLM translation
wackerow Apr 28, 2026
52a50cb
i18n(bn): LLM translation
wackerow Apr 28, 2026
adcfcad
i18n(cs): LLM translation
wackerow Apr 28, 2026
fb80543
i18n(de): LLM translation
wackerow Apr 28, 2026
b49b92a
i18n(es): LLM translation
wackerow Apr 28, 2026
ccad110
i18n(fr): LLM translation
wackerow Apr 28, 2026
83f7bde
i18n(hi): LLM translation
wackerow Apr 28, 2026
e451211
i18n(id): LLM translation
wackerow Apr 28, 2026
93c5304
i18n(it): LLM translation
wackerow Apr 28, 2026
89065cc
i18n(ja): LLM translation
wackerow Apr 28, 2026
bf2d029
i18n(ko): LLM translation
wackerow Apr 28, 2026
0ec2eca
i18n(mr): LLM translation
wackerow Apr 28, 2026
b71dd30
i18n(pl): LLM translation
wackerow Apr 28, 2026
ceebe26
i18n(pt-br): LLM translation
wackerow Apr 28, 2026
677a4d4
i18n(ru): LLM translation
wackerow Apr 28, 2026
a2e66ef
i18n(sw): LLM translation
wackerow Apr 28, 2026
4d77616
i18n(ta): LLM translation
wackerow Apr 28, 2026
f7c4219
i18n(te): LLM translation
wackerow Apr 28, 2026
68a0910
i18n(tr): LLM translation
wackerow Apr 28, 2026
1105564
i18n(uk): LLM translation
wackerow Apr 28, 2026
a795e47
i18n(ur): LLM translation
wackerow Apr 28, 2026
3cc586d
i18n(vi): LLM translation
wackerow Apr 28, 2026
292a257
i18n(zh): LLM translation
wackerow Apr 28, 2026
281e4c5
i18n(zh-tw): LLM translation
wackerow Apr 28, 2026
5c9c5c9
i18n: merge tmp-intl/run-0428-1836 into intl/pending-link-with-arrow
wackerow Apr 28, 2026
0f616d7
Merge pull request #18061 from ethereum/intl/pending-link-with-arrow
wackerow Apr 28, 2026
b5ecda6
patch: update suggest_wallet template
myelinated-wackerow Apr 28, 2026
f459022
Merge branch 'dev' into videos-s3
myelinated-wackerow Apr 28, 2026
d4b471d
Merge pull request #18039 from ethereum/videos-s3
wackerow Apr 28, 2026
eb3a645
fix(intl-pipeline): support directory paths in TARGET_PATH
myelinated-wackerow Apr 28, 2026
9e5ab55
Merge pull request #18062 from ethereum/intl-pipeline-v7-1
wackerow Apr 28, 2026
0430c7e
Merge branch 'dev' into 260224-gasless-token
myelinated-wackerow Apr 28, 2026
274aad4
chore: add breadcrumb front matter
myelinated-wackerow Apr 28, 2026
f2bbea0
chore: add trailing internal link slashes
myelinated-wackerow Apr 28, 2026
8febad6
Merge pull request #17823 from qbzzt/260224-gasless-token
wackerow Apr 28, 2026
2514d0f
Merge branch 'dev' into max-eb
myelinated-wackerow Apr 28, 2026
2ed536e
revert: unnecessary page-staking changes
myelinated-wackerow Apr 28, 2026
d37b05e
i18n(ar): translate videos directory
myelinated-wackerow Apr 29, 2026
ff63fd3
i18n(bn): translate videos directory
myelinated-wackerow Apr 29, 2026
643ca23
i18n(cs): translate videos directory
myelinated-wackerow Apr 29, 2026
64905db
i18n(de): translate videos directory
myelinated-wackerow Apr 29, 2026
32c5839
i18n(es): translate videos directory
myelinated-wackerow Apr 29, 2026
ed8cf95
i18n(hi): translate videos directory
myelinated-wackerow Apr 29, 2026
1cfd7c4
i18n(id): translate videos directory
myelinated-wackerow Apr 29, 2026
8a86175
i18n(it): translate videos directory
myelinated-wackerow Apr 29, 2026
6dbf7c4
i18n(ja): translate videos directory
myelinated-wackerow Apr 29, 2026
cb25d4f
i18n(ko): translate videos directory
myelinated-wackerow Apr 29, 2026
68e0a20
i18n(mr): translate videos directory
myelinated-wackerow Apr 29, 2026
2df3ad6
i18n(fr): translate videos directory
myelinated-wackerow Apr 29, 2026
a3ace3f
feat(ui): enable forceMount passage to ExpandableCard
myelinated-wackerow Apr 29, 2026
bb5d5b5
feat: create reusable ListingMethodology component
myelinated-wackerow Apr 29, 2026
62b1b0d
refactor: use ListingMethodology on /find-wallet/
myelinated-wackerow Apr 29, 2026
91c0dfa
deprecate(i18n/ui): replaced components and strings
myelinated-wackerow Apr 29, 2026
7f12467
feat(intl-pipeline): partial-success runs ship; failures surface in PR
myelinated-wackerow Apr 29, 2026
641b78f
patch: update ElementRef to ComponentRef
wackerow Apr 29, 2026
3d1f908
Merge pull request #18064 from ethereum/intl-pipeline-v7-2
wackerow Apr 29, 2026
00c7826
i18n: merge dev into intl/pending-dev
wackerow Apr 29, 2026
c5108ce
Merge branch 'dev' into fix/find-wallet-methodology-seo
wackerow Apr 29, 2026
c8dcc92
seo: use E-E-A-T optimized "strong" semantic html
myelinated-wackerow Apr 29, 2026
43069bf
i18n(pl): LLM translation
wackerow Apr 29, 2026
ea0a4a3
i18n(pt-br): LLM translation
wackerow Apr 29, 2026
446d979
i18n(ru): LLM translation
wackerow Apr 29, 2026
9b70d13
i18n(sw): LLM translation
wackerow Apr 29, 2026
9dd15d7
i18n(ta): LLM translation
wackerow Apr 29, 2026
215c64a
i18n(te): LLM translation
wackerow Apr 29, 2026
f5a9586
i18n(tr): LLM translation
wackerow Apr 29, 2026
2fb8c57
i18n(uk): LLM translation
wackerow Apr 29, 2026
90a3970
i18n(ur): LLM translation
wackerow Apr 29, 2026
cb3c288
i18n(vi): LLM translation
wackerow Apr 29, 2026
57b5592
i18n(zh): LLM translation
wackerow Apr 29, 2026
fc607af
i18n(zh-tw): LLM translation
wackerow Apr 29, 2026
6c3fe69
i18n: sanitize translation output
wackerow Apr 29, 2026
858e8e0
i18n: merge tmp-intl/run-0429-0438 into intl/pending-dev
wackerow Apr 29, 2026
7e62737
Merge pull request #18060 from ethereum/link-with-arrow
pettinarip Apr 29, 2026
5acf34a
perf(inp): unify desktop/mobile trees in WalletInfo with css grid
pettinarip Apr 29, 2026
4c42acd
perf(inp): hide-not-unmount filtered rows in find-wallet list
pettinarip Apr 29, 2026
0f916af
docs(data-layer): add fetcher isolation rule
pettinarip Apr 29, 2026
eab5619
chore: drop tailwind-merge comment in product list row
pettinarip Apr 29, 2026
9af32a0
fix(seo): ssr the network list on /layer-2/networks
pettinarip Apr 29, 2026
96b132b
refactor(find-wallet): address review feedback on ssr branch
pettinarip Apr 29, 2026
75a87c1
cleanup
pettinarip Apr 29, 2026
eff42fc
patch: update fix-sanitizer-bug reference directories
myelinated-wackerow Apr 29, 2026
aadfda2
fix(intl): videos frontmatter + RTL sanitizer
myelinated-wackerow Apr 29, 2026
5025550
i18n: sanitize translated video frontmatter
myelinated-wackerow Apr 29, 2026
c2a7fce
fix(videos): fetch frontmatter via GitHub API
myelinated-wackerow Apr 29, 2026
8aabdb3
fix(contributors): handle secondary rate limit
myelinated-wackerow Apr 29, 2026
088104d
patch: rm duplicated heading ids
myelinated-wackerow Apr 29, 2026
fe64419
test: update RTL md prompt assertions
myelinated-wackerow Apr 29, 2026
9f430e8
Merge pull request #18063 from ethereum/intl/pending-dev
wackerow Apr 30, 2026
14bcbba
Apply suggestions from code review
wackerow Apr 30, 2026
3fdedb6
Apply suggestions from code review
wackerow Apr 30, 2026
ca297df
Bounty: Leaderboard update for Delene Tchio Romuald
bshastry Apr 30, 2026
f7f367b
Update .claude/skills/data-layer/SKILL.md
pettinarip Apr 30, 2026
86b9b06
Merge pull request #18066 from ethereum/docs/data-layer-isolation-rule
pettinarip Apr 30, 2026
f07db5f
Merge pull request #18072 from ethereum/fix/video-thumbnails-github-f…
pettinarip Apr 30, 2026
68f8a70
Merge pull request #18073 from ethereum/fetch-gh-contributors
pettinarip Apr 30, 2026
6999024
refactor(find-wallet): drop redundant tracking and dead code from review
pettinarip Apr 30, 2026
05fe734
refactor(find-wallet): move List.tsx out of generic ProductTable dir
pettinarip Apr 30, 2026
94a8ce1
chore: updates eventAction names
wackerow Apr 30, 2026
df5068b
refactor: use wallet type, formatDate
myelinated-wackerow Apr 30, 2026
bd4fc9a
Merge pull request #18025 from konopkja/fix/find-wallet-methodology-seo
wackerow Apr 30, 2026
836a670
Merge pull request #18031 from ethereum/i18n-ai-agent-products
pettinarip Apr 30, 2026
f12a5e3
Merge pull request #18032 from ethereum/jsonld-organization
pettinarip Apr 30, 2026
c41e45e
Merge pull request #18065 from ethereum/componentref
pettinarip Apr 30, 2026
fcb9118
Merge pull request #18076 from bshastry/delene-1167-nethermind-info
wackerow Apr 30, 2026
3938d15
Update src/intl/en/common.json
mnelsonBT Apr 30, 2026
3430a66
feat: update content per review
wackerow Apr 30, 2026
e4249ad
chore: rm unused common.json string
wackerow Apr 30, 2026
548a94d
Merge pull request #18058 from ethereum/new-navigation
wackerow Apr 30, 2026
a757824
patch: rm indentation
wackerow Apr 30, 2026
af0938d
Bounty: Leaderboard update for Jeongmin Choi
bshastry Apr 30, 2026
871c743
Merge pull request #17274 from ethereum/max-eb
wackerow Apr 30, 2026
9923abf
fix(ui): gutter decoration positioning, rtl responsive
myelinated-wackerow Apr 30, 2026
99ecb53
Merge pull request #18068 from ethereum/fix/l2-networks-ssr
wackerow Apr 30, 2026
5f77152
Merge pull request #18067 from ethereum/fix/find-wallet-ssr-17717
wackerow Apr 30, 2026
77fdb2d
Merge branch 'dev' into fix/remove-passive-section-view-tracking
myelinated-wackerow Apr 30, 2026
7f6aa63
Merge pull request #18050 from ethereum/fix/remove-passive-section-vi…
wackerow Apr 30, 2026
92d9654
Merge branch 'dev' into feat/wallet-account-abstraction-metadata
myelinated-wackerow Apr 30, 2026
b24c182
i18n(ar): LLM translation
wackerow Apr 30, 2026
c56617e
i18n(bn): LLM translation
wackerow Apr 30, 2026
36071f1
i18n(cs): LLM translation
wackerow Apr 30, 2026
75ec6a0
i18n(de): LLM translation
wackerow Apr 30, 2026
e39dcf4
i18n(es): LLM translation
wackerow Apr 30, 2026
bfbe746
i18n(fr): LLM translation
wackerow Apr 30, 2026
0b60de3
i18n(hi): LLM translation
wackerow Apr 30, 2026
7e26d69
i18n(id): LLM translation
wackerow Apr 30, 2026
3f31809
i18n(it): LLM translation
wackerow Apr 30, 2026
c5cec1d
i18n(ja): LLM translation
wackerow Apr 30, 2026
f4d95e4
i18n(ko): LLM translation
wackerow Apr 30, 2026
ba85e18
i18n(mr): LLM translation
wackerow Apr 30, 2026
be96dba
i18n(pl): LLM translation
wackerow Apr 30, 2026
1206779
i18n(pt-br): LLM translation
wackerow Apr 30, 2026
1909e81
i18n(ru): LLM translation
wackerow Apr 30, 2026
037c746
i18n(sw): LLM translation
wackerow Apr 30, 2026
819646e
i18n(ta): LLM translation
wackerow Apr 30, 2026
eb109a3
i18n(te): LLM translation
wackerow Apr 30, 2026
0ce84a1
i18n(tr): LLM translation
wackerow Apr 30, 2026
67ac36d
i18n(uk): LLM translation
wackerow Apr 30, 2026
2213ab3
i18n(ur): LLM translation
wackerow Apr 30, 2026
c5cb19a
i18n(vi): LLM translation
wackerow Apr 30, 2026
df31156
i18n(zh): LLM translation
wackerow Apr 30, 2026
7e50d34
i18n(zh-tw): LLM translation
wackerow Apr 30, 2026
04cdf5c
i18n: merge tmp-intl/run-0430-2046 into intl/pending-dev
wackerow Apr 30, 2026
8250db6
fix: circular import; extract REFERENCE to own namespace
myelinated-wackerow Apr 30, 2026
da4d69a
Merge pull request #18093 from ethereum/fix-circular-import
wackerow Apr 30, 2026
614647c
Merge branch 'dev' into feat/wallet-account-abstraction-metadata
myelinated-wackerow Apr 30, 2026
8939d1e
feat: add 4337 and 7702 flags to supporting wallets
myelinated-wackerow Apr 30, 2026
4db9d01
Merge branch 'dev' into intl/pending-dev
myelinated-wackerow Apr 30, 2026
4330dc2
i18n: align UI strings with ETHGlossary
myelinated-wackerow Apr 30, 2026
4d86652
deprecate: api/glossary route
myelinated-wackerow Apr 30, 2026
f2ff4aa
Merge pull request #18092 from ethereum/intl/pending-dev
wackerow Apr 30, 2026
4fec705
Merge pull request #17062 from minimalsm/feat/wallet-account-abstract…
wackerow Apr 30, 2026
8869016
i18n(ar): LLM translation
wackerow Apr 30, 2026
ba8424b
i18n(bn): LLM translation
wackerow Apr 30, 2026
31039dc
i18n(cs): LLM translation
wackerow Apr 30, 2026
e1653da
i18n(de): LLM translation
wackerow Apr 30, 2026
6f14ab3
i18n(es): LLM translation
wackerow Apr 30, 2026
f1d06db
i18n(fr): LLM translation
wackerow Apr 30, 2026
115f424
i18n(hi): LLM translation
wackerow Apr 30, 2026
81c7fe1
i18n(id): LLM translation
wackerow Apr 30, 2026
ce572c2
i18n(it): LLM translation
wackerow Apr 30, 2026
94a5c59
i18n(ja): LLM translation
wackerow Apr 30, 2026
d23ed31
i18n(ko): LLM translation
wackerow Apr 30, 2026
2408526
i18n(mr): LLM translation
wackerow Apr 30, 2026
5d87c31
i18n(pl): LLM translation
wackerow Apr 30, 2026
cfea7c8
i18n(pt-br): LLM translation
wackerow Apr 30, 2026
86a8d4f
i18n(ru): LLM translation
wackerow Apr 30, 2026
41a2fca
i18n(sw): LLM translation
wackerow Apr 30, 2026
3bd5896
i18n(ta): LLM translation
wackerow Apr 30, 2026
6a9ff31
i18n(te): LLM translation
wackerow Apr 30, 2026
c9f0a27
i18n(tr): LLM translation
wackerow Apr 30, 2026
c6e1e8d
i18n(uk): LLM translation
wackerow Apr 30, 2026
e83d453
i18n(ur): LLM translation
wackerow Apr 30, 2026
7fa05e5
i18n(vi): LLM translation
wackerow Apr 30, 2026
36161a2
i18n(zh): LLM translation
wackerow Apr 30, 2026
308245d
i18n(zh-tw): LLM translation
wackerow Apr 30, 2026
0c8a816
i18n: sanitize translation output
wackerow Apr 30, 2026
7b8e614
i18n: merge tmp-intl/run-0430-2348 into intl/pending-dev
wackerow Apr 30, 2026
89b7fcf
i18n: translate ExpandableCard FAQ titles
myelinated-wackerow May 1, 2026
1563da5
Merge pull request #18094 from ethereum/intl/pending-dev
wackerow May 1, 2026
c39acbf
Merge pull request #18082 from bshastry/jeongmin-1085-prysm-med-high
wackerow May 1, 2026
4fa51d2
Merge branch 'master' into dev
wackerow May 1, 2026
469e98a
11.6.0
wackerow May 1, 2026
64a2758
fix(contributors): defer .all-contributorsrc read until first render
pettinarip May 1, 2026
075de6d
Merge pull request #18106 from ethereum/fix/contributors-defer-fs-read
pettinarip May 1, 2026
ba78141
ci(data-layer): pass TRIGGER_PROJECT_REF to trigger deploy
pettinarip May 1, 2026
ddd73ff
Merge pull request #18107 from ethereum/fix/trigger-deploy-project-ref
pettinarip May 1, 2026
1fa6874
fix(e2e): align tests with SSR wallet list and renamed nav subsection
pettinarip May 1, 2026
a6cf04f
Merge pull request #18108 from ethereum/fix/e2e-tests-find-wallet-and…
pettinarip May 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
27 changes: 27 additions & 0 deletions .all-contributorsrc
Original file line number Diff line number Diff line change
Expand Up @@ -14195,6 +14195,33 @@
"contributions": [
"bug"
]
},
{
"login": "shalom-ezekiel",
"name": "shalom ezekiel",
"avatar_url": "https://avatars.githubusercontent.com/u/107555717?v=4",
"profile": "https://github.com/shalom-ezekiel",
"contributions": [
"maintenance"
]
},
{
"login": "bshastry",
"name": "Bhargava Shastry",
"avatar_url": "https://avatars.githubusercontent.com/u/2388185?v=4",
"profile": "https://github.com/bshastry",
"contributions": [
"maintenance"
]
},
{
"login": "naftalimurgor",
"name": "Naftali Murgor",
"avatar_url": "https://avatars.githubusercontent.com/u/37052032?v=4",
"profile": "https://blog.naftalimurgor.com",
"contributions": [
"bug"
]
}
],
"contributorsPerLine": 7,
Expand Down
44 changes: 22 additions & 22 deletions .claude/commands/fix-sanitizer-bug.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ argument-hint: [--language=CODE] [--issue="description"] [--file=PATH] [--skip-b

# Fix Sanitizer Bug

Iterative workflow for fixing bugs in the post-import translation sanitizer (`src/scripts/i18n/post_import_sanitize.ts`). Follows a test-first approach: triage the issue, write a failing test, implement the fix, verify across languages.
Iterative workflow for fixing bugs in the post-import translation sanitizer (`src/scripts/intl-pipeline/intl-sanitizer.ts`). Follows a test-first approach: triage the issue, write a failing test, implement the fix, verify across languages.

## Context
- Current branch: !`git branch --show-current`
- Arguments: $ARGUMENTS
- Sanitizer: `src/scripts/i18n/post_import_sanitize.ts`
- Test files: `tests/unit/sanitizer/*.spec.ts`
- Sanitizer: `src/scripts/intl-pipeline/intl-sanitizer.ts`
- Test files: `tests/unit/intl-pipeline/sanitizer/*.spec.ts`
- Research docs: `docs/solutions/integration-issues/`

## Phase 0: Gather Context
Expand Down Expand Up @@ -100,9 +100,9 @@ Examples: "Gas" → "Sprit" (gasoline) in German, tone inconsistency

### Determine which test file

- Pure function (no English source needed) → `tests/unit/sanitizer/standalone-fixes.spec.ts`
- Needs English comparison → `tests/unit/sanitizer/english-comparison.spec.ts`
- End-to-end through processMarkdownFile/processJsonFile → `tests/unit/sanitizer/integration.spec.ts`
- Pure function (no English source needed) → `tests/unit/intl-pipeline/sanitizer/standalone-fixes.spec.ts`
- Needs English comparison → `tests/unit/intl-pipeline/sanitizer/english-comparison.spec.ts`
- End-to-end through processMarkdownFile/processJsonFile → `tests/unit/intl-pipeline/sanitizer/integration.spec.ts`

### Write the test FIRST

Expand Down Expand Up @@ -141,7 +141,7 @@ Add the new function name to the destructured import from `_testOnly` at the top
### Verify test fails

```bash
npx playwright test --project=unit tests/unit/sanitizer/{FILE}.spec.ts
npx playwright test --project=unit tests/unit/intl-pipeline/sanitizer/{FILE}.spec.ts
```

The new test MUST fail (function doesn't exist yet). Existing tests should still pass.
Expand All @@ -165,13 +165,13 @@ test.describe("warnNewIssue", () => {
})
```

Use `tests/unit/sanitizer/warnings.spec.ts` for warn-only functions.
Use `tests/unit/intl-pipeline/sanitizer/warnings.spec.ts` for warn-only functions.

## Phase 4: Implement the Fix

### Write the function in the sanitizer

**File:** `src/scripts/i18n/post_import_sanitize.ts`
**File:** `src/scripts/intl-pipeline/intl-sanitizer.ts`

**For fix functions** — follow the established pattern:

Expand Down Expand Up @@ -235,7 +235,7 @@ issues.push(...newWarnings)
### Step 1: Unit tests

```bash
npx playwright test --project=unit tests/unit/sanitizer/
npx playwright test --project=unit tests/unit/intl-pipeline/sanitizer/
```

**All tests must pass** — both the new test and all existing 99+ tests.
Expand All @@ -253,11 +253,11 @@ Determine which files to test from the PR context (e.g., `gaming/index.md`). The
```bash
# If TARGET_FILES env var is supported:
TARGET_FILES="public/content/translations/{LANGUAGE}/{PAGE_PATH}" \
npx ts-node -O '{"module":"commonjs"}' ./src/scripts/i18n/post_import_sanitize.ts
npx ts-node -O '{"module":"commonjs"}' ./src/scripts/intl-pipeline/intl-sanitizer.ts

# If not, write a quick inline node script that calls processMarkdownFile directly:
node -e '
const { _testOnly } = require("./src/scripts/i18n/post_import_sanitize");
const { _testOnly } = require("./src/scripts/intl-pipeline/intl-sanitizer");
const fs = require("fs");
const file = "public/content/translations/{LANGUAGE}/{PAGE_PATH}";
const content = fs.readFileSync(file, "utf8");
Expand Down Expand Up @@ -303,7 +303,7 @@ Test the same page in 2-3 other languages to check for false positives. **NEVER
# Test the same page path in a few other languages
for lang in es tr ja; do
node -e "
const { _testOnly } = require('./src/scripts/i18n/post_import_sanitize');
const { _testOnly } = require('./src/scripts/intl-pipeline/intl-sanitizer');
const fs = require('fs');
const file = 'public/content/translations/$lang/{PAGE_PATH}';
if (!fs.existsSync(file)) { console.log('$lang: file not found, skipping'); process.exit(0); }
Expand Down Expand Up @@ -376,31 +376,31 @@ Display to user:
**Tests:** {N} new tests added, {TOTAL} total passing
**Languages verified:** {LANGUAGES_CHECKED}
**Files changed:**
- src/scripts/i18n/post_import_sanitize.ts (fix + export)
- tests/unit/sanitizer/{FILE}.spec.ts (new tests)
- src/scripts/intl-pipeline/intl-sanitizer.ts (fix + export)
- tests/unit/intl-pipeline/sanitizer/{FILE}.spec.ts (new tests)
- docs/solutions/integration-issues/sanitizer-test-research.md (documentation)
```

## Quick Reference

### Run all sanitizer tests
```bash
npx playwright test --project=unit tests/unit/sanitizer/
npx playwright test --project=unit tests/unit/intl-pipeline/sanitizer/
```

### Run sanitizer against a language
```bash
TARGET_LANGUAGES=ja npx ts-node -O '{"module":"commonjs"}' ./src/scripts/i18n/post_import_sanitize.ts
TARGET_LANGUAGES=ja npx ts-node -O '{"module":"commonjs"}' ./src/scripts/intl-pipeline/intl-sanitizer.ts
```

### Key files
| File | Purpose |
|------|---------|
| `src/scripts/i18n/post_import_sanitize.ts` | Sanitizer source (~2100 lines) |
| `tests/unit/sanitizer/standalone-fixes.spec.ts` | Tests for pure functions |
| `tests/unit/sanitizer/english-comparison.spec.ts` | Tests needing English source |
| `tests/unit/sanitizer/warnings.spec.ts` | Tests for warn-only functions |
| `tests/unit/sanitizer/integration.spec.ts` | End-to-end tests |
| `src/scripts/intl-pipeline/intl-sanitizer.ts` | Sanitizer source (~2100 lines) |
| `tests/unit/intl-pipeline/sanitizer/standalone-fixes.spec.ts` | Tests for pure functions |
| `tests/unit/intl-pipeline/sanitizer/english-comparison.spec.ts` | Tests needing English source |
| `tests/unit/intl-pipeline/sanitizer/warnings.spec.ts` | Tests for warn-only functions |
| `tests/unit/intl-pipeline/sanitizer/integration.spec.ts` | End-to-end tests |
| `docs/solutions/integration-issues/sanitizer-test-research.md` | Pattern catalog |

### Code block awareness pattern
Expand Down
Loading
Loading