- Create meta_documentation.mdc for comprehensive doc workflows
- Add meta_rule_usage_guide.md for practical meta-rule usage
- Enhance existing markdown rules with educational standards
- Transform docs from technical reference to educational resources
Emphasizes human competence over technical description, provides
systematic workflows for all documentation tasks.
- Reorganize cursor rules into logical domain-based directories
- Implement meta-rule system for workflow-specific rule bundling
- Move core rules to dedicated /core directory
- Consolidate development rules under /development namespace
- Add architectural patterns and implementation examples
- Create workflow-specific meta-rules for common development tasks
- Remove deprecated standalone rule files
- Update package dependencies for new rule structure
BREAKING CHANGE: Cursor rules file structure has been reorganized
Files moved from root rules directory to domain-specific subdirectories
Integrates Build Architecture Guard documentation, project structure overview,
and contributing guidelines into README.md. Preserves existing application
overview, development setup, and technical architecture sections while adding
comprehensive project entry point for developers.
- Adds Build Architecture Guard section with setup and usage instructions
- Includes visual project structure with key directories and files
- Provides contributing guidelines for build-related changes
- Maintains existing application description, setup, and technical details
Add comprehensive development guidelines enforcing least-complex solutions
for bugs and features. Establishes Rule of Three for abstractions,
prohibits drive-by refactors, and requires evidence-based future-proofing.
- Enforces minimal viable diffs that fully resolve issues
- Prevents speculative abstractions without concrete usage
- Requires ADR discussion and evidence for added complexity
- Includes PR checklist and assistant output contract
- Promotes dependency frugality and targeted testing
- Add Android-specific build validation for asset management and API routing
- Implement feedback collection system for continuous guard improvement
- Enhance sensitive path detection to include capacitor-assets.config.json and resources/
- Add Android change detection with specific testing guidance
- Integrate feedback analysis command for maintainer insights
- Update guard rules to reflect enhanced Android build system complexity
The guard now protects sophisticated Android build features including asset validation,
resource generation, and platform-specific API routing while collecting usage data
for continuous improvement.
- Add validate_android_assets() function to build-android.sh
- Check for missing source assets (icon.png, splash.png, splash_dark.png)
- Verify Android resources exist (drawable/splash.png, mipmap/*/ic_launcher*.png)
- Auto-regenerate missing resources using @capacitor/assets
- Integrate validation into main build process with exit code 9
- Add npm run assets:validate:android for manual validation
- Support --assets-only flag for asset-only operations
- Create comprehensive documentation in doc/android-asset-validation.md
Fixes build failures caused by missing drawable/splash and mipmap/ic_launcher resources.
Prevents "Android resource linking failed" errors during Gradle builds.
Resolves: Android build failures due to missing asset resources
- Move README-BUILD-GUARD.md from root to doc/ folder for better organization
- Update all references in README.md to point to new location
- Follows project structure conventions for documentation organization
- Replace mapfile command with portable alternative for cross-shell compatibility
- Add troubleshooting documentation for common shell compatibility issues
- Update BUILDING.md with Build Architecture Guard documentation
- Ensure script works across different shell environments
Fixes pre-commit hook failures on macOS and other systems where mapfile is not available.
Add two new Harbor Pilot directives to improve code quality and planning:
1. Historical Comment Management: Guidelines for transforming or removing
obsolete comments into actionable architectural guidance
2. No Time Estimates: Rule prohibiting time estimates in favor of
phase-based planning with complexity levels and milestones
Both rules are integrated into main Harbor Pilot directive for automatic
application across all operations.
Add comprehensive Cursor rules file that extends base context with universal
constraints for creating developer-grade, reproducible technical guides.
Includes structured templates, validation checklists, and evidence-backed
documentation standards.
- Establishes 11 required sections for technical guides
- Enforces UTC timestamps and evidence requirements
- Provides Mermaid diagram requirements and API contract templates
- Includes competence and collaboration hooks per base context
- Sets coaching level to standard with 10-minute timeboxing
- Create setup script for markdown pre-commit hooks
- Automate installation of markdownlint and related tools
- Provide easy setup for markdown compliance system
- Remove all GitHub-specific workflows and configurations
- Update .dockerignore to exclude .github directory
- Clean up GitHub Actions workflows and branch protection rules
- Complete transition to Gitea Actions and Husky hooks
- Update BUILDING.md with current build system information
- Modernize various README files across the project
- Update CHANGELOG.md with recent changes
- Improve documentation consistency and formatting
- Update platform-specific documentation (iOS, Electron, Docker)
- Enhance test documentation and build guides
- Add AI Generation Guidelines with alwaysApply: true
- Extend globs to include .mdc files
- Ensure AI agents follow rules during content creation
- Improve markdown automation system integration
- Add pre-commit and pre-push hooks for build file protection
- Create comprehensive guard script for BUILDING.md validation
- Add npm scripts for guard setup and testing
- Integrate with existing build system
- Replace unsafe (error as any).config patterns with proper type guards
- Add hasConfigProperty() type guard for safe error property checking
- Add getConfigProperty() method for type-safe config extraction
- Eliminate @typescript-eslint/no-explicit-any violations
Problem: ProfileService had unsafe type casting with (error as any).config
that violated TypeScript type safety guidelines and caused linting errors.
Solution: Implement proper type guards following established patterns:
- hasConfigProperty() safely checks if error has config property
- getConfigProperty() extracts config without type casting
- Maintains exact same functionality while ensuring type safety
Files changed:
- src/services/ProfileService.ts: Replace any types with type guards
Testing: Linting passes, type-check passes, functionality preserved.
- Simplify vite.config.web.mts to match working capacitor configuration
- Remove complex mergeConfig() approach that was causing Vue compilation errors
- Eliminate environment-specific build configurations that weren't needed
- Fix "TypeError: Cannot read properties of undefined (reading 'on')" at App.vue:1
Problem: The web build was failing during Vue component compilation with a cryptic
error at line 1 of App.vue. Investigation revealed the issue was in the overly
complex Vite configuration that used mergeConfig() with environment-specific
settings, while the working capacitor build used the simple direct approach.
Solution: Simplified web config to use createBuildConfig('web') directly, matching
the proven capacitor pattern. This eliminates the Vue compilation failure while
preserving all functionality including deep links.
Root cause: Complex build configuration was interfering with Vue's component
processing, causing the .on() error during initial component registration.
Files changed:
- vite.config.web.mts: Simplified to match capacitor configuration pattern
- vite.config.common.mts: Temporarily disabled ESBuild error handling (not root cause)
Testing: Web app now loads successfully, Vue compilation completes, deep links
preserved, and build architecture maintained.
Fix iOS deep link "Invalid Deep Link" error by updating parseDeepLink
to use correct parameter keys from ROUTE_MAP instead of always using 'id'.
- Replace hardcoded 'id' parameter assignment with dynamic lookup
- Use routeConfig.paramKey for route-specific parameter names (e.g., groupId for onboard-meeting-members)
- Maintain backward compatibility with fallback to 'id' for routes without explicit paramKey
- Add src/main.ts as dynamic entry point that loads platform-specific code
- Update index.html to use dynamic main.ts instead of hardcoded main.web.ts
- Remove external capacitor config from vite.config.common.mts to ensure proper bundling
- Enables consistent platform detection across all build targets
- Use proper logger utility instead of console.log for platform detection logging
- Update com.android.tools.build:gradle dependency to latest patch version
- Addresses Android Studio update prompt for build tool security
- Minor version bump for stability and bug fixes
Keeps Android build tools current and secure
- Add ESBuild logLevel: 'error' to all Vite configs
- Configure logOverride for critical errors: duplicate-export, duplicate-member, syntax-error, invalid-identifier
- Ensure builds fail immediately on ESBuild compilation errors
- Apply to common, web, and optimized Vite configurations
Prevents broken code from being deployed due to build-time errors
- Fix multi-line comment spanning lines 12-13 that broke shell parsing
- Consolidate comment into single line to prevent export syntax errors
- Resolves "export: ' production).=': not a valid identifier" build failure
Fixes test environment build blocking issue
Add whitelist functionality to debug checker to allow intentional console statements in specific files:
- Add WHITELIST_FILES configuration for platform services and utilities
- Update pre-commit hook to skip console pattern checks for whitelisted files
- Support regex patterns in whitelist for flexible file matching
- Maintain security while allowing legitimate debug code in platform services
This resolves the issue where the hook was blocking commits due to intentional console statements in whitelisted files like WebPlatformService and CapacitorPlatformService.
Implements comprehensive pre-commit hook system to prevent debug code from
reaching protected branches while maintaining developer choice.
- Hooks stored in scripts/git-hooks/ (not in .git tree)
- Deliberate installation required - no forced behavior
- Automated installation script for team members
- Comprehensive testing
- Branch-aware execution (protected vs feature branches)
- Configurable patterns and protected branch list
Philosophy: Each developer chooses whether to use the hook, ensuring
team flexibility while providing powerful debug code prevention tools.
Consolidates all debug hook documentation into single comprehensive guide.
Includes installation, configuration, troubleshooting, and best practices.
- Quick installation with automated script
- Manual installation options
- Configuration customization
- Troubleshooting guide
- Team workflow recommendations
- Emergency bypass procedures
Removes debug span showing map loading status that was left in production code.
Keeps map functionality intact while cleaning up UI for production use.
- Add Version Synchronization Requirements section for package.json/CHANGELOG.md sync
- Include Version Sync Checklist with pre-commit validation steps
- Add Version Change Detection guidelines for identifying version mismatches
- Include Implementation Notes for semantic versioning and changelog standards
- Ensure version bump commits follow proper format and documentation
- Maintain existing human control requirements while adding version sync enforcement
Improves release quality and prevents version drift between package.json and CHANGELOG.md
- Add comprehensive Type Safety Enforcement section with core rules and patterns
- Include Type Guard Patterns for API, Database, and Axios error handling
- Add Implementation Guidelines for avoiding type assertions and proper type narrowing
- Enhance software development ruleset with dependency management best practices
- Add pre-build validation workflows and environment impact assessment
- Include dependency validation strategies and common pitfalls guidance
- Add build script enhancement recommendations for early validation
Improves development workflow consistency and type safety enforcement
- Replace any types in ProfileService with AxiosErrorResponse interface
- Add type-safe error URL extraction method
- Fix Leaflet icon type assertion using Record<string, unknown>
- Enhance AxiosErrorResponse interface with missing properties
- Maintain existing functionality while improving type safety
Closes typing violations in ProfileService.ts and AccountViewView.vue
- Fix CHANGELOG.md version from [1.0.7] to [1.0.8-beta] to match package.json
- Replace problematic clean:android npm script with robust clean-android.sh script
- Add timeout protection (30s) to prevent adb commands from hanging indefinitely
- Include cross-platform timeout fallback using perl for macOS compatibility
- Improve logging and error handling for Android cleanup process
Fixes team member reported issues:
- CHANGELOG version inconsistency
- clean:android getting stuck during execution