Commit Graph

40 Commits

Author SHA1 Message Date
7d73e09de7 doc: Fix merge conflict. 2025-08-19 19:56:54 -06:00
fe08db1e95 doc: Fix a remaining merge. 2025-08-19 19:55:33 -06:00
3aaea9c829 Merge branch 'master' into fix-deep-link 2025-08-19 19:53:38 -06:00
Matthew Raymer
1666e77aa5 docs(rules): apply markdown standards and streamline rulesets
- Apply markdown.mdc formatting to all ruleset files (80-char line length, proper spacing)
- Update timesafari.mdc to reflect completed migration (remove triple migration pattern references)
- Clean up corrupted logging_standards.mdc and restore proper content
- Streamline architectural_decision_record.mdc for better readability
- Update all file dates to 2025-08-19 for consistency
- Add proper document headers and metadata to all ruleset files
- Remove duplicate content and improve file organization
- Maintain alwaysApply settings and glob patterns appropriately

Files affected: 15 ruleset files across app/, database/, development/, features/, workflow/ directories
2025-08-19 13:14:25 +00:00
Matthew Raymer
3c44dc0921 chore: base_context is always used. 2025-08-19 07:04:45 +00:00
Matthew Raymer
1a06dea491 docs(workflow): enhance version control rules with synchronization requirements
- 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
2025-08-19 03:53:42 +00:00
Matthew Raymer
ab23d49145 docs(rules): enhance development guidelines with type safety and dependency management
- 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
2025-08-19 03:48:53 +00:00
Matthew Raymer
d39e21394c refactor(rules): consolidate type safety content and clean software development ruleset
- Remove duplicate content and restore file integrity in software_development.mdc
- Add comprehensive Type Safety Enforcement section to type_safety_guide.mdc
- Clean up file structure and eliminate corruption from duplicate sections
- Move type safety patterns and guidelines to appropriate specialized guide
2025-08-19 03:36:22 +00:00
Matthew Raymer
cdf5fbdfc6 chore: fixing formatting 2025-08-18 12:16:07 +00:00
cf44ec1a1d Merge branch 'master' into nearby-filter 2025-08-18 07:52:54 -04:00
Matthew Raymer
3aa57c5ced Merge branch 'master' into imagemagick-anrdoid 2025-08-18 06:12:32 +00:00
Matthew Raymer
38f3105946 feat(rules): add software development ruleset and enhance research diagnostic
- 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
2025-08-18 05:57:45 +00:00
Matthew Raymer
37559e1bad docs(typescript): add comprehensive type safety guidelines with Vue exceptions
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
2025-08-16 14:50:14 +00:00
Matthew Raymer
404f23c118 feat(cursor): add research diagnostic workflow and format base context rules
- 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
2025-08-16 12:40:19 +00:00
Matthew Raymer
303f1bc565 refactor(cursor-rules): reorganize rules into logical directory structure
Restructure .cursor/rules from flat organization to hierarchical categories:
- app/: application-specific rules (timesafari, architectural decisions)
- database/: database-related rules (absurd-sql, legacy dexie)
- development/: development workflow rules
- docs/: documentation standards and markdown rules
- features/: feature-specific implementation rules (camera)
- workflow/: version control and workflow rules

Add base_context.mdc for shared context across all rule categories.
Improves maintainability and discoverability of cursor rules.
2025-08-16 08:38:25 +00:00
Matthew Raymer
68c0459533 refactor(settings): simplify updateSettings calls in HomeView.vue, FeedFilters.vue
- Remove conditional activeDid checks around $updateSettings calls in FeedFilters.vue
- Call $updateSettings unconditionally, letting implementation handle missing activeDid
- Maintain functional behavior while simplifying code structure
2025-08-15 08:16:11 +00:00
Matthew Raymer
a284067522 feat(assets): standardize asset configuration with capacitor-assets
- Replace manual ImageMagick scripts with official capacitor-assets toolchain
- Consolidate duplicate asset sources to single resources/ directory
- Implement comprehensive asset configuration schema and validation
- Add CI safeguards for asset validation and platform asset detection
- Convert capacitor.config.json to TypeScript format
- Pin Node.js version for deterministic builds
- Remove legacy manual asset generation scripts:
  * generate-icons.sh, generate-ios-assets.sh, generate-android-icons.sh
  * check-android-resources.sh, check-ios-resources.sh
  * purge-generated-assets.sh
- Add new asset management commands:
  * assets:config - generate/update configurations
  * assets:validate - validate configurations
  * assets:clean - clean generated assets (dev only)
  * build:native - build with asset generation
- Create GitHub Actions workflow for asset validation
- Update documentation with new asset management workflow

This standardization eliminates asset duplication, improves build reliability,
and provides a maintainable asset management system using Capacitor defaults.

Breaking Changes: Manual asset generation scripts removed
Migration: Assets now sourced from resources/ directory only
CI: Automated validation prevents committed platform assets
2025-08-14 07:22:26 +00:00
Matthew Raymer
de47829dc2 fix: DataExportSection error
- Fixed improper referencing for PlatformServiceMixin
- Fixed case where exported data has no contact methods

authored-by: Matthew Raymer <matthew.raymer@anomalistdesign.com>
2025-08-11 08:06:09 +00:00
Matthew Raymer
3d38cb89a9 Fix HomeView registration status by using $accountSettings() instead of $settings()
- Change HomeView to use $accountSettings() method which returns correct isRegistered value
- Remove isRegistered: false default that was overriding database values
- Fix settings override issue where empty defaults were overriding activeDid
- Remove excessive settings tracing logs to clean up console output
- Ensure consistent registration status between HomeView and AccountViewView

The HomeView was incorrectly showing users as unregistered while AccountViewView showed them as registered due to using $settings() (returns null) instead of $accountSettings() (returns correct database value).
2025-08-02 08:19:41 +00:00
Matthew Raymer
9cd4551bed docs: add comprehensive GiftedDialog architecture overview
Add detailed analysis of GiftedDialog component architecture including:
- DRY and SOLID principles compliance assessment
- Cognitive load analysis with before/after comparisons
- Architectural complexity remediation plan
- Phased implementation strategy (cognitive load → composable architecture)
- Component hierarchy and dependency analysis
- Performance and security considerations

The document provides actionable recommendations for reducing complexity
while maintaining functionality, with specific code examples and metrics.
2025-07-31 12:36:04 +00:00
Matthew Raymer
2a32903326 chore: more cursor rules updates 2025-07-31 09:22:32 +00:00
Matthew Raymer
1180ebd4ca chore: update cursor rulesets 2025-07-31 06:31:14 +00:00
Matthew Raymer
6d4fb4f57a Remove manual service worker registration; rely on VitePWA auto-registration
- Deleted src/registerServiceWorker.ts and all related imports
- Cleaned up WebPlatformService and main.web.ts to remove manual SW logic
- Updated VitePWA config for correct dev/prod SW handling
- Fixed missing FontAwesome download icon in PWA prompt
- Updated docs to reflect new PWA registration approach

PWA now works reliably in all web environments with zero manual SW code.
2025-07-15 06:13:33 +00:00
Matthew Raymer
b35c1d693f docs: update build pattern conversion plan with consistent naming and mode handling
- Change build:* naming from hyphen to colon (build:web-dev → build:web:dev)
- Add missing build:web:test and build:web:prod scripts
- Update build:electron:dev to include electron startup (build + start)
- Remove hardcoded --mode electron to allow proper mode override
- Add comprehensive mode override behavior documentation
- Fix mode conflicts between hardcoded and passed --mode arguments

The plan now properly supports:
- Development builds with default --mode development
- Testing builds with explicit --mode test override
- Production builds with explicit --mode production override
- Consistent naming across all platforms (web, capacitor, electron)
2025-07-09 13:13:44 +00:00
Matthew Raymer
797db7069c Fix image CORS violations with comprehensive proxy and component updates
- Applied transformImageUrlForCors to all image-displaying components
- Added followRedirects: true to image proxy to serve actual content
- Proxy now returns 200 OK with image data instead of 301 redirects
- Maintains CORS headers required for SharedArrayBuffer support
- Added debug logging for proxy response monitoring

Resolves all image loading failures in development environment.
2025-07-03 04:15:26 +00:00
Matthew Raymer
03e14371f6 Remove unused usePlatformService composable and document mixin architecture
- Delete unused usePlatformService.ts file
- Create architecture-decisions.md documenting mixin choice over composables
- Update README.md with architecture decision reference and usage guidance
- Document rationale: performance, consistency, developer experience
- Maintain established class-based component pattern with vue-facing-decorator
2025-07-02 11:27:18 +00:00
Matthew Raymer
a41ce0cd4c fix: Resolve infinite SQLite logging loop blocking Electron startup
- Fix logToDb() to use actual database schema: 'date' and 'message' columns
- Change INSERT query from non-existent 'timestamp, level' to existing 'date, message'
- Change DELETE cleanup to use 'date' column instead of 'timestamp'
- Embed log level in message text as '[LEVEL] message' instead of separate column
- Use toDateString() format to match schema instead of toISOString()

Resolves: "table logs has no column named timestamp" infinite error loop
Critical: Enables Electron app initialization by matching code to existing schema
Impact: Stops database logging from crashing and allows normal app startup
2025-07-01 05:15:06 +00:00
Matthew Raymer
a4c44ff052 feat: Add database migration tools and fix Electron integration
- Add comprehensive IndexedDB to SQLite migration service (1,397 lines)
- Create migration UI with progress tracking and validation (1,492 lines)
- Fix Electron TypeScript compilation and SQLite plugin issues
- Expand migration system with detailed documentation and error handling
- Add development guide and coding standards

Resolves: #electron-startup #database-migration #typescript-errors
Impact: Enables user-friendly database migration with full data verification
2025-07-01 03:47:32 +00:00
Matthew Raymer
94ac7d648d migration: move to bash based build scripts 2025-06-24 11:11:33 +00:00
Matt Raymer
fe1e198992 chore: update migration documents and move to new home 2025-05-25 22:50:32 -04:00
Matt Raymer
dda1e763d1 Merge remote-tracking branch 'refs/remotes/origin/sql-absurd-sql' into sql-absurd-sql 2025-05-25 22:47:36 -04:00
d6f9567777 don't always apply the camera-implementation cursor rules 2025-05-25 20:37:16 -06:00
Matt Raymer
861ed9dd2d docs: add comprehensive migration guide for Dexie to wa-sqlite
- Add detailed migration process documentation including preparation, data migration, and rollback strategies\n- Include TypeScript implementation examples for MigrationService, DataMigration, and RollbackService\n- Add Vue component for migration progress tracking with error handling\n- Document testing strategy with unit and integration test examples\n- Define clear success criteria and timeline for migration\n- Include platform-specific considerations and prerequisites\n- Add post-migration verification and monitoring guidelines
2025-05-25 03:18:12 -04:00
Matt Raymer
4a0ddb4472 refactor: consolidate type system and improve documentation
- Move type definitions from src/types/ to src/interfaces/ for better organization
- Enhance deep linking type system documentation with detailed examples
- Update package dependencies to latest versions
- Improve code organization in README.md
- Fix formatting in WebPlatformService.ts

This change consolidates all type definitions into the interfaces folder,
improves type safety documentation, and updates dependencies for better
maintainability. The deep linking system now has clearer documentation
about its type system and validation approach.

Breaking: Removes src/types/ directory in favor of src/interfaces/
2025-05-20 03:15:23 -04:00
Matt Raymer
8d2ccaa063 docs: consolidate QR code implementation documentation
Merge multiple QR code documentation files into a single comprehensive guide
that accurately reflects the current implementation. The consolidated guide:

- Combines information from qr-code-implementation-guide.mdc,
  qr-code-handling-rule.mdc, and camera-implementation.md
- Clarifies the relationship between ContactQRScanView and ContactQRScanShowView
- Streamlines build configuration documentation
- Adds detailed sections on error handling, security, and best practices
- Improves organization and readability of implementation details
- Removes redundant information while preserving critical details

This change improves documentation maintainability and provides a single
source of truth for QR code implementation details.
2025-05-19 06:28:46 -04:00
Matt Raymer
151bbc5467 chore: updates for qr code reader rules, linting, and cleanup 2025-05-07 01:57:18 -04:00
Matthew Raymer
3553ac8e30 docs(PhotoDialog): improve component documentation and error handling
- Add comprehensive JSDoc documentation for component features and capabilities
- Fix line wrapping in file-level documentation header
- Improve error message formatting for better readability
- Remove unused PhotoResult interface
- Maintain consistent documentation style with project standards

The documentation improvements help developers better understand the component's
cross-platform photo handling capabilities and error management approach.
2025-05-02 08:39:29 +00:00
Matt Raymer
a7d3c62077 cursor(ADR): attempt to keep changes between the lines when making platform level changes 2025-04-30 02:45:30 -04:00
Matthew Raymer
70dfbe44fa fix(qr): improve QR scanner implementation and error handling
- Implement robust QR scanner factory with platform detection
- Add proper camera permissions to Android manifest
- Improve error handling and logging across scanner implementations
- Add continuous scanning mode for Capacitor/MLKit scanner
- Enhance UI feedback during scanning process
- Fix build configuration for proper platform detection
- Clean up resources properly in scanner components
- Add TypeScript improvements and error wrapping

The changes include:
- Adding CAMERA permission to AndroidManifest.xml
- Setting proper build flags (__IS_MOBILE__, __USE_QR_READER__)
- Implementing continuous scanning mode for better UX
- Adding proper cleanup of scanner resources
- Improving error handling and type safety
- Enhancing UI with loading states and error messages
2025-04-22 10:00:37 +00:00
Matthew Raymer
ff605b3676 feature(qrcode): reboot qrcode reader 2025-04-21 10:13:12 +00:00