Commit Graph
209 Commits
Author SHA1 Message Date
Thomas SharedInboxandClaude Sonnet 4.6 8f7d33d885 feat: embed git hash in website and verify after CI deploy
- website/layouts/_partials/extend_head.html: injects <meta name="x-version">
  using HUGO_PARAMS_GITVERSION (set by Taskfile at build time)
- Taskfile: website-build sets HUGO_PARAMS_GITVERSION=<short HEAD>;
  new website-verify task runs scripts/website-verify.sh
- scripts/website-verify.sh: fetches homepage, retries 6x/10s, checks
  that the deployed version hash matches HEAD
- website.yml: Verify step after Deploy; scripts/website-verify.sh added
  to path trigger

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 09:32:46 +02:00
Thomas SharedInboxandClaude Sonnet 4.6 a71e10d9db fix: correct enough_mail docs and website CI pipeline
enough_mail is a pub dependency, not a vendored package.
Add missing 'Enable Nix flakes' step to website.yml (matching ci.yml)
and remove redundant branch condition already handled by the trigger.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 09:17:37 +02:00
Thomas SharedInboxandClaude Sonnet 4.6 76278d6f69 fix: CI _preflight, swap tea→fgj, add ci-logs helper
- flake.nix: replace tea with fgj (fetchurl of v0.4.0 linux_amd64 binary)
- flake.nix shellHook: export IN_NIX_SHELL=1 so that nix develop --command
  sets the variable that _preflight checks (nix develop does not set it
  automatically, unlike the old nix-shell)
- Taskfile.yml _preflight: use IN_NIX_SHELL check instead of DIRENV_DIR,
  which never worked in CI
- scripts/ci_logs.sh + task ci-logs: fetch raw Codeberg Actions job logs
  from the web-UI endpoint (API endpoint not available on Codeberg 15.0.0)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 06:05:55 +02:00
Thomas SharedInbox d58ed9ebc4 dummy commit to test CI 2026-05-12 22:29:15 +02:00
Thomas SharedInbox efdcab74d7 setup nix in CI, and reformat. 2026-05-12 21:55:06 +02:00
Thomas SharedInboxandClaude Sonnet 4.6 8272b75b34 fix: add required trailing commas to satisfy require_trailing_commas lint rule
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 17:49:41 +02:00
Thomas SharedInbox 49737355b2 use ubuntu runner 2026-05-12 13:01:56 +02:00
Thomas SharedInbox 0c14f98a14 Configure Play Store roadmap and Hugo website with automated deployment 2026-05-12 09:10:21 +02:00
Thomas SharedInbox d4902d1395 Deploy via CI. 2026-05-12 08:15:47 +02:00
Thomas SharedInbox 7017947a9f ignore more files 2026-05-11 13:19:50 +02:00
Thomas SharedInbox 532bf7347b docs: record completion of Issue #14 in done.md 2026-05-11 08:38:19 +02:00
Thomas SharedInbox 58f4b13c6a ui: stabilize email list during selection (Issue #14) 2026-05-11 08:35:38 +02:00
Thomas SharedInbox 568b63de55 fix: refine undo log and remove delete confirmations (Issue #12)
- Remove delete confirmation dialogs in list and detail screens.
- Style Undo SnackBar action button with red text color.
- Enhance Undo Log screen to show email subject, sender, and action metadata.
- Add Undo support for Snooze action.
- Fix restoreEmails to preserve snooze metadata.
- Add unit test for Undo snooze logic.
2026-05-11 07:33:22 +02:00
Thomas SharedInbox e80a7c7a0e test: ensure migrations from v1 to v22 work correctly
- Add test/unit/migration_test.dart to verify schema upgrades and data preservation.
- Fix onUpgrade logic for syncLogs table to be idempotent.
- Add fromJson/toJson/copyWith to Account and Mailbox models.
- Update unit tests for models to increase coverage.
- Adjust coverage gate exclusions for integration-heavy files.
2026-05-11 07:21:15 +02:00
Thomas SharedInbox e52a386c33 fix: correct column naming in raw SQL indices (snake_case) 2026-05-10 22:26:33 +02:00
Thomas SharedInbox 9815e105d3 fix: improve crash reporting on Codeberg
- Pre-fill Codeberg issue with crash details (title and body).
- Remove unreliable canLaunchUrl check.
- Add SnackBar error handling if launch fails.
- Add https intent to Android queries manifest for better link visibility.
- Add widget test for CrashScreen.
2026-05-10 22:21:09 +02:00
Thomas SharedInbox 0895a79a33 fix: make snooze migration idempotent to avoid duplicate column error 2026-05-10 22:06:42 +02:00
Thomas SharedInbox b7ff02711b feat: implement snooze feature for IMAP and JMAP
- Add snoozedUntil and snoozedFromMailboxPath to Emails table.
- Implement snoozeEmail and wakeUpEmails in EmailRepository.
- Update IMAP and JMAP flush logic to handle snooze/unsnooze.
- Update sync logic to parse snz: keywords from server.
- Add SnoozePicker widget and integrate into UI.
- Add unit tests for Snooze logic.
2026-05-10 21:50:13 +02:00
Thomas SharedInbox 0855049c30 ui: move undo log access to drawer 2026-05-10 18:43:19 +02:00
Thomas SharedInbox 466407e39b chore: update coverage exclusions for undo repository 2026-05-10 17:41:33 +02:00
Thomas SharedInbox 11e337ed6f feat: persist undo log to database and support selective undo across restarts (issue #10) 2026-05-10 17:38:43 +02:00
Thomas SharedInbox 1bdbdc0b94 docs: update roadmap and next steps 2026-05-10 16:06:15 +02:00
Thomas SharedInbox c2ab4a2b55 docs: document Undo Log improvements and Android deployment 2026-05-10 14:49:59 +02:00
Thomas SharedInbox c1fbf7ece1 Merge branch 'feat/issue-7-undo-log' 2026-05-10 14:45:11 +02:00
Thomas SharedInbox 310538460d feat: improve Undo Log to support undoing any action from history 2026-05-10 14:40:01 +02:00
Thomas SharedInbox 3ca71cd4e5 feat: add hyperlinks to Codeberg commits in ChangeLog (Issue #9) 2026-05-10 13:18:35 +02:00
Thomas SharedInbox 082a39b539 fix: restore missing integration_test dependency and bump version to 0.1.1 2026-05-10 11:56:40 +02:00
Thomas SharedInbox 8adb7f9a65 chore: exclude changelog_screen from unit coverage gate 2026-05-10 11:27:25 +02:00
Thomas SharedInbox 4f55aaa0f7 chore: clean up Taskfile and ensure ChangeLog automation 2026-05-10 11:25:07 +02:00
Thomas SharedInbox 382408985d chore: fix Taskfile automation and cleanup duplication 2026-05-10 11:24:31 +02:00
Thomas SharedInbox 2ecb29d6ee feat: implement in-app ChangeLog from git history 2026-05-10 11:23:39 +02:00
Thomas SharedInbox 56c1ffccf5 chore: exclude undo_log_screen from unit coverage gate 2026-05-10 10:51:32 +02:00
Thomas SharedInbox 26acf7589a chore: strengthen git safeguards and remove tracked .metadata 2026-05-10 10:48:18 +02:00
Thomas SharedInbox c85dbbeff2 feat: implement global undo log with persistent history 2026-05-10 10:32:27 +02:00
Thomas SharedInbox e9e731c551 fix: resolve pre-commit and coverage gate issues 2026-05-09 18:59:12 +02:00
Thomas SharedInbox 3fd7b564de docs: update done.md and plan.log with latest fixes 2026-05-09 18:51:09 +02:00
guettlibotandThomas SharedInbox 6d58ee1e00 Fix Issues 1, 2, and 3: Headers, Undo, and Crash Reporting (#6)
## Overview
This PR implements several fixes and enhancements requested in the latest session:

### Fixes
1. **Issue 1: Raw Email Headers**
   - Added database support for raw headers.
   - Added a new Headers tab in the email detail screen with a zebra-colored table display.
2. **Issue 2: Exception on Undo of Delete**
   - Added `toJson` and `fromJson` to `EmailAddress` model to fix serialization during undo.
3. **Issue 3: Crash Reporting**
   - Added a button to the Crash Screen to report issues directly on Codeberg.

### Infrastructure
- Added Nix experimental features check to `Taskfile.yml` to ensure a consistent dev environment.

## Verification
- Manually verified the Headers display on Linux.
- Verified Undo for IMAP and JMAP accounts.
- Verified the Crash Screen button.

Co-authored-by: Thomas SharedInbox <sharedinbox@thomas-guettler.de>
Reviewed-on: https://codeberg.org/guettli/sharedinbox/pulls/6
2026-05-09 18:49:34 +02:00
Thomas SharedInbox d405b37308 fix: implement global undo UI and optimistic IMAP moves for better UX 2026-05-09 15:35:17 +02:00
Thomas SharedInbox e2759ac062 fix: restore Undo functionality for IMAP accounts by preserving data 2026-05-09 14:03:52 +02:00
Thomas SharedInbox 674b21298d feat: implement exponential backoff and permanent error handling for sync engine 2026-05-09 13:25:59 +02:00
Thomas SharedInbox 03a68a00c6 feat: implement periodic sync reliability verification and health indicator 2026-05-09 09:47:42 +02:00
Thomas SharedInbox 7a53189ae5 test: maintain coverage gate and add ghost path exclusion test 2026-05-08 23:10:16 +02:00
Thomas SharedInbox 11513d1668 gitignore. 2026-05-08 21:02:53 +02:00
Thomas Güttler 0b3b28b23a docs: add README for sharedinbox-runner setup 2026-05-08 12:56:29 +02:00
Thomas Güttler 67e6b4ebb9 chore: unify runner naming to sharedinbox-runner 2026-05-08 12:55:16 +02:00
Thomas Güttler 06cf8c7f99 chore: simplify runner to run as root from /opt/sharedinbox-runner 2026-05-08 12:40:12 +02:00
Thomas Güttler 5d33befe51 chore: set runner working dir to / and use absolute paths 2026-05-08 12:20:04 +02:00
Thomas Güttler b314a0c1b6 feat: migrate CI to Codeberg Actions and add self-hosted runner config
- Added .forgejo/workflows/ci.yml for thin CI orchestration.
- Configured Dockerized Codeberg runner with Nix support in codeberg-runner/.
- Added systemd service for persistent runner execution.
- Added GEMINI.md for project CI/Nix conventions.
- Added Taskfile task for Linux release builds.
2026-05-08 12:04:42 +02:00
Thomas Güttler 626b7b49f9 chore: remove accidental log file commit 2026-05-08 11:19:49 +02:00
Thomas Güttler 43e1744614 feat: implement optimized Undo for delete and move actions
- Added UndoService with 10-action history stack.
- Integrated Undo Snackbar into EmailListScreen and EmailDetailScreen.
- Added EmailRepository.cancelPendingChange to optimize undo by removing
  unsynced local mutations.
- Fixed sorting bug in compareMailboxes for unknown roles.
- Increased unit coverage to 83% with new model and utility tests.
- Verified with full test suite (task check).
2026-05-08 11:14:54 +02:00