arcle 2.2.0
arcle: ^2.2.0 copied to clipboard
Agentic Flutter Development Platform — scaffold Clean Architecture projects with BLoC, GetX, or Riverpod, and configure AI agent support.
2.2.0 #
New Features #
- New
arcle cicommand — generate CI/CD pipelines for GitHub Actions (arcle ci add github) or GitLab CI (arcle ci add gitlab). Runsdart analyze+dart formaton every push, with opt-influtter test/--coverage, and optional--build apk|appbundleartifact upload. Also supportsarcle ci listandarcle ci remove <provider>.
Fixes #
- Wired up
arcle add localeandarcle delete locale— these commands existed in the codebase and were documented in the README but were never registered with the CLI's argument parser, so running them returned "Unknown command." They now work as documented, including thearcle del localealias.
Release #
- Formal release consolidating the 2.1.5 changeset —
CardThemeDatatheme fix and updated Codex/Gemini AI templates — with a full README and toolchain documentation pass.
2.1.5 #
Fixes #
- Updated generated theme templates for current Flutter APIs — replaced
CardThemewithCardThemeDatain the light and darkAppThemetemplates so newly generated projects use the correct material theme type. - Refreshed AI agent config templates — updated Codex and Gemini settings templates to use the newer model object shape; Codex now defaults to
gpt-5.6and Gemini togemini-3.5-flash.
2.1.4 #
Improvements #
- Expanded
AppColors— replaced the minimal 5-constant class with a full design-system palette: brand (light + dark), accent (light + dark), backgrounds, surfaces, borders, text (primary/secondary for each mode), semantic (error, success, warning, info), and neutral utilities (divider, disabled, overlay).AppColors._()private constructor prevents instantiation. - Reworked
AppTheme—AppTheme._()private constructor;light()/dark()renamed tolightTheme/darkThemegetters; all hardcodedColor(...)values replaced withAppColors.*references; added full component theme coverage:cardTheme,elevatedButtonTheme,outlinedButtonTheme,inputDecorationTheme,bottomNavigationBarTheme,navigationBarTheme,drawerTheme,dividerTheme,chipTheme,snackBarTheme; importsapp_colors.dart. - New
PaginatedListView<T>widget — generated tolib/core/common_widgets/paginated_list_view.dart; pure stateless widget that handles scroll-threshold triggering, separated/normal list modes, loading indicator, empty state, and end-of-list widget. All state (items, isLoading, hasReachedMax) is owned by the caller's state management layer.
2.1.3 #
Changes #
- Removed arrow-key TUI menu — state management selection reverts to the simple numbered prompt (
1. BLoC / 2. GetX / 3. Riverpod). The ANSI raw-mode approach causedStdinExceptionon Windows terminals and added unnecessary complexity. The--stateflag continues to work as before for non-interactive use. interactive_menu.dartremoved.configure-aiagent selection also uses a numbered prompt.
2.1.2 #
Documentation #
- Updated README to reflect v2.1.x commands — removed unreachable commands, added
arcle configure-aiandarcle reviewsections, updated "What's New" from 2.0.0 to 2.1.x.
2.1.1 #
Bug Fixes #
- Fixed crash on Windows when launching the arrow-key state selection menu —
StdinException: Error setting terminal echo modewas thrown on certain Windows terminals (cmd.exe, some PowerShell hosts) that reportstdin.hasTerminal = truebut do not support raw mode. Raw-mode setup now happens before any rendering;StdinExceptionis caught inselect()and silently falls back to the numbered list (1. BLoC / 2. Riverpod / 3. GetX).
2.1.0 #
Improvements #
- Decoupled AI scaffolding from
arcle create— default project creation now generates only the Flutter Clean Architecture structure. AI agent config (.ai/,.claude/,.codex/,.gemini/,scripts/) is no longer generated automatically. - New command:
arcle configure-ai(alias:arcle agent-init) — interactive one-question wizard to scaffold AI agent context files for an existing project. Detects state management fromarcle.yaml; prompts if not found. Supports Claude Code, OpenAI Codex, Google Gemini, or all three. - Arrow-key TUI menu for state management selection — replaced the text-based prompt (typing
bloc/getx/riverpod) with an ANSI arrow-key navigable menu. Falls back to a numbered list automatically in CI/CD and non-TTY environments. The--stateflag still bypasses the menu for scripted use. - New command:
arcle review(aliases:arcle audit,arcle -r) — pre-commit quality gate that runs:dart analyze— static analysisdart format --output=none --set-exit-if-changed— format check- Missing-tests scan — checks only files changed in the current git diff; warns on any
lib/file with notest/counterpart flutter test(opt-in via--test)flutter test --coveragewith percentage report (opt-in via--coverage)- AI-assisted diff review via configured agent binary (opt-in via
--ai)
2.0.0 #
ARCLE Agentic Flutter Development Platform
New Commands #
arcle agent add <claude|codex|gemini|custom>— scaffold agent-specific config files (.claude/,.codex/,.gemini/,.custom-agent/)arcle agent remove <agent>— remove an agent configuration directoryarcle agent switch <agent>— setactive_agentin.ai/settings.yamlarcle agent list— list all configured AI agents in the projectarcle agent validate— validate that all required.ai/files existarcle ai init [--state]— generate.ai/project context & rules directoryarcle ai sync— sync.ai/settings.yamlstate fromarcle.yamlarcle ai validate— check all required.ai/config filesarcle ai doctor— diagnose AI configuration healtharcle upgrade [--force]— upgrade an existing ARCLE project to v2.0.0 (SDK, analysis, dimensions,.ai/, scripts)
Project Scaffolding #
- New projects now include
.ai/directory with 6 AI agent context files:settings.yaml,project-context.md,architecture-rules.md,coding-rules.md,security-rules.md,permissions.yaml - New projects now include Claude Code integration (
.claude/CLAUDE.md,.claude/settings.json) - New projects now include OpenAI Codex integration (
.codex/instructions.md,.codex/settings.json) - New projects now include Gemini integration (
.gemini/GEMINI.md,.gemini/settings.json) - New projects now include
scripts/setup.sh,scripts/setup.ps1,scripts/doctor.sh,scripts/doctor.ps1
Breaking Changes #
- Replaced
DimensionsTemplates.dimensions(state)with universalDimensionsTemplates.dimensions()— new implementation usesdart:uiPlatformDispatcher directly (works for all state management, no GetX dependency) - Updated
analysis_options.yamltemplate: replacedprefer_relative_importswithalways_use_package_imports, addedavoid_unnecessary_containers,prefer_single_quotes,unnecessary_const,unnecessary_new - Minimum Dart SDK raised from
^3.5.4to>=3.7.0 <4.0.0
Improvements #
- Generated project
pubspec.yamlSDK constraint is now automatically set to>=3.7.0 <4.0.0 buildCommonProjectFilesnow acceptsprojectNameparameter for proper AI context generation
1.0.4 #
- Reworked localization management around dedicated top-level commands:
arcle add locale <code>adds a single locale to the project; on first use it creates the localization infrastructure, and on later calls it appends the locale to the existing setup.arcle delete locale <code>removes a single locale's JSON file, updatessupportedLocales/isSupportedinapp_strings.dart, removes the GetX locale section when applicable, and cleans theassets/langs/pubspec entry when the last locale is removed.
- Added localization command aliases:
arcle add loc <code>,arcle delete loc <code>,arcle del locale <code>, andarcle del loc --<code>. - Added
--<code>flag shorthand for locale commands such asarcle add loc --myandarcle del loc --my. add localenow supports any ISO 639-1 locale code, with built-in country-code mappings for 60+ languages; unknown locales receive English-value placeholder JSON so the app stays runnable while translations are filled in.- Updated localization injection so feature keys are added to every JSON file under
assets/langs/and every// arcle:keys_*marker ingetx_localization.dart. - Added
arcle verify --check-featuresto scan every module underlib/features/and report missing data, domain, or presentation layer files for the project's state management. - Added
arcle verify --check-assetsto verify that every asset path declared inpubspec.yamlexists on disk. - Added
arcle verify --check-l10nto verify that each feature has its{feature}_titletranslation key present inassets/langs/en.json(BLoC/Riverpod) orlib/core/localization/getx_localization.dart(GetX). - Added
arcle verify --fullto run--check-features,--check-assets, and--check-l10nin a single pass.
1.0.3 #
Platform Configuration Improvements:
- [CRITICAL FIX] Added automatic iOS Podfile configuration with minimum deployment target of iOS 13.0.
- [CRITICAL FIX] Added automatic iOS Info.plist generation with essential permission descriptions (camera, photos, microphone, location, contacts, calendar).
- [CRITICAL FIX] Added post-install hooks to Podfile to ensure consistent iOS build settings across all targets.
- [CRITICAL FIX] Fixed iOS builds that would previously fail due to missing Info.plist permission descriptions.
- Added automatic iOS deployment target enforcement to prevent compatibility issues.
- Updated iOS configuration to match Android's rigorous platform setup standard.
- Both Android and iOS are now configured equally during project creation for production-ready apps.
- Created comprehensive
PLATFORM_CONFIGURATION_GUIDE.mdwith setup details, checklists, and troubleshooting.
Build & DI Improvements:
- Added persistent build version updates in
arcle build apkwith--version-nameand--version-code, which rewrite the target project'spubspec.yaml. - Added persistent environment updates in
arcle build apk --env prod|stag|local, which rewrite the target project'slib/core/env/env_factory.dart. - Added static 16 KB Android APK compatibility checks with
arcle verify --check-16kb. - Added separated
gen-diandauto-gen-dicommands with clear documentation on when/why to use each. - Added comprehensive DI_COMMANDS_GUIDE.md explaining command differences and use cases.
Developer Experience:
- Added optional short command aliases such as
new,feat,health,autodi,di,docs,ver,b,br, andbdwhile keeping all existing commands unchanged. - Platform configuration status now shown during project creation (Android & iOS setup feedback).
1.0.2 #
- Added
doctorcommand for ARCLE project health checks. - Added
doctor --fixfor safe ARCLE-owned repairs. - Added
verifycommand to run analyze, test, and BLoC codegen verification. - Added generated
core/utils/date_formatter.dartwith UTC/local conversion and UX-friendly date helpers. - Added automatic
intldependency injection to generated projects. - Updated generated notification service to be platform-safe across Android, iOS, macOS, and unsupported platforms.
- Updated generated permission service to use platform-aware permission handling and safe fallbacks.
- Updated README with platform notes for Android, iOS, macOS, and web behavior.
- Removed generated
lib/features/README.mdfrom new projects across all state management options.
1.0.1 #
- Fixed pubspec description length.
- Added usage example.