What was fixed
- Duplicate / conflicting logic – Removed the huge inline
<script>fromindex.html. All UI logic lives inapp.js. - Compress / Extract were stubs – They only showed toasts. Now they talk to the main process via
electronAPI.compressLft/extractLft. - Broken IPC – Preload exposed
closeWindowbut main listened forwindow:close. Fixed channel names and API surface. - Files never read as binary – Compress needs real bytes. Files are now read with
FileReader.readAsArrayBufferand stored ascontent. - Fake JSON “archives” – Main process builds real ZIP archives with JSZip and saves them as
.lft. Extract unpacks ZIP to a chosen folder. - Inspector – Double-click or context-menu “Inspect” on a
.lftlists files inside the archive (vialft:inspect). - Window controls – Minimize / close wired to Electron.
- CSS / HTML cleanup – Single coherent stylesheet, proper empty-state class, inspector close button, no conflicting inline styles.
virustotal
https://www.virustotal.com/gui/file/6ce5453711522f7af5f184f631da2fb6ecd23076b65538147f5bfdc8b9df6a3c?nocache=1