feat: syncLog add Copy button, stack trace, isPermanent (#266) #269

Merged
guettlibot merged 0 commits from issue-266-fix into main 2026-05-26 05:55:09 +00:00
guettlibot commented 2026-05-26 05:50:59 +00:00 (Migrated from codeberg.org)

Summary

  • Schema v33: adds error_stack_trace and is_permanent columns to sync_logs
  • SyncLogEntry gains stackTrace and isPermanent fields; SyncLogRepository.log() gains matching optional parameters; IMAP and JMAP sync loops forward the stack trace string and isPermanent flag when writing error entries
  • New lib/ui/utils/about_markdown.dart utility shared by AboutScreen and the sync log copy feature
  • AboutScreen refactored to use the shared utility (no behavior change)
  • SyncLogScreen: subtitle shows "Error (permanent)" for permanent errors; expanded view shows stack trace in red monospace; each tile has a Copy button that copies a markdown summary of the entry plus the About section

Test plan

  • Unit tests pass: flutter test test/unit/ — 330 tests
  • Widget tests pass: flutter test test/widget/ — 135 tests
  • Coverage gate passes: 83% (threshold 80%)
  • flutter analyze — no issues
  • Migration test updated for v33 columns
  • New repo test validates stackTrace and isPermanent round-trip

🤖 Generated with Claude Code

## Summary - Schema v33: adds `error_stack_trace` and `is_permanent` columns to `sync_logs` - `SyncLogEntry` gains `stackTrace` and `isPermanent` fields; `SyncLogRepository.log()` gains matching optional parameters; IMAP and JMAP sync loops forward the stack trace string and `isPermanent` flag when writing error entries - New `lib/ui/utils/about_markdown.dart` utility shared by `AboutScreen` and the sync log copy feature - `AboutScreen` refactored to use the shared utility (no behavior change) - `SyncLogScreen`: subtitle shows "Error (permanent)" for permanent errors; expanded view shows stack trace in red monospace; each tile has a Copy button that copies a markdown summary of the entry plus the About section ## Test plan - [ ] Unit tests pass: `flutter test test/unit/` — 330 tests - [ ] Widget tests pass: `flutter test test/widget/` — 135 tests - [ ] Coverage gate passes: 83% (threshold 80%) - [ ] `flutter analyze` — no issues - [ ] Migration test updated for v33 columns - [ ] New repo test validates `stackTrace` and `isPermanent` round-trip 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.