- Deleted .agents/skills/krow-mobile-data-connect/ directory
- Updated README.md to remove all references
- Now maintaining 4 core mobile skills instead of 5
Created comprehensive skills covering development rules, architecture, design system, release process, and Data Connect patterns. Total 3,935 lines extracted from mobile documentation.
Change exported keystore environment variable names to remove the app-specific suffix so build.gradle.kts can read CM_KEYSTORE_PATH, CM_KEYSTORE_PASSWORD, CM_KEY_ALIAS, and CM_KEY_PASSWORD. Also ensure CI=true is exported and add informational echo output showing the keystore path and exported variables for easier debugging.
Delete docs/MILESTONES/M4/Seed/README.md and docs/MILESTONES/M4/Seed/seed.gql. The removed README provided instructions and inventory for the M4 validation DB seed and seed.gql contained the full @transaction GraphQL mutation used to populate that seed. Removes the M4 seed artifacts from the docs; restore from source control or consult the team if the seed is still required.
Fixed line 168 syntax error caused by sed command with backslash continuation.
Replaced:
sed -i "1 a\\\
\\
$HOTFIX_ENTRY" "$CHANGELOG_PATH"
With simpler approach:
- Extract title line
- Extract body
- Reconstruct file with hotfix entry inserted
This avoids YAML parsing issues with backslash escaping.
Redirect script informational/warning output to stderr and improve robustness of release tooling. Changes include:
- Redirect many echo messages to stderr so scripts can emit machine-readable output on stdout.
- Extract-release-notes: better parsing of CHANGELOG entries (tries v-prefixed and non-prefixed headings, cleaner note formatting) and improved fallbacks when changelog is missing.
- Extract-version: accept versions with +build or -suffix, add diagnostic output when pubspec is missing, and tighten validation.
- Setup/verify APK signing: more consistent stderr logging and clearer warnings; ensure keystore decoding/logging is visible.
- Minor script usage message fixes (generate-tag-name, attach-apk-to-release).
- CI/workflows: change backend-foundation, mobile-ci, and web-quality triggers to workflow_dispatch (manual runs); update product-release (make scripts step label emoji, remove node cache lines, bump Flutter to 3.38.x).
These changes improve CI reliability, make scripts friendlier for automated consumers, and fix release note/version parsing edge cases.
Rename mobile app directories (client_app -> client, staff_app -> staff) and normalize changelog version tags from `0.0.1-M3` to `v0.0.1-m3` in the affected CHANGELOG.md files to standardize folder naming and version formatting.
Updated extract-release-notes.sh to follow new format:
**Environment:** {ENV}
**Tag:** {TAG}
## What is new in this release
{changelog content}
Improvements:
- Moved environment and tag info to the top
- Added 'What is new in this release' heading
- Improved awk pattern to properly extract changelog sections
- Support both [vX.Y.Z] and [X.Y.Z] version formats in CHANGELOG
- Removes unnecessary app name and separator lines
Testing:
✅ worker-mobile-app: Extracts content from apps/mobile/apps/staff/CHANGELOG.md
✅ client-mobile-app: Extracts content from apps/mobile/apps/client/CHANGELOG.md
✅ Handles [v0.0.1-m3] format correctly
Updated workflows to use workflow_dispatch instead of pull_request/push:
- backend-foundation.yml: Removed pull_request and push triggers
- mobile-ci.yml: Removed pull_request and push triggers with path filters
- web-quality.yml: Removed pull_request and push triggers
Workflows now only run manually via Actions tab. This gives more control over when CI runs and reduces unnecessary workflow executions.
- Replace bash [[ ]] regex test with grep -Eq for better portability
- Add debug output showing pwd and directory listing on file not found
- Use explicit regex groups for + and - separately for better compatibility
- Keep full version format (0.0.1-m3 or 1.2.3+456) instead of stripping suffix
- Tags now include full version: krow-withus-worker-mobile/dev-v0.0.1-m3
- Remove invalid Node.js cache path that was causing resolution errors
Fixed workflow failure by ensuring only data goes to stdout, not informational messages. Also added support for version format X.Y.Z-suffix in addition to X.Y.Z+build.
Add four new helper scripts for mobile APK workflows: setup-apk-signing.sh (decode keystores and export signing env vars), verify-apk-signature.sh (check and display APK certificate info), attach-apk-to-release.sh (rename and upload APK to a GitHub Release), and setup-mobile-github-secrets.sh (helper to generate/show required GitHub Secrets). Update product-release.yml to expose version/tag outputs and add a build-mobile-artifacts job that sets up Java/Flutter, installs deps, configures signing from repository secrets, builds APKs for worker/client apps, verifies signatures, uploads artifacts, and optionally attaches the APK to the GitHub Release. Secrets and envvar naming conventions are handled to support dev/staging/prod keystores; documentation references (docs/RELEASE/APK_SIGNING_SETUP.md) are noted in scripts.
- Updated Makefile to include new command for setting up mobile CI secrets.
- Enhanced tools.mk with setup-mobile-ci-secrets target.
- Created setup-mobile-github-secrets.sh script for configuring GitHub Secrets for APK signing.
- Added APK signing implementation summary documentation.
- Created detailed APK signing setup guide.
- Added GitHub secrets checklist for easy reference.
Standardize prerelease version tags for mobile apps. Updated client and staff pubspecs to use 0.0.1-m3 instead of their previous Iliana*-M3 suffixed versions:
- apps/mobile/apps/client/pubspec.yaml: 0.0.1-IlianaClientM3 -> 0.0.1-m3
- apps/mobile/apps/staff/pubspec.yaml: 0.0.1-IlianaStaffM3 -> 0.0.1-m3
This keeps version naming consistent across the mobile projects.
Add CI/CD and release automation assets: new GitHub Actions workflows (backend-foundation, hotfix-branch-creation, mobile-ci, product-release, web-quality), shell scripts for version/tag/release-note extraction and release-summary generation (.github/scripts/*), and a Pull Request template. Implements hotfix branch creation from tags, automatic tag name generation, version extraction from pubspec.yaml, CHANGELOG-based release notes extraction, selective mobile CI (detects changed files, builds and lints only affected Dart files), backend service test dry-runs, and automated GitHub release creation with summaries.
🗑️ Removed Files:
- RELEASE_IMPLEMENTATION.md
- RELEASE_INDEX.md
- RELEASE_PACKAGE_SUMMARY.md
- RELEASE_QUICK_REFERENCE.md
- RELEASE_STRATEGY.md
- RELEASE_VISUAL_GUIDE.md
- RELEASE_WORKFLOW.md
- VERSION_FILES_REFERENCE.md
📍 Reason for Removal:
- These were draft/planning documents with incorrect tag format
- Used 'staff-mobile/*' instead of correct 'krow-withus-worker-mobile/*'
- Not aligned with actual GitHub Actions workflows
- Caused confusion about which documentation to follow
✅ Current Documentation (Correct & Up-to-Date):
- docs/RELEASE/MOBILE_RELEASE_PLAN.md
- docs/RELEASE/HOTFIX_PROCESS.md
- docs/RELEASE/OVERALL_RELEASE_PLAN.md
The docs/RELEASE/ files use correct tag naming and align with the
implemented GitHub Actions workflows (.github/workflows/product-release.yml
and hotfix-branch-creation.yml).
🔄 Hotfix Workflow Enhancements:
- Accept tags from any environment (dev/stage/prod), not just production
- Changed input parameter: 'production_tag' → 'tag'
- Updated validation to show all available tags (not just prod)
- Made terminology more generic throughout
- Show 20 most recent tags instead of 10 for better visibility
📝 File Renames:
- .github/workflows/mobile-hotfix.yml → hotfix-branch-creation.yml
- .github/workflows/mobile-release.yml → product-release.yml
Benefits:
✅ Hotfix workflow now works with dev/stage/prod tags
✅ More flexible for various hotfix scenarios
✅ Clearer, more descriptive workflow file names
✅ Consistent with product-agnostic terminology
🔄 Updated workflows and scripts to use product-agnostic naming:
Workflow Changes:
- 📱 Mobile Release → 📦 Product Release
- 🚨 Mobile Hotfix → 🚨 Product Hotfix
- Mobile App → Product (in descriptions)
- "mobile app" → "product" (in messages and tags)
- "pubspec.yaml" → "version file" (in user-facing text)
Display Names:
- Worker Mobile → Worker Product
- Client Mobile → Client Product
- Staff Mobile App → Staff Product (Worker)
- Client Mobile App → Client Product
Benefits:
✅ Makes workflows extensible for other product types
✅ Consistent terminology across all automation
✅ Easier to add web, backend, or other products later
✅ Keeps implementation details (paths, scripts) unchanged
✅ Maintains backward compatibility with existing tags
Note: File paths remain unchanged (apps/mobile/...) as they are implementation-specific
✨ Enhanced mobile-release.yml workflow:
- 📱 Added emojis to all steps for better visual feedback
- 🔧 Version now automatically extracted from pubspec.yaml
- No manual version input required
- Reads from apps/mobile/apps/staff/pubspec.yaml for worker
- Reads from apps/mobile/apps/client/pubspec.yaml for client
- 📝 Removed manual version input field from workflow
🔨 Created reusable shell scripts in .github/scripts/:
1. extract-version.sh - Extract version from pubspec.yaml
2. generate-tag-name.sh - Generate tag names consistently
3. extract-release-notes.sh - Extract CHANGELOG sections
4. create-release-summary.sh - Generate GitHub Step Summary with emojis
Benefits:
✅ Simpler workflow - just select app and environment
✅ Single source of truth for versions (pubspec.yaml)
✅ Reusable scripts can be used in other workflows
✅ Better error messages and validation
✅ Enhanced visual feedback with emojis
✅ Cleaner workflow file (moved logic to scripts)
- Add mobile-release.yml workflow:
- Manual trigger with app (worker/client) and environment (dev/stage/prod) selection
- Version validation (semantic versioning)
- Tag creation with format: krow-withus-<app>-mobile/<env>-vX.Y.Z
- GitHub Release creation with CHANGELOG extraction
- Release naming: 'Krow With Us - Worker Mobile - DEV - v0.1.0'
- Pre-release support
- Add mobile-hotfix.yml workflow:
- Emergency production fix automation
- Creates hotfix branch from production tag
- Auto-increments PATCH version
- Updates pubspec.yaml and CHANGELOG.md
- Creates PR with hotfix instructions
- Follows documented hotfix process
Both workflows support staff (worker) and client mobile apps independently.
Implements mobile release strategy from docs/release/