Phase 13: retire the CustomTkinter GUI - #44
Merged
Merged
Conversation
Removed customtkinter, Pillow (unused anywhere in src/), and the dnd optional group (tkinterdnd2) now that gui/ is gone. main.py's --gui path now launches norefund.desktop.app instead of the deleted Tk App class; kept main.py's plain-text CLI analyze mode (norefund <file> --model ...) rather than repointing the console script straight at desktop.app:main, since that mode has nothing to do with the Tk GUI and dropping it would be an unrelated regression. norefund.spec's PyInstaller excludes list no longer names customtkinter -- it's not a dependency to exclude anymore.
Both still described the retired CustomTkinter GUI (python -m norefund.gui.app, norefund --gui as a Tk launch, a 10-model feature list, gui/ in the project structure tree). Rewrote to match the app as it now is: desktop/ + frontend/ layout, actual model/provider counts, the full current view list, and the macOS xattr -cr note alongside the existing Windows SmartScreen one. GUI_REVIEW.md and GUI_PERFORMANCE.md, which GUI_REBUILD/13-CUTOVER.md says to archive to docs/history/, don't exist anywhere in this repo -- nothing to move.
Full gate run on Linux (this dev machine): - pytest: 250 passed - ruff check src/: clean - frontend: npm run typecheck, npm test (102 passed), npm run build: clean - python packaging/build.py: builds, PyInstaller one-dir output 125.0 MB, frozen binary launches and stays up under Xvfb (exit 124 = killed by the 5s timeout while still running, same pass condition build.yml uses) Bundle sizes from the v0.1.0 release build (github.com/Phantom-VK/NoRefund/releases/tag/v0.1.0), compressed release artifact sizes: - Linux tar.gz: ~65 MB - Windows installer (Inno Setup .exe): ~33.7 MB - macOS tar.gz: ~64 MB Cold start time to first paint and idle memory are not instrumented by this pass -- they need a real per-OS interactive measurement (a headless Linux Xvfb run doesn't give a meaningful "time to first paint" number, and there's no Windows/macOS hardware in this environment). Left as an open follow-up rather than reporting fabricated numbers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Final phase of the GUI rebuild. Removes
src/norefund/gui/(5,592 lines) and the customtkinter/Pillow/tkinterdnd2 dependencies. The React UI is now the only UI.src/norefund/gui/deleted; its Tk-specific test files were already removed in an earlier packaging pass, andformat.test.tsalready covers the formatting logic that moved to the frontendmain.py's--guilaunch now startsnorefund.desktop.appinstead of the deleted TkAppclass; kept the existing plain-text CLI analyze mode (norefund file.pdf --model ...) rather than dropping it, since it has nothing to do with the Tk GUIpyproject.tomlpruned (customtkinter, Pillow — confirmed unused anywhere insrc/, dnd optional group),uv.lockregenerated and committed alongside itpackaging/norefund.spec's PyInstaller excludes list no longer names customtkinterCLAUDE.mdandREADME.mdrewritten to describe the app as it now is (desktop/ + frontend/ layout, real model/provider counts, current view list, macOSxattr -crnote)packaging/build.pyrun whose frozen binary launches and stays upNote:
GUI_REVIEW.md/GUI_PERFORMANCE.md, which the phase doc says to archive todocs/history/, don't exist anywhere in this repo — nothing to move. Cold-start time and idle memory per platform aren't instrumented in this pass (no Windows/macOS hardware available here); left as an open follow-up rather than fabricated numbers.Test plan
pytest— 250 passedruff check src/— cleancd frontend && npm run typecheck && npm test && npm run build— clean, 102 tests passedpython packaging/build.py— builds, frozen binary launches and stays up (Xvfb)