feat(reports/cartes): new KPI dashboard sub-report with sparklines, top movers, budget adherence and seasonality (#97)
check.yml #195 -Commit
4c58b8bab8
pushed by
maximus
feat(reports/cartes): new KPI dashboard sub-report with sparklines, top movers, budget adherence and seasonality (#97)
check.yml #194 -Commit
31765e6d17
pushed by
maximus
feat(reports/cartes): new KPI dashboard sub-report with sparklines, top movers, budget adherence and seasonality (#97)
check.yml #193 -Commit
31765e6d17
pushed by
maximus
refactor(reports/compare): unify MoM/YoY under one Actual-vs-actual mode with reference month picker (#96)
check.yml #192 -Commit
4116db4090
pushed by
maximus
refactor(reports/compare): unify MoM/YoY under one Actual-vs-actual mode with reference month picker (#96)
check.yml #191 -Commit
4116db4090
pushed by
maximus
feat: compare report — MoM / YoY / budget with view toggle (#73)
check.yml #182 -Commit
ff350d75e7
pushed by
maximus
feat: trends report — global flow + by category with view toggle (#72)
check.yml #181 -Commit
d06dd7a858
pushed by
maximus
feat: trends report — global flow + by category with view toggle (#72)
check.yml #180 -Commit
d06dd7a858
pushed by
maximus
feat: reports hub with highlights panel and detailed highlights page (#71)
check.yml #179 -Commit
ac9c8afc4a
pushed by
maximus
feat: reports hub with highlights panel and detailed highlights page (#71)
check.yml #178 -Commit
ac9c8afc4a
pushed by
maximus
refactor: split useReports into per-domain hooks + URL-bookmarked period (#70)
check.yml #177 -Commit
6a6a196467
pushed by
maximus
refactor: split useReports into per-domain hooks + URL-bookmarked period (#70)
check.yml #176 -Commit
6a6a196467
pushed by
maximus
refactor: remove pivot report, add sub-route skeletons and shared components (#69)
check.yml #175 -Commit
91430e994a
pushed by
maximus
refactor: remove pivot report, add sub-route skeletons and shared components (#69)
check.yml #174 -Commit
91430e994a
pushed by
maximus
docs: ADR 0006 + changelog + architecture for OAuth keychain (#82)
check.yml #172 -Commit
65bc7f5130
pushed by
maximus
docs: ADR 0006 + changelog + architecture for OAuth keychain (#82)
check.yml #171 -Commit
65bc7f5130
pushed by
maximus
feat: dismissable banner with session-storage memory (#81)
check.yml #170 -Commit
9a9d3c89b9
pushed by
maximus
feat: dismissable banner with session-storage memory (#81)
check.yml #169 -Commit
9a9d3c89b9
pushed by
maximus
feat: settings banner when OAuth tokens fall back to file store (#81)
check.yml #168 -Commit
3b1c41c48e
pushed by
maximus
feat: HMAC-sign cached account info to close subscription tampering (#80)
check.yml #166 -Commit
2d7d1e05d2
pushed by
maximus
feat: HMAC-sign cached account info to close subscription tampering (#80)
check.yml #165 -Commit
2d7d1e05d2
pushed by
maximus
ci: install libdbus-1-dev for keyring build, drop appimage target (#79)
check.yml #164 -Commit
481018e1e3
pushed by
maximus
ci: install libdbus-1-dev for keyring build, drop appimage target (#79)
check.yml #163 -Commit
481018e1e3
pushed by
maximus
feat: migrate OAuth tokens to OS keychain via token_store (#78)
check.yml #162 -Commit
feaed4058d
pushed by
maximus
feat: migrate OAuth tokens to OS keychain via token_store (#78)
check.yml #161 -Commit
feaed4058d
pushed by
maximus
fix(deps): bump vite to 6.4.2 to resolve GHSA-4w7w-66w2-5vf9 and GHSA-p9ff-h696-f583
check.yml #160 -Commit
813d29e38a
pushed by
maximus
fix(deps): bump vite to 6.4.2 to resolve GHSA-4w7w-66w2-5vf9 and GHSA-p9ff-h696-f583
check.yml #159 -Commit
813d29e38a
pushed by
maximus
fix: use on_open_url for OAuth deep-link callback
release.yml #158 -Commit
f5d74b4664
pushed by
maximus