Commit 809e8a3
feat(install): clear bloated profile caches on upgrade, and add
Chromium's disk caches have no ceiling that matters here. Service-worker
CacheStorage is quota-managed per origin, so a handful of heavy sites can
carry a profile into the gigabytes on their own. Past roughly a gigabyte
the cost stops being disk and starts being latency: the CacheStorage
index is consulted on navigation, and once bloated, scrolling and tab
switching go with it. The failure is gradual and then sudden, so it
reads as "the browser broke today" — a profile that had reached 3.9G,
with 1.4G of CacheStorage, is what prompted this. Clearing three
directories took it to 534M and the sluggishness went away.
`tron upgrade` now clears Cache, Code Cache and Service Worker once they
exceed TRONBROWSER_CACHE_LIMIT_MB (default 1024, 0 disables). None of
those hold bookmarks, passwords, history or cookies, so it costs a
re-download and nothing else — you stay logged in everywhere, which is
what makes this better than chrome://settings/clearBrowserData, where
clearing service workers means clearing cookies too.
The threshold matters: the auto-upgrade check runs daily, and clearing a
healthy profile every day would cost everyone a re-download for nothing.
`tron clean` does it on demand, implemented in the CLI rather than by
re-running the installer — cleaning a bloated profile is exactly when you
don't want to need the network. Neither path will unlink anything while
the browser is running; the profile is memory-mapped, and pulling it out
from under Chromium yields a corrupt profile rather than a clean one.
Tests cover the cleanup against a fake profile: caches go, bookmarks,
cookies, history, login data and IndexedDB stay, the threshold and the
kill switch are honored, and TRONBROWSER_DATA is respected. The `tron`
CLI's copy is generated inside a heredoc, so `sh -n` never sees it — it
was extracted and checked with sh, dash, and a live run.
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>tron clean (#74)1 parent aafbaf9 commit 809e8a3
2 files changed
Lines changed: 225 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| 99 | + | |
99 | 100 | | |
100 | 101 | | |
101 | 102 | | |
| |||
249 | 250 | | |
250 | 251 | | |
251 | 252 | | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
252 | 271 | | |
253 | 272 | | |
254 | 273 | | |
| |||
586 | 605 | | |
587 | 606 | | |
588 | 607 | | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
589 | 680 | | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
590 | 685 | | |
591 | 686 | | |
592 | 687 | | |
| |||
628 | 723 | | |
629 | 724 | | |
630 | 725 | | |
| 726 | + | |
| 727 | + | |
631 | 728 | | |
632 | 729 | | |
633 | 730 | | |
634 | 731 | | |
635 | | - | |
| 732 | + | |
636 | 733 | | |
637 | 734 | | |
638 | | - | |
639 | | - | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
640 | 739 | | |
641 | 740 | | |
642 | 741 | | |
643 | 742 | | |
644 | 743 | | |
645 | 744 | | |
646 | 745 | | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
647 | 753 | | |
648 | 754 | | |
649 | 755 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
0 commit comments