The blacksmith-8vcpu-ubuntu-2404 runner was intended for performance validation but adds significant cost per build. This change reverts to standard ubuntu-latest and adjusts the timeout from 10 to 30 minutes to accommodate the longer build time on standard runners.
* chore(ci): add PR labeler and improve coverage reporting
* chore(ci): split lint test and coverage jobs
* fix(ci): dedupe coverage history entries by sha
* fix(ci): use github.workspace in cache paths
* fix(ci): run flutter tests once for coverage
* fix(ci): consume coverage from shared test artifact
* fix(ci): align coverage guidance and add checkout
* fix(ci): checkout before downloading coverage artifact
* chore(coderabbit): dedupe title ignore keywords
* docs: refine widget naming conventions into three categories
Encode reviewer feedback distinguishing design system widgets (Wn prefix),
complex reusable widgets (no prefix), and screen-scoped widgets (screen
name prefix) in both .coderabbit.yaml and AGENTS.md.
* fix(ci): cache lcov apt package to avoid repeated installs
* feat: add translations for signer related messages
* refactor: add constants file with nostr events kinds
* refactor: move signer methods to service
* refactor: add nsec storage option to use nsec hook
* refactor: simplify auth provider for signer related methods
* refactor: signout screen with different callout msg depending on nsec storage
* refactor: show callout in profile keys screen for signer nsec storage
* refactor: rename use login hook to use login with nsec
* refactor: rename use android signer hook and make api more similar to the use login with nsec
* refactor: use in login screens renamed hooks and improve ux a bit
* refactor: remove unused android signer service provider
* docs: update docs files
* test: switch profile navigation
* Add internationalization support with 8 languages
- Add locale provider with system/manual language selection
- Add ARB translation files for EN, ES, FR, DE, IT, PT, RU, TR
- Localize all 19 screens and 23 widgets
- Add locale-aware date/number/currency formatters
- Add comprehensive locale provider tests (40+ tests)
- Add language selector in app settings
- Include proper ICU plural forms for all languages
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Formatting
* Regenerate flutter_rust_bridge bindings after rebase
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Formatting
* Improve locale persistence and add profile error strings
- Refactor LocaleNotifier to use secure storage for locale preference
- Add profileLoadError and profileSaveError localization strings
- Update tests for new locale provider implementation
- Fix various test issues and remove unused imports
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Improve test coverage and fix CI l10n validation
- Fix CI workflow to use jq for reliable ARB key extraction instead of grep
- Add error handling tests for LocaleProvider storage failures
- Add failure simulation flags to MockWnApi and MockSecureStorage
- Add tests for LocaleFormatters, LocalePersistenceException, and edge cases
- Add UI error handling tests for language update and npub conversion failures
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Improve dropdown scroll UX and fix test reliability
- Add scroll fade indicators to dropdown when options exceed visible items
- Refactor dropdown list into _ScrollableDropdownList widget
- Improve CI l10n validation with better jq error handling
- Remove unused _resolveSystemLanguageCode method
- Fix async test expectations in locale provider tests
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add atomic locale storage rollback and CI orphaned key detection
- Locale provider now captures previous preference before changes and
restores it atomically if the rust API call fails
- CI l10n validation now detects extra/orphaned keys in locale files
(not just missing keys), with improved error messaging
- Added tests for storage rollback behavior on API failure
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Remove unused import
* refactor: move l10n keys validation to scrip folder
* Update spanish localizations
* fix(l10n): improve Spanish key terminology (clave → llave)
Use 'llave' instead of 'clave' for cryptographic keys in Spanish
translations, which is more commonly used in technical contexts.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* ci: add pub cache to l10n-validation and locale validation to precommit
- Add Flutter pub cache step to l10n-validation CI job for faster runs
- Add validate-locales-keys to precommit and precommit-check recipes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(ci): use correct github.workspace context in l10n cache
Replace runner.workspace with github.workspace for the pub-cache
path in l10n-validation job. runner.workspace is not a valid
GitHub Actions context.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: josefinalliende <mariajosefinaalliende@gmail.com>