le king fu
da4eef2bdd
chore: drop decisions-log.md (autopilot scratch, conflicts with main cleanup)
PR Check / rust (push) Successful in 23m37s
PR Check / frontend (push) Successful in 2m36s
PR Check / rust (pull_request) Successful in 23m18s
PR Check / frontend (pull_request) Successful in 2m27s
2026-04-27 21:35:04 -04:00
le king fu
043e9bf622
feat(prices): PriceFetchControl component + consent modal + best-effort UX
...
PR Check / rust (push) Successful in 30m45s
PR Check / frontend (push) Successful in 3m12s
PR Check / rust (pull_request) Successful in 28m50s
PR Check / frontend (pull_request) Successful in 3m15s
- New component renders button + consent modal + spinner + attribution
- Best-effort warning shown once per session for stock categories
- Hidden if not premium or category kind != 'priced'
- Consent persisted per-profile in user_preferences.price_fetching_consent
- Manual unit_price input remains active in all paths
- 17 vitest tests (no RTL/jsdom — logged MEDIUM in decisions-log.md)
- Wired into SnapshotLineRow/SnapshotEditor/SnapshotEditPage
- asset_type hardcoded to 'stock' pending category schema extension (MEDIUM)
Closes #158
2026-04-27 08:36:23 -04:00
le king fu
c90badae39
merge: bring in balance.service prices namespace from #156
2026-04-27 08:30:53 -04:00
le king fu
99814b9a0d
merge: bring in useIsPremium hook from #157
2026-04-27 08:30:50 -04:00
le king fu
b1dc76b487
merge: bring in i18n keys from #160
2026-04-27 08:30:48 -04:00
le king fu
98f68f7a1f
feat(prices): useIsPremium hook from license.edition
...
PR Check / rust (push) Successful in 26m18s
PR Check / frontend (push) Successful in 2m37s
PR Check / rust (pull_request) Successful in 25m0s
PR Check / frontend (pull_request) Successful in 2m41s
- Reads useLicense().state.edition === 'premium'
- Ergonomic only — server enforces independently (ADR 0011)
- 3 vitest tests (premium, base, free)
- CLAUDE.md hook count 12 -> 13
Closes #157
2026-04-27 08:11:23 -04:00
le king fu
ab7e0a3362
feat(prices): i18n FR/EN keys + CHANGELOG entries
...
PR Check / rust (push) Successful in 26m25s
PR Check / frontend (push) Successful in 2m34s
PR Check / rust (pull_request) Successful in 26m20s
PR Check / frontend (pull_request) Successful in 2m54s
Closes #160
2026-04-27 08:06:54 -04:00