Repository navigation
Commit a9792d7
committed
feat(ui): Live rpm/tpm/rpd/tpd gauge in the bottom bar
Adds a compact quota indicator next to the model label so users can
keep an eye on how close they are to Albert's per-minute and
per-day caps without having to type /rpm or /quota each time.
The gauge displays `[rpm USED/LIMIT tpm USED/LIMIT rpd USED/LIMIT
tpd USED/LIMIT]` with a colour change above 80% (yellow) and 95%
(red, bold). Per-minute counters come from the in-process rolling
60-second window the throttler already maintained ; the per-day
counters are populated by a 30-second poller against /v1/me/usage
that filters today's events for the active model.
UsageSnapshot grows four optional fields (rpd_limit, rpd_used,
tpd_limit, tpd_used) and Throttler.update_daily_usage caches the
latter, keyed by canonical model id. quota.count_requests_today
mirrors the existing sum_prompt_tokens_today helper.
Resolves Albert API aliases. /v1/models exposes an `aliases` array
on each entry (e.g. `openweight-code` -> `Qwen/Qwen3-Coder-30B-...`)
and the throttler now fetches it once on init alongside /v1/me/info.
That lets users who configured `openweight-code` in their TOML
finally get the right per-model EXP tier (50 rpm, 1000 rpd, 128k
tpm, 2.46M tpd) instead of the misleading account-wide max, and
lets the daily poller match /v1/me/usage events (which always
carry the canonical id, never the alias).
Adjacent fixes :
- /model display now shows the canonical Albert id in parentheses
after the local alias, so users can tell at a glance which
underlying model their alias points to.
- The bottom-bar model label was statically rendered at compose
time and never refreshed: it now updates after a /config save
and on the 3-second tick. Auto-fallback transitions surface
with a `↳` prefix instead of `⚙` when requests are temporarily
routed to the configured fallback model.
Tests: 1465 passed, including 4 throttling tests updated to mock
/v1/models alongside /v1/me/info now that the throttler fetches
both at init time.1 parent 89850ad commit a9792d7
7 files changed
Lines changed: 438 additions & 11 deletions
File tree
- albert_code
- cli/textual_ui
- widgets
- core/llm
- tests/core
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| 57 | + | |
57 | 58 | | |
58 | 59 | | |
59 | 60 | | |
| |||
293 | 294 | | |
294 | 295 | | |
295 | 296 | | |
| 297 | + | |
296 | 298 | | |
297 | 299 | | |
298 | 300 | | |
| |||
331 | 333 | | |
332 | 334 | | |
333 | 335 | | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
334 | 341 | | |
335 | 342 | | |
336 | 343 | | |
| |||
896 | 903 | | |
897 | 904 | | |
898 | 905 | | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
899 | 923 | | |
900 | 924 | | |
901 | 925 | | |
| |||
904 | 928 | | |
905 | 929 | | |
906 | 930 | | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
907 | 934 | | |
908 | 935 | | |
909 | | - | |
| 936 | + | |
910 | 937 | | |
911 | 938 | | |
912 | 939 | | |
913 | | - | |
914 | | - | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
| 945 | + | |
| 946 | + | |
| 947 | + | |
| 948 | + | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
915 | 955 | | |
| 956 | + | |
916 | 957 | | |
917 | | - | |
918 | | - | |
| 958 | + | |
| 959 | + | |
919 | 960 | | |
920 | 961 | | |
921 | 962 | | |
| |||
1194 | 1235 | | |
1195 | 1236 | | |
1196 | 1237 | | |
| 1238 | + | |
1197 | 1239 | | |
1198 | 1240 | | |
1199 | 1241 | | |
| |||
1703 | 1745 | | |
1704 | 1746 | | |
1705 | 1747 | | |
| 1748 | + | |
| 1749 | + | |
| 1750 | + | |
| 1751 | + | |
| 1752 | + | |
| 1753 | + | |
| 1754 | + | |
| 1755 | + | |
| 1756 | + | |
| 1757 | + | |
| 1758 | + | |
| 1759 | + | |
| 1760 | + | |
| 1761 | + | |
| 1762 | + | |
| 1763 | + | |
| 1764 | + | |
| 1765 | + | |
| 1766 | + | |
| 1767 | + | |
| 1768 | + | |
| 1769 | + | |
| 1770 | + | |
| 1771 | + | |
| 1772 | + | |
| 1773 | + | |
| 1774 | + | |
| 1775 | + | |
| 1776 | + | |
| 1777 | + | |
| 1778 | + | |
| 1779 | + | |
| 1780 | + | |
| 1781 | + | |
| 1782 | + | |
| 1783 | + | |
| 1784 | + | |
| 1785 | + | |
| 1786 | + | |
| 1787 | + | |
| 1788 | + | |
| 1789 | + | |
| 1790 | + | |
| 1791 | + | |
| 1792 | + | |
| 1793 | + | |
| 1794 | + | |
| 1795 | + | |
| 1796 | + | |
| 1797 | + | |
| 1798 | + | |
| 1799 | + | |
| 1800 | + | |
| 1801 | + | |
| 1802 | + | |
| 1803 | + | |
| 1804 | + | |
| 1805 | + | |
| 1806 | + | |
| 1807 | + | |
| 1808 | + | |
| 1809 | + | |
| 1810 | + | |
| 1811 | + | |
| 1812 | + | |
| 1813 | + | |
| 1814 | + | |
| 1815 | + | |
| 1816 | + | |
| 1817 | + | |
| 1818 | + | |
| 1819 | + | |
| 1820 | + | |
| 1821 | + | |
| 1822 | + | |
| 1823 | + | |
| 1824 | + | |
| 1825 | + | |
| 1826 | + | |
| 1827 | + | |
| 1828 | + | |
| 1829 | + | |
| 1830 | + | |
| 1831 | + | |
| 1832 | + | |
| 1833 | + | |
| 1834 | + | |
| 1835 | + | |
| 1836 | + | |
| 1837 | + | |
| 1838 | + | |
| 1839 | + | |
| 1840 | + | |
| 1841 | + | |
1706 | 1842 | | |
1707 | 1843 | | |
1708 | 1844 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
915 | 915 | | |
916 | 916 | | |
917 | 917 | | |
918 | | - | |
| 918 | + | |
| 919 | + | |
919 | 920 | | |
920 | 921 | | |
921 | 922 | | |
| |||
924 | 925 | | |
925 | 926 | | |
926 | 927 | | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
927 | 941 | | |
928 | 942 | | |
929 | 943 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
101 | 109 | | |
102 | 110 | | |
103 | 111 | | |
| |||
116 | 124 | | |
117 | 125 | | |
118 | 126 | | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
119 | 132 | | |
120 | | - | |
| 133 | + | |
121 | 134 | | |
122 | 135 | | |
123 | 136 | | |
| |||
| 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 | + | |
0 commit comments