From 046e8be14b3cd417afcb552c78d0d995752e4748 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 16 Jul 2026 11:16:21 +0000 Subject: [PATCH] fix: no-cache headers on JS/CSS + version query params to bust browser cache --- __pycache__/main.cpython-312.pyc | Bin 48074 -> 48264 bytes main.py | 6 +++++- .../433a0593-d3cf-414e-8763-ab5f87cbc75c.docx | Bin 40651 -> 40658 bytes renderer/carbone-templates/registry.json | 2 +- static/index.html | 4 ++-- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/__pycache__/main.cpython-312.pyc b/__pycache__/main.cpython-312.pyc index 7faad21f42accd7b774acd13e3390311ebae2f5d..6510535d981a7b129ea6c826d5c048e4282f3792 100644 GIT binary patch delta 604 zcmXAmO=uHA6vuaFV-lM$p^-K;k`$q`(A0w1_?1H`mbM2$Y*9goYceGp@*y*8TSI~% z3W*9mjE5W|77|TrwIo@+SPC8lK|u@=ETM=Vy=es{BH|mJ!*BjG@BQb!nR)#a=eyYX z#^LCZV6e?|@t#7%*)5@8hV|aEMY)J1iK+sZ039<~(wNSu6_Tj~pkO*HbeO-W44{m$ zT?u0IqR3z3p6Uq78B^7pCUk?pUEB2K#ePA+Ej&L2Zi(e-f!oHT$A=KA7$2X!!f2I0 ztk0o8{CEABJeftj{=m&w99B%n_}RvgIft`S+{OoI-Fw!+ECzK&aTdqz{PRq&MLq#L zSMBBQTLp=`@|7Rj?}-S`#f_1#~PL3(so_^6x#U3UxbHl8UlLO^F$;g&tHb8aOsQ4lIYmT_j3+o)n<;l{p_0Yj0_A#2_Pa7NZevet;j4c zDK6pwDlXy$5}Hg!As}|#ym6Q<2Ez@QrGd4{lVP?6X03^8byNp+(Dp+BI2=mV->G01~&@GmGQXGILVFPAp1< zxHA%DT`rI)W&#ol3PtKb>K0FNYEfBgd~r!)NoI1iCns*!WlWvizj+tqdNzwAj z%eQ E05qC?)&Kwi diff --git a/main.py b/main.py index 55990b4..1776ca5 100644 --- a/main.py +++ b/main.py @@ -840,5 +840,9 @@ async def serve_static(path: str): """Serve static files or return index.html for SPA routes.""" file_path = static_dir / path if file_path.exists() and file_path.is_file(): - return FileResponse(str(file_path)) + response = FileResponse(str(file_path)) + # Prevent caching of JS/CSS so code changes take effect without hard refresh + if path.endswith(('.js', '.css')): + response.headers['Cache-Control'] = 'no-cache, no-store, must-revalidate' + return response return FileResponse(str(static_dir / "index.html")) \ No newline at end of file diff --git a/renderer/carbone-templates/433a0593-d3cf-414e-8763-ab5f87cbc75c.docx b/renderer/carbone-templates/433a0593-d3cf-414e-8763-ab5f87cbc75c.docx index 4b2cb212d2923e8328f9a2abdd9aa9da655a6a27..d69f6ae6508beb8a58bff55ef9f618fb97a045d9 100644 GIT binary patch delta 2163 zcmZ8i2T+q~6HY=@iZmgLNJr_#AOX&BAbN5KC`FopibM#40i_2GgeoN=20nTqD1t~p zlp^JTh%^fw1Sta1C;}QoRRp8|7jOLM=H8j_+2?t8-<@w}cXoSPVZ*I35qlc}xHN=+ zSk)ppK`09t%98>}f)AjqT2rA7C}>b3X97Tzf#2dQ%2fnhl;yT`26JFOZ~_j2SOX8D zWr>{2Y&Dr5u2k~?MOk%+$(~9ZyTzWrt*4wc(as|ahLXo{RYv$2_FVlp?ls6%*rHMD zlwlfH6ScJT4L<|@!YM}3 zVppa}ib+0br}p|=aRzvxLP{jV5EC~*i*&v zI;D?kW{&qAv9jz+u^G(ZtO`rCtz$EO=mQ)tXQ1D4>9qHiSEA>~VJ1QgQO4w;l-B~j zQc3B7Ch90LRndYRp%IAvA3&qjbK--Vip%)wZlp_)RJ8|7jB=^b#~+t@{c%`lVrMO! z+V(+EE=lKLaP}enw*|3U2x^M)08a6cMfP0bgt_rBvtO`<$8dmabtrf4UOAZ*^hS2} zs1sbI;6#hW;(;vszHBjXEV?$tXLj)#D#B3jeL43%10_?dVaqDh7EYS(Ck}txHF3Wy z^WLa?#l||k+1&kj+ljoA)aTpQZGR}YM$-2`VrN$M;y8Hv_1RW~7)_q&8(!pZQ9H_C zxkn?Uo72dB(L0Z;cy|#nMeaHN`0?4v2CAKo+byDGU9HTT&Qz{M?j8D-uRs3$lCX>x ze*ff1SFy=$Np^)NXAmWBA5T1&?;WstKwVpgluKE46JVt-c%Fxh)@3vytG#vSPase3 zYiW3a%+7oQ?3~@#cmbF$s-E^lM<4b>jrJtC%qS2|^i)}#y4G||pshq48-8+Cx__mo zV@Uv>9J~@LLT;rkxjaROMix0dWA$5p!L|B^x4pi&rR7HYo*2dPA;N-pwR??3k4NoI zK>6$X=#yJ+UyHyZ=NcHF#?9_e28~H4>}!6pM}{GP*uTQ=x1c&j_x%|**GOl1_=8Ow ze;r{QeOBWO^O^eit=#PK7(r6YG}8!Cse{%-1JL>luG(x~-eF=9^samUHFwBk*G7IL{^mi<=Gbz&$2fh%$u7Pqap+0=fnSN^`c)Of9 zN<*n6JJ;`!3xpVDBDa32YW6`jW%oqq*1>I#3%C+UL^AV^CixcFSJ*Dql%){t&VtQ zUaX8oEGSbe7?~8C53h3?#7zAKt={Igm3pL$7PB+AH^sUn9Cyk+O?b#e$T)gB%BsI@ zz8gE|R$rof(;l`>KBk4id?!QcFeWvNgArWCK&Di`F%W_I~XxmA<=ACqv0q~@=}bg?Shh7f>|8U zj|%Qb?-uK|gcFhncnpi_wNcK6V9uG9V+$ssav^FmS4|0vuOB(>xs9>yDddd|2SwL8 zq}i!)we7k%)0=ds$nMn4cYfz8SL14J=sv_Gp6#Z1TX;hoG3Bd4AF~wKgeBLCL_eb> zUu#2ZZ=yZ{{i}M6=@HprGa*0dXkL z0z|2NGZ0VZn}T>F-yFn&eDnY8!hJLY@ZOdt54{E8Xi6YY133n$pecjA59D0n15F#` zUIp?nyHvn8RRIt#*!j-|6b=vz_|6K@*+c?{NQ$6S*d5%?V4oNv3heA*5D5Ph`MI-y z!DTW8;u-9N3(?o(qrD9j4B@Z!f7C9q}r?aDu(1kXHhvXK9ifrawWGJssD z2=Yph>jBRTRY1-ul!u7`fD$09{okZttv{V<1XHMknG}8|`;`;{IM8*$$3(h3R0t@f LYiv)=;|Kf?7iQ!e delta 2323 zcmZ8j2UJt(621vB20=u+AP}-5EWK=~p;)36AwWPus?>)x1*8NaN{fILlh6Z8Q|Y}Z zO^~K^g0Qql7erme1q7D1H@x@Gc{u0ZnSaim@4GX1{xkojH$i)vpe#oEOfW8hA(0g< z?g&UEB>>R|iLAmfZ$m(XX0h@B4LM+!;l&ZSVW%T4)~uZNy5>h<06?IWhwu|Uye5^{ z4{>BUY2ELp!Fr{Td2QuAKKg_@+)Kqps^BMdKW9Jo<&) z6%^p#$ZN8*y&_{UNY?9s{T`UxI(UUj3Y8P;Ym_A(5ac!!=qa2ugrUoHw8XdJ?_DS) zsu$mlh61IbC>9r+;s-q2#O6~DY4&Ix3-JgJ77YaUb4*8Q#0S~%3kLxz{1Z1XVs#Qj zM-1g{?LQ{oa}_Xfq%z$Xag0X$IxW65pI#b=WVx7Esp_ZLKz^*{hn`iGO~#0eu-$#k zsy_>pu;nIwtt@p=m6W!-wIOPt4R1B;tqeljM8n%(K`k_2wksGk5(zBz#n&##v`o3q z^Gr;ID_$=?+W>f?Oke%#yk}GX=|S^-5p3qab1VMHw*G7K6w8|ydx5mngij*+u4_w~ z1%LeNBe+oPH*Nph*V#4rY{>r5;sYqgH#K<g?``Y8Gs5Tuf zS}s578N9zI+!YYd(VZf)I9ZL4C^wof@D;s^8XLHOorIo}Kr89B%__`ao)3iTlz%}e zv02zHO1ap)^MDtcYIn|H@S01Z#l7lP#L~Rr4EBIsvs{E}X}u$oVB}dJviBt(oKo%5l@`f`6Qt=zX==N3OO;h*88EQ>snDz;( zbCzGKt6cq{SyrebaO&-8+s}%u<7|S}BQI$x6F6y(_s^R)ONrCz<`0obvuww4&Nw<+ zjd;#*8lz^Jvmoc}tJ`-Svbnii=fBx}py?OfL%w>#!^LOqfDzWIEfaChe``i)SRqaj&a^lthYzQm9l#G z)H7tv$?9j>l4<8q5)%02ha2C{izz?-G-g=sC)ZnRY%x@(>A$;msHAal=6~}M0Yp|6 zhqW+)Q_zF-lraqdeqsw6%9$7;iXQDOB`P}N$g2i*drS=&KzJGeWoAsvIgPxsSjui3 zlDL3mkF@QWpKcwS@O4r(ZP2i)q3anm6ipkasJVM+%attD$<}f%XBGM@_G-36F2`QukfTd@eC7_cnt7q6%VESP%I{`}B_I~bx9EvksUD`*{4xqpk0+ZPEEN8gB@CA*#t! z;)0|&hkn?Vc+we-Jzkrq(W)hWKXCe8J43aG-U@-XJC;_~WnRn!iZ}D5aO?INyrR3t z&g1LlGrEV6u~nY!q!iiVuPCP;w1a35E-I*H!{?XA+UDOMVtNci(1)=9?^k6)B%?#B zp%$$V>nre+mH39vz+l06DT5VF2Lo>gnPm6X4-)qz{1t0OOPecM%AG z@IvZ?H5eZWQg9rD+mQYXclPr1HN9i+?({Pr$smxf5HPt265vk&!1-eYU!G7{qJ$`c znXF&|LNq~$J_SRQ{LdN+#88mnZndPb3Nu(%c3LSxAUYkq1&^`RPzGsIAZQ;XaH9xh z@E^q=ZDa7QNHFc=RWDLZGmzE{&N#ibS_?3y9xRys7-v=j062O%7vJkp#{Q3j<3=hWe9gBfcI5Ne+tkp6Fp=?x&JQd0K i4o9H2@MTv+@PB2D8vwxTNI*O&P)c5=I6N$svHk~(aPubs diff --git a/renderer/carbone-templates/registry.json b/renderer/carbone-templates/registry.json index 2afa399..ce6829e 100644 --- a/renderer/carbone-templates/registry.json +++ b/renderer/carbone-templates/registry.json @@ -6,6 +6,6 @@ "originalName": "master_cv_template.docx", "path": "/root/workspace/cv-app/renderer/carbone-templates/433a0593-d3cf-414e-8763-ab5f87cbc75c.docx", "uploadedAt": "2026-07-16T09:03:29.601Z", - "updatedAt": "2026-07-16T11:12:12.609Z" + "updatedAt": "2026-07-16T11:15:01.909Z" } ] \ No newline at end of file diff --git a/static/index.html b/static/index.html index 64c1b43..6d81234 100644 --- a/static/index.html +++ b/static/index.html @@ -139,7 +139,7 @@ - - + + \ No newline at end of file