From a848d803c9a14cae2ef124dfcec839a3f33a2ccc Mon Sep 17 00:00:00 2001 From: Sin-Kang Date: Mon, 31 Aug 2026 05:40:06 +0900 Subject: [PATCH 1/2] feat: adopt OSS Q-line brand v0.2.0 --- docs/assets/brand/checksums.txt | 41 ++++++++++++++------------- docs/assets/brand/project-lockup.svg | 2 +- docs/assets/brand/project-mark.svg | 2 +- docs/assets/brand/readme-header.png | Bin 9649 -> 9958 bytes scripts/check-brand-assets.mjs | 26 ++++++++--------- site/apple-touch-icon.png | Bin 1575 -> 1968 bytes site/favicon.ico | Bin 15086 -> 15086 bytes site/favicon.svg | 2 +- site/og.png | Bin 14195 -> 14612 bytes site/project-lockup.svg | 2 +- site/project-mark-color.svg | 2 +- site/project-mark-reversed.svg | 2 +- 12 files changed, 40 insertions(+), 39 deletions(-) diff --git a/docs/assets/brand/checksums.txt b/docs/assets/brand/checksums.txt index 80fb0a7..a3e6b95 100644 --- a/docs/assets/brand/checksums.txt +++ b/docs/assets/brand/checksums.txt @@ -1,21 +1,22 @@ -298658c5507dd8acacfa0b2c26b0cd00b612f0932698e4223f0a8a97957fafed apple-touch-icon.png -4205e96a25955ce59c730fd380e45db18b153e152424661df1822ed296ccaf1c favicon.ico -4ec733f9542323f6d2840ba743c4a11df4d416a7efa1d214567d62b58653619b favicon.svg -4ec733f9542323f6d2840ba743c4a11df4d416a7efa1d214567d62b58653619b glyph-color.svg -03f6342931d1660554b44bb5704aeb4639fa5fb6d12dbf6286418ecfaeddc654 glyph-monochrome.svg -dc08a6ba51a2a8e9cb82d56f900ef2de9330ac72fbb3c727e0436a4ab2f3944f glyph-reversed.svg -f5cba92cab71ae542c297205daca2f50bf7a64279da964a0239f85b062b7e36d icons/icon-16.png -298658c5507dd8acacfa0b2c26b0cd00b612f0932698e4223f0a8a97957fafed icons/icon-180.png -8e9148efe85095d304c182fe0fe3fa2a2b44bcfe2a4e26077c21947baf92be96 icons/icon-192.png -3c696ba85751c9a9e805141adf07242f495d8ffc115b2477074862a3843a19fa icons/icon-32.png -bfa28751bd6e26e47dfb8458a23d309082bb7db6e293957438ac02fdd4af0fa8 icons/icon-48.png -3004387fcbc066076f70f383e74e11e9a94f6cd771e032ca8ff993daede614dc icons/icon-512.png -905cf0a05ab5d3787bc02ff7d4591bfa020d72aefdd0e0d0c53271da6d3f383c lockup-endorsed.svg -ee4822f0054f88b5a386dc53d5034af1577309b0425e78ed2af85167e8467aa2 lockup.svg -90062f969fca1da22b05ec5d3f92bbc0f46e736b473351078e54317df19c41be maskable-192.png -18b8c7957b532b78ef631fca894a245bc4bd1eb7a36255e6ec1a7da857b698c0 maskable-512.png -affd93edb1d511780bad26de47cc673a5e93014967916029dd8db68ef9ec394e og.png -8e9148efe85095d304c182fe0fe3fa2a2b44bcfe2a4e26077c21947baf92be96 pwa-192.png -3004387fcbc066076f70f383e74e11e9a94f6cd771e032ca8ff993daede614dc pwa-512.png -481391d02b1f50ed6dba1790c0899bcc7d16948421bba66778756a89921b5dbb readme-header.png +262bdf7d2028fd50c95876ff1ffebe83c44ac75b8476f7ab399e106adf56e6e4 apple-touch-icon.png +22bbfcdf8fd518251f5d8ecc8aa8b4398a4e795d2eb3b087af5221f90c0f6b7b favicon.ico +db727c53441d059a57d3de4b1201a3681b71b57b9e1854d32881617caa57d236 favicon.svg +db727c53441d059a57d3de4b1201a3681b71b57b9e1854d32881617caa57d236 glyph-color.svg +c75fd1518d1ffc58577638d29f94552d3609872cc64a2e0e22256dcf7c24fcdc glyph-dark.svg +25e0af113d565f4980e523dbcb0086c1b0a79193d730aee99c8ac954d0720ee3 glyph-monochrome.svg +0d68b20d404b13618b97170d700f07d60e78a072db6e9553df964b7b0a85593f glyph-reversed.svg +d6f2107b861a03997bf3f4b23d87d282b972a58a78660843db75869c41da064f icons/icon-16.png +262bdf7d2028fd50c95876ff1ffebe83c44ac75b8476f7ab399e106adf56e6e4 icons/icon-180.png +d081aea386a44ee0e40aad3ea335e82440879e64b5346a1e7344cc9011336ccd icons/icon-192.png +97d8ab1c024a3df324a05b603a8891de5e7101238958c92fe24242b5e80ae26c icons/icon-32.png +d41d334a9e0f942326e6f8a81195fca4c0da71f318c3a8ae885c46ec3bae9b48 icons/icon-48.png +1e88a9916f0563942bdba0856fff5f5b64b0d61482f19c0723f7c39e949d2eff icons/icon-512.png +513474611e05d422c63b15d0de3561435fc6b23b135ba1f7831c75bd7e634b5a lockup-endorsed.svg +ae09943668238698560691c3d0eca99d15a495452bfb08e8cd57df0d9bb1fada lockup.svg +acbec711dc70cca6dacffa56778be2ba89b7b198ebcba188f3b9cc8da1082b66 maskable-192.png +9b82ead82da584464a6563c41b85a4a3b36da8f47e382ab15d3885f3223cdc68 maskable-512.png +96fb0eebc5da137e1a99bc3f58ef6f568f13eede79778f0e0a1b56ab143a304b og.png +d081aea386a44ee0e40aad3ea335e82440879e64b5346a1e7344cc9011336ccd pwa-192.png +1e88a9916f0563942bdba0856fff5f5b64b0d61482f19c0723f7c39e949d2eff pwa-512.png +7abcef4d8a4a2d58cba15cec977d86a46ff96970700b9cce2ca47f67814ee76f readme-header.png 27a520d8daf6752076ac90d52b611034af0d2e29a8167e3e1ef7d4f0246b52e9 wordmark.svg diff --git a/docs/assets/brand/project-lockup.svg b/docs/assets/brand/project-lockup.svg index 906db47..9d70a1e 100644 --- a/docs/assets/brand/project-lockup.svg +++ b/docs/assets/brand/project-lockup.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/docs/assets/brand/project-mark.svg b/docs/assets/brand/project-mark.svg index e7b2f73..5017d12 100644 --- a/docs/assets/brand/project-mark.svg +++ b/docs/assets/brand/project-mark.svg @@ -1 +1 @@ -numkey \ No newline at end of file +numkey \ No newline at end of file diff --git a/docs/assets/brand/readme-header.png b/docs/assets/brand/readme-header.png index bf795f963ef9eb3f521ea9413f15207e0587cb06..2cd74e41b6ebcf7fd2444c06a2d58c4c746cfeeb 100644 GIT binary patch literal 9958 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 literal 9649 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 at0+n5p(^X9K^?&co-wmB%|GdS=l=i{;~01V diff --git a/scripts/check-brand-assets.mjs b/scripts/check-brand-assets.mjs index 07712ab..57c1da8 100644 --- a/scripts/check-brand-assets.mjs +++ b/scripts/check-brand-assets.mjs @@ -8,15 +8,15 @@ const read = (file) => readFile(resolve(root, file), 'utf8') const hash = async (file) => createHash('sha256').update(await readFile(resolve(root, file))).digest('hex') const assets = { - 'docs/assets/brand/project-mark.svg': '4ec733f9542323f6d2840ba743c4a11df4d416a7efa1d214567d62b58653619b', - 'docs/assets/brand/project-lockup.svg': '905cf0a05ab5d3787bc02ff7d4591bfa020d72aefdd0e0d0c53271da6d3f383c', - 'docs/assets/brand/readme-header.png': '481391d02b1f50ed6dba1790c0899bcc7d16948421bba66778756a89921b5dbb', - 'site/favicon.svg': '4ec733f9542323f6d2840ba743c4a11df4d416a7efa1d214567d62b58653619b', - 'site/favicon.ico': '4205e96a25955ce59c730fd380e45db18b153e152424661df1822ed296ccaf1c', - 'site/apple-touch-icon.png': '298658c5507dd8acacfa0b2c26b0cd00b612f0932698e4223f0a8a97957fafed', - 'site/og.png': 'affd93edb1d511780bad26de47cc673a5e93014967916029dd8db68ef9ec394e', - 'site/project-mark-color.svg': '4ec733f9542323f6d2840ba743c4a11df4d416a7efa1d214567d62b58653619b', - 'site/project-mark-reversed.svg': 'dc08a6ba51a2a8e9cb82d56f900ef2de9330ac72fbb3c727e0436a4ab2f3944f', + 'docs/assets/brand/project-mark.svg': 'db727c53441d059a57d3de4b1201a3681b71b57b9e1854d32881617caa57d236', + 'docs/assets/brand/project-lockup.svg': '513474611e05d422c63b15d0de3561435fc6b23b135ba1f7831c75bd7e634b5a', + 'docs/assets/brand/readme-header.png': '7abcef4d8a4a2d58cba15cec977d86a46ff96970700b9cce2ca47f67814ee76f', + 'site/favicon.svg': 'db727c53441d059a57d3de4b1201a3681b71b57b9e1854d32881617caa57d236', + 'site/favicon.ico': '22bbfcdf8fd518251f5d8ecc8aa8b4398a4e795d2eb3b087af5221f90c0f6b7b', + 'site/apple-touch-icon.png': '262bdf7d2028fd50c95876ff1ffebe83c44ac75b8476f7ab399e106adf56e6e4', + 'site/og.png': '96fb0eebc5da137e1a99bc3f58ef6f568f13eede79778f0e0a1b56ab143a304b', + 'site/project-mark-color.svg': 'db727c53441d059a57d3de4b1201a3681b71b57b9e1854d32881617caa57d236', + 'site/project-mark-reversed.svg': '0d68b20d404b13618b97170d700f07d60e78a072db6e9553df964b7b0a85593f', } for (const [file, expected] of Object.entries(assets)) { @@ -24,12 +24,12 @@ for (const [file, expected] of Object.entries(assets)) { } const checksumFile = 'docs/assets/brand/checksums.txt' -assert.equal(await hash(checksumFile), 'f1c266d086750eed1fc053e10e858ad9d33c3227d468b823cc7c7d8ca2f4a1ed', 'vendored O04 checksums.txt must remain exact') +assert.equal(await hash(checksumFile), 'f26faff6340a3a572dbcc1e78a787d7494caa1927df5d42a4ae0c5e60dc79fa1', 'vendored O04 checksums.txt must remain exact') const checksums = await read(checksumFile) for (const [asset, expected] of Object.entries({ - 'glyph-color.svg': '4ec733f9542323f6d2840ba743c4a11df4d416a7efa1d214567d62b58653619b', - 'lockup-endorsed.svg': '905cf0a05ab5d3787bc02ff7d4591bfa020d72aefdd0e0d0c53271da6d3f383c', - 'readme-header.png': '481391d02b1f50ed6dba1790c0899bcc7d16948421bba66778756a89921b5dbb', + 'glyph-color.svg': 'db727c53441d059a57d3de4b1201a3681b71b57b9e1854d32881617caa57d236', + 'lockup-endorsed.svg': '513474611e05d422c63b15d0de3561435fc6b23b135ba1f7831c75bd7e634b5a', + 'readme-header.png': '7abcef4d8a4a2d58cba15cec977d86a46ff96970700b9cce2ca47f67814ee76f', })) { assert.match(checksums, new RegExp(`${expected} ${asset}`), `checksums.txt must declare ${asset}`) } diff --git a/site/apple-touch-icon.png b/site/apple-touch-icon.png index 46d81b04dcc238d1a4098451421dc78b0c001f0f..b62ff3720356f941ca6c7991de30435efb25d2b3 100644 GIT binary patch literal 1968 zcmb`I`CHQ27so%yBPL2ZZn%t+X_-0YhFPeIMJ}Z#YK&WGiz6kAIHPaR?#ZQ8g`#6=5s5vR%5<1xY1M|c8JkPo3eeOBu{&HW>z4V|!9|YVK z4gdhc&leZ0ikvlH2UD#c-7qIr&`kCXPXz!i{WXUGj0$4_&^YRc^9nsPI6WdI8yqsG z{jGM(7rKBfxnK^6nhTh};%O8^`{7q6)uKYK9 z9VF{ZiEEDEhG59O#BcQZQ8BQta@LU>{3MdYOM8e(Aw!#eJ9y@?>(pDSz-aTLrfGkA z+yuR2r$H=s2H6&#mYY)*3q>1#kdF>VbnXjnbTpH%$5LGgA0J@Kv)PpCQbeNqIuGK5 z0A5w)p3STSsXjWL%}LIox4A|e{S}i*gK2+;aAl-j_)XXFRZ`r?qG5H+=lf!-fDpc; zz^T=C?0}iC;CE*d3SfSl`{K|$Uk%!L-ODUE)Pdu~H&{|o<7$D6ThIAcRR;9HN3?g! zQkx>afiMzQp9MjXK!_=*y(ZMqEKQIGLqkbeXH{5BHe;bbirs+ekAwjr{w=C{pp5?+ z%>SV*5l$BrHrm=vR+yI!V7liz3n#X1t?#hY^VX6y*8CMr9JWL?eb{_{;HU5}I?m6^ z3|oSPCbch-MBRE%vqs&yoIO3RRcqx53Uw{9F*$D_uM3=@*8 z;6tc~nqBl!m;@adkY2;47FA!oEC@p@Q?|1NobIsY;|3RQ)(FQvXo2lXsq!u$)cMs) zNgPnUh|V#?-hDJbfDJVI?v`7w)_68uW7gmx-E#`csT%lH;hYmFyU-7b5X^!&EfN&O z1iH$@V+4*ZLHew;VO`9awCF7|L7;`VjsE%C2{Nbip@y(#-fY7AZW7*~`+Q*Y*WK(D zYT~Uc9sITrvQt?%+j2^N!^SyCy6vCsPYsD$iTpL=mhj|s(Nz=p22boygT_ z9$madv}Jx7kr6x%{_y0#(P+N8oH+9apytt9(qmf=xf#87hxUi|F=wgEqBDvZ36IIt ztPy8wv)%v_9i~UB6Z7$;JgJWI%!r<_+gzbNACzS}+@Una7DB)oM2wSirPj4|$Mar> zP&U}kb$x!mg3RB~?Q37~-j0piA{qJ0v5~!6nM0Bbpq}Tp?NZG=K#DR}pMLVEX<->=A=lm|8{hnaQ8kt1!;9zGy zZ_n#Jt7AUV7_-uV9_cbN`O!0qFImyLtZ~}x(`fzrw7gPtRzQXaOTVXIG<3M5gQD0bkwK|_kJecv9O(B zdw#BO$c2~xIc&Y1?aF>cv)CEE{RA>`K}+@oUuZCQF{F8KW|j{jyX8H7Yxz`?*MyrL zcii1V2imxr@$@4c&pWumr*ZDy;qCalu%p- zseX#hM3d3y3FjkRe#1f|%o5DYRM)=ke%cWg0L8a5=P7dAUEKhhCEx~2!^$BDNgj>~ zUu%`h_xA08f;4`8F{ZEBL?w)c#I-3w!Qg=|8jKR55E7?;OoTmXCaww2ZNf!WV}FY> z=;_*-#RbcvJ8h+~74>~XE8@>rA4VTjJ!f|1z2Qd&{w7Q>|2EvCk`>at=d!{w07cTL zJXC<=uY3iebo(ZNl54X%Y3?f!>SevN7GGOI&R!qUWo!{dJ+%*Ax7*M)$1*WJ^EjrB zf*SkWaYoGM=v}zkqer>>AXc%jYG*XfTbIhkkoO*9*fBD9i5jfNpdCW4316IS%W(R# zrDnr?$Nnsd4{d$MWUlgkhVJ#-%aeLpAH-ADBDZ=(+~@cd)VP!K<8BB=_v`7*U*HB& i4dyPm|77TrB{T3Re6C?Nc1-mJ1AhAgagX=JWd8$JPNaAM literal 1575 zcmbtUc`zGj6i;WnA(S3ky_{`{YMo&;Y5o+s*P!zSXyR-l7bpP3J=J&lf-}l~ce)Ha&7iVW{AtiA}0ssI= zp)AcEM7C-l;y}?2?*{6M3Y+67=M z^=wAI!E+^_^9MCBVyU&bqvD#kYQzHuJo!c`rpW2n(LV|&43*zp25JO39zSUR^P^o5 z=!4N%jYL<>FTll|ibDZ8b3MWdK@Q3I_LVEiC%1USW+ERp$E3R-7OD95@rYkb=wBK& z4GJzPD0y?NIeF3%(vc8#$?);7MZ~BDzMJ(XCp0M@Ag4fe)e0S_CFDz;y_ED!d>-~G z>9I^j2EaOii0Y#NS%w`p_D!exfN%qhQ**LgfD}Db1sgwlrzw&l^b8QNYM;YsR%b@9 zuQtxMYJ!h!criHViPgsK`o0!~qIt5tJN1E~)q@M|-f)XbKWO|aiNR43+9PNpMXGu% zkOt&W>>01EnMG=k4VcI6g~$-9)QR@YQk_BqS%NXH85mUlO0bg9-O+ZI}<#86!zH|K)&v9`5Vidwc! zN65K5u={MVY#4$u4R0k`Z_8{UwvfSoJOqEH9^W$S(o(bJKadu7js;GKPFOeOuWk24 zE#Ps8b}lsBB*(SDoq<2LH`2(VD>84)zs2yYzv8#_MLpE=EOhWk&1=53nQzD|(Fh#5 zqZ;V$5DP*)8$R-d)+2i6=4p05^S!n0H7EMY&c$;74p>BpKZm-Vkv-&8Tw}jXoqT%x>3ynww^9 z2!^nP=WJH?u%Bptu|u53-eT`kL*EU%a?L zC+};I#|^JyazPt4nC?Zs=W=S+RnhB$58S<|joLIAMbL}sJFg!N+uRO(=ew?;2y|J7 xttnVC$vR{5Z8N>VN2PzS#&0iD0N`QC%E_jmRKR7$qhkAUsB5<7B?ynle*kBN;Y|Pl diff --git a/site/favicon.ico b/site/favicon.ico index 6ca6a49026c376af213830410f62f725055588aa..320f463ec31659d285173f19c5cc7f1077856b48 100644 GIT binary patch literal 15086 zcmeHOPi$007@wvjUJ1r?dol6I$*`>lNu+>AuW}@Wpz-R4in|+@U}E*61_KvE2=+h- zA%I;qF@c6%O^km|Mm%UFz`@9FTZ*mQcH80m&F-}G=FNLEud`dW$-Lz2H*aRX`F`JT zX5YM-H)U*q4YHj(8R=p6_728gWQ+|Dx9=}e{&~vVy}NV&JY!?eG4=x0p(3(q=abqt z*W8|yyXv_@u|86mhzaGRJS~{|Xz@g2q{x$GCRcbb&AyQ&B?1wQxYCqmH9;`y5#e&-H- z$`?MqZnR&mRLiRU!kKS41oo>B=Y?L+GvM#4ec@sR|NOfbg?|~7iGS69>&i{OSo)GL z7B}R-x6Xdo$Q8$lyS%CYReQ-pR99ntruL!Af7GtsC)Bs8V}@V-@mZ>qCmA!hQ7_?vk$OiuW3O z3I}}S-;8gG4;cLYC(oVIPnzBe|1*0}@uge82|-%L(`*0mxBSyzTwX}47<%bn^$oug zhl;_~|4OBLkmjoU`h2Hysi(m?F6mFjgEG{2^>6YGEV@tizWLQJu|5X|_(oY4|9af= zUiw3Ovdt`cuJKEMx|Y81-X`DOvg8H-ZVc$W%lj-`qpsdhZr&M_{&X$&^!*{?t0ajk()3&QLEf@U$6_@5&Kf+9G9#Ny0t_kr1xHKwuy+(5DR4M@#!?Em4Yn|1o_NvgM&2 zYHzDTCESyywUKWg+U<1=;K>(fntiYP!S?Mh4Vz0D+V5o_#J)Y!{(=iG=Q@UOf8C77 z2mj2gAM&N!zY9Uy7*n6(2j147|E#}yB5jPJ5Ao~RWe~;~`V7C09hg)5p$qtF?Y)oI z?Il{1Pw1k5`!|l^&Tl$~{qDbf_Vo!dZXz-K-Od+ndE#H4s!pnV33?i557IEJWy`fc zo7?x{yyz$%47$6oM|Dz-4I7H=Lrf1*y zi2r|KnnTMxRl{!noiF&~mmDAq%?Pn~a_~DiAFOurp2q|JmN$!uXHAOZWTuNqh!& z#(!TvKk4kB`Yc2Yre{CuU`~q6O`W);y~);R{pB+Lm(E;^;FnmsrG3`FF8J{roj-QA zCo%Z$Ke*yY4Cn{_45)e@)Rf*hBZ_mPsuc3Hk2IF;X&JAb1;3onvg!0Qs&PcwasvML zS>EJ63H+yxsO>&}T-IO7W5YIf=u7~e;ZNhww`}F>+L#YMn=RJYz8G!xw*3bi#>8^k z*Rc8SRyq2C&R`^+^*5dWPs_`ry>4L(?F0q_1A&3Sz~&feZ}{PVqHtx=(`-Q0FOyOG of2!EYO=vO~c7RXzYg?fSFZ=*MG~&*x$z(wARc3?Pc#HD<1ReMJrvLx| literal 15086 zcmeHOziSjh6rLC%pzd9oh+VD`>`Z0s5>jaCKcHY~8}}NUoIyw<{O1RKF72ZsM%iOh&`_ZL2^83iXl<%{MG31^%FI{}|r>E#0z+D#B&)PD#eeWLbD_PH5KlNc_%dh=LOe=;q-bUVh z{H_E!SkD`eYX60JsYteY^G&?|;k!w^qfEv!*Key$o)?>qD_>;)Z8c1?e)`M~_dn~l zoUXh}Z7w!0`C2V?jy`W6hVe*e&c)YeGmItPv+K4lHoA{K9@M@gV}-h3+sU&A8BfoN zv5O6CO=zth*Nz-(aH-A3##A?RskP@^gRIR(x7BIl`Tl^Or@xSKH~m@{W14#pospik z>}K6dMSXu6`%e30v+1p)=1?aN;}A3MrK0X1y znED#ZP`~Xy*;GHT!Di2MWjbv2k6UBb{a>_w)^%jP{uFJWxqf_qlmzqCZ}W{^pT#=I zu{Z618Q&Ju#=H1R8>zd*)a|SK<6YDH6Q7Mn(njhgTjr#V)OoJzKX+kt==~YZj5KK@ z^^rwflQvRkt0Ma^bDfqR??n2j=D}VuE;0I5C`jX!RUX> J*wVd^e*lBUnhgK| diff --git a/site/favicon.svg b/site/favicon.svg index e7b2f73..5017d12 100644 --- a/site/favicon.svg +++ b/site/favicon.svg @@ -1 +1 @@ -numkey \ No newline at end of file +numkey \ No newline at end of file diff --git a/site/og.png b/site/og.png index 68df74f617640e3caba9ea9a912d051974bcfcda..c8ad61d630016a3fb5e6ef229e8125c9d9d0d716 100644 GIT binary patch literal 14612 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

}fc#@= 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 \ No newline at end of file + \ No newline at end of file diff --git a/site/project-mark-color.svg b/site/project-mark-color.svg index e7b2f73..5017d12 100644 --- a/site/project-mark-color.svg +++ b/site/project-mark-color.svg @@ -1 +1 @@ -numkey \ No newline at end of file +numkey \ No newline at end of file diff --git a/site/project-mark-reversed.svg b/site/project-mark-reversed.svg index 5ecf391..100793d 100644 --- a/site/project-mark-reversed.svg +++ b/site/project-mark-reversed.svg @@ -1 +1 @@ -numkey \ No newline at end of file +numkey \ No newline at end of file From 378e4341eca27cddd0e85b0321adf60cb0c5edda Mon Sep 17 00:00:00 2001 From: Sin-Kang Date: Mon, 31 Aug 2026 05:43:06 +0900 Subject: [PATCH 2/2] fix: normalize brand manifest line endings --- scripts/check-brand-assets.mjs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/check-brand-assets.mjs b/scripts/check-brand-assets.mjs index 57c1da8..5ce1f31 100644 --- a/scripts/check-brand-assets.mjs +++ b/scripts/check-brand-assets.mjs @@ -6,6 +6,9 @@ import assert from 'node:assert/strict' const root = resolve(import.meta.dirname, '..') const read = (file) => readFile(resolve(root, file), 'utf8') const hash = async (file) => createHash('sha256').update(await readFile(resolve(root, file))).digest('hex') +const normalizedTextHash = async (file) => createHash('sha256') + .update((await read(file)).replace(/\r\n/g, '\n')) + .digest('hex') const assets = { 'docs/assets/brand/project-mark.svg': 'db727c53441d059a57d3de4b1201a3681b71b57b9e1854d32881617caa57d236', @@ -24,7 +27,7 @@ for (const [file, expected] of Object.entries(assets)) { } const checksumFile = 'docs/assets/brand/checksums.txt' -assert.equal(await hash(checksumFile), 'f26faff6340a3a572dbcc1e78a787d7494caa1927df5d42a4ae0c5e60dc79fa1', 'vendored O04 checksums.txt must remain exact') +assert.equal(await normalizedTextHash(checksumFile), '82b477d3da36c335e5c189ea0af1626d164eeaa43e061997fb846d09e7ed685d', 'vendored O04 checksums.txt must remain exact across line-ending policies') const checksums = await read(checksumFile) for (const [asset, expected] of Object.entries({ 'glyph-color.svg': 'db727c53441d059a57d3de4b1201a3681b71b57b9e1854d32881617caa57d236',