feat: syncLog add Copy button, stack trace, isPermanent, Android device info (#237) #241

Closed
guettlibot wants to merge 7 commits from issue-237-fix into main
guettlibot commented 2026-05-25 06:35:40 +00:00 (Migrated from codeberg.org)

Summary

  • Schema v33: adds error_stack_trace and is_permanent columns to sync_logs; IMAP and JMAP sync loops now store the full stack trace string and isPermanent flag on error entries
  • New lib/ui/utils/about_markdown.dart utility (shared between AboutScreen and sync log copy) that builds the markdown table including Android device info via device_info_plus
  • AboutScreen updated to use the utility and show Android manufacturer, model, and OS version
  • 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 full About section

Test plan

  • Unit: migration_test.dart — verifies error_stack_trace and is_permanent columns exist after migration from v1, v22, and on fresh install
  • Unit: sync_log_repository_impl_test.dart — new test verifies stackTrace and isPermanent are stored and retrieved correctly
  • All 451 existing tests (unit + widget) continue to pass

🤖 Generated with Claude Code

## Summary - Schema v33: adds `error_stack_trace` and `is_permanent` columns to `sync_logs`; IMAP and JMAP sync loops now store the full stack trace string and `isPermanent` flag on error entries - New `lib/ui/utils/about_markdown.dart` utility (shared between AboutScreen and sync log copy) that builds the markdown table including Android device info via `device_info_plus` - AboutScreen updated to use the utility and show Android manufacturer, model, and OS version - 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 full About section ## Test plan - [ ] Unit: `migration_test.dart` — verifies `error_stack_trace` and `is_permanent` columns exist after migration from v1, v22, and on fresh install - [ ] Unit: `sync_log_repository_impl_test.dart` — new test verifies `stackTrace` and `isPermanent` are stored and retrieved correctly - [ ] All 451 existing tests (unit + widget) continue to pass 🤖 Generated with [Claude Code](https://claude.com/claude-code)

Pull request closed

Please reopen this pull request to perform a merge.
Sign in to join this conversation.