- Create software_development.mdc with evidence-first development principles
- Add code path tracing requirements to research_diagnostic.mdc
- Update base_context.mdc to reference new specialized rulesets
- Create ADR and investigation report templates
- Improve markdown formatting across all ruleset files
Enhances development workflow with specialized guidance for:
- Code review standards and evidence validation
- Problem-solution validation and complexity assessment
- Integration between generic and technical rulesets
Create TypeScript type safety guidelines enforcing strict typing across
TimeSafari codebase. Includes special cases for Vue objects, dynamic
component access, and framework integration where any types are necessary.
- Enforce no-any rule with documented exceptions
- Add Vue-specific edge cases (component instances, template refs, events)
- Include third-party library and platform API handling
- Provide migration checklists and code review guidelines
- Document error handling patterns and anti-patterns
- Add examples from existing codebase
- Eliminate all remaining any types in Priority 2 components (activity, gifts, usage limits, QR scanning, discovery, meetings)
- Implement proper TypeScript types using existing interfaces (GiveActionClaim, EndorserRateLimits, ImageRateLimits)
- Replace any types with unknown + proper type guards for error handling
- Fix type assertions for external library integrations (QR scanning, mapping)
- Maintain backward compatibility while improving type safety
Resolves 7 Priority 2 type safety warnings, achieving 100% type safety for critical user-facing functionality.
- Change @typescript-eslint/no-explicit-any from warn to error to block builds with any types
- Add type-safety-check script for automated pre-commit validation
- Implement comprehensive pre-commit checks including ESLint, TypeScript compilation, and any type scanning
- Include database migration status verification in pre-commit process
- Provide colored output and clear guidance for type safety issues
This ensures type safety is enforced at the CI level and prevents regression of any type usage.
- Add comprehensive database error interfaces (DatabaseConstraintError, DatabaseStorageError, DexieError)
- Implement type guards for database error handling (isDatabaseError, isDatabaseConstraintError, etc.)
- Replace any types with proper TypeScript types in ContactsView, ProjectsView, and IdentitySwitcherView
- Implement type-safe error handling patterns using new type guards
- Fix dynamic property access with keyof operator for type safety
Resolves Priority 1 type safety issues in database operations, project management, and identity switching.
- Add comprehensive R&D workflow rules for pre-implementation research and defect investigation
- Format base context rules for better readability and line length compliance
- Include evidence-first investigation templates and collaboration hooks
- Replace $notify any types with proper NotifyFunction interface
- Import NotifyFunction type from utils/notify
- Eliminate 5 TypeScript any type warnings
- Improve type safety for notification system across components
Reduces lint warnings from 25 to 20 by addressing high-impact,
low-effort notification type issues. Maintains full functionality
while improving code quality and IntelliSense support.
- Replace check-android-resources.sh call with npm run assets:validate
- Fix 'No such file or directory' error in build-android.sh
- Ensure builds work consistently across all development environments
- Maintain build workflow while using new standardized asset system
This fix resolves the build failure that occurred after removing legacy
asset generation scripts, ensuring the new capacitor-assets workflow
integrates seamlessly with existing build orchestration.
Tested: Android build completes successfully with asset validation
Assets: 87 platform assets generated automatically via capacitor-assets
- Remove console statements and replace with proper logging
- Fix line length violations in comments
- Maintain functionality while improving code quality
Reduces lint warnings from 30 to 25 by addressing:
- 3 console statement violations
- 2 line length violations
Android build was failing due to missing drawable and mipmap directories
for splash screens and launcher icons. iOS was missing complete asset
catalog structure for app icons and splash screens.
- Create missing Android resource directories (drawable, mipmap-*)
- Add splash screen files to Android drawable directory
- Generate complete set of Android launcher icons
- Create iOS asset catalog structure with proper Contents.json files
- Generate 21 iOS assets (app icons + splash screens) using ImageMagick
- Add resource validation scripts for both platforms
- Enhance Android resource check to auto-create missing directories
NOTE: you need to test this from a fresh clone and after an npm install!
Android build now completes successfully. iOS assets ready for macOS/Xcode
builds. Both platforms have complete resource sets for development.
- Replace deprecated 'convert' commands with 'magick' for ImageMagick v7+
- Add automatic version detection with fallback to 'convert' for v6 compatibility
- Update generate-android-icons.sh and generate-icons.sh scripts
- Eliminate deprecation warnings during Android builds
- Maintain backward compatibility for older ImageMagick installations
The scripts now automatically detect ImageMagick version and use the appropriate
command syntax, eliminating the "convert command is deprecated" warnings while
preserving functionality across different ImageMagick versions.
Fixed Android build issues that were preventing successful builds:
- Updated icon generation script to create proper adaptive icons without
referencing missing drawable files
- Changed log_warning function call to log_warn in build script
- Icon generation now creates foreground mipmap files and proper XML configs
- Build process successfully generates all required Android assets
Resolves "export: production).=: not a valid identifier" error and enables
successful Android builds with automatic resource generation.
https://app.clickup.com/t/86b5uau17
- Fix TypeScript compilation errors in deepLinks service by replacing logConsoleAndDb with logger.error
- Add ESLint disable comments for necessary 'any' type usage in worker polyfills and Vue mixins
- Add ESLint disable comments for console statements in test files and debugging code
- Production build now succeeds with npm run build:web:prod
- TypeScript compilation passes with npm run type-check
The deepLinks service was using undefined logConsoleAndDb function causing build failures.
Worker context polyfills and Vue mixin complexity require 'any' type usage in specific cases.
Console statements in test files and debugging code are intentionally used for development.
- Remove imageCache Map that only stored null values
- Remove selectedImageData Blob property (never used)
- Remove cacheImageData method and related function props
- Remove handleImageLoad method from ActivityListItem
- Clean up ImageViewer component props
- Fix TypeScript compilation by replacing legacy logConsoleAndDb calls
- Replace logConsoleAndDb with logger.error in deepLinks service
- Images continue to work via direct URL references
The image cache system was non-functional and only stored null values.
ImageViewer component ignored blob data and only used URLs.
Fixed production build failure caused by undefined logConsoleAndDb function.
Removing dead code improves maintainability without affecting functionality.
Fixed malformed comment in .env.development that was causing
"export: production).=: not a valid identifier" error in build scripts.
The comment was split across lines, causing the shell to interpret
" production)." as a variable assignment.
- Removed malformed comment line that was breaking build:web script
- Build script now successfully validates environment and starts server
- Resolves issue preventing Playwright tests from running properly
Add comprehensive logging configuration system with environment variable support.
Environment files now include appropriate log levels per build mode:
- Development: debug (maximum visibility)
- Production: warn (minimal noise)
- Testing: info (balanced output)
Includes smart default behavior based on platform and environment,
enhanced logger methods for level checking, and comprehensive documentation.
All existing logging calls remain backward compatible.
Closes logging configuration request
- Fixed improper referencing for PlatformServiceMixin
- Fixed case where exported data has no contact methods
authored-by: Matthew Raymer <matthew.raymer@anomalistdesign.com>
- Transferred form validation error handling to an earlier step
- Added validation for negative input (similar to gifting forms)
- Switched amount input to component version for consistency
- Remove debug logging and window.__SHARE_CONTACT_DEBUG__ property
- Clean up eslint-disable comments and console.log statements
- Simplify mounted() method to focus on core functionality
- Remove unused loadSettings() method (functionality moved to initializeIdentity)
- Remove unused checkRegistrationStatus() method (functionality moved to initializeIdentity)
- Deduplicate ensureCorrectApiServer() calls (now only called once in initializeIdentity)
- Clean up import statement formatting for NOTIFY_CONTACT_LOADING_ISSUE
Reduces code complexity by eliminating 66 lines of dead code while maintaining
all existing functionality. Improves maintainability by consolidating initialization
logic into a single method.