Commit Graph

  • d909618ced Create docker-compose-traefik.yml main vasyansk 2026-07-02 15:31:27 +07:00
  • 4b9c806719 Merge fix/error-reporting-and-modal-reset vasyansk 2026-07-02 15:14:11 +07:00
  • 477077d9e3 fix: consistent error reporting + reset mapping modal per account vasyansk 2026-07-02 15:14:11 +07:00
  • cdb93926bf Merge feat/folder-mapping-ui: probe + folder mapping modal on add vasyansk 2026-07-02 14:39:32 +07:00
  • 0bb584fe10 feat: folder mapping UI on account add (probe + map modal) vasyansk 2026-07-02 14:39:31 +07:00
  • 331497aff4 Merge feat/streaming-scan: streaming metadata scan with live feedback vasyansk 2026-07-02 13:35:08 +07:00
  • a2234077df feat: stream the metadata scan instead of Collect vasyansk 2026-07-02 13:35:08 +07:00
  • 39285a2ee7 Merge feat/plan-phase-progress: upfront folder count + account-wide progress vasyansk 2026-07-02 13:21:57 +07:00
  • 4959173f39 feat: planning pass counts all folders up front for account-wide progress vasyansk 2026-07-02 13:21:57 +07:00
  • ca7c494a06 Merge feat/live-progress: live counters + progress bar/speed/ETA vasyansk 2026-07-02 13:14:55 +07:00
  • e1911ef13b feat: real-time progress with per-folder bar, speed and ETA vasyansk 2026-07-02 13:14:55 +07:00
  • 6395099b53 Merge fix/stale-running-recovery: clear phantom running state vasyansk 2026-07-02 12:57:39 +07:00
  • fa72f1b323 fix: recover from phantom 'running' state after crash/restart vasyansk 2026-07-02 12:57:39 +07:00
  • 6a10697548 Merge feat/cancel-and-folder-progress: cancel + folder counts vasyansk 2026-07-02 12:47:07 +07:00
  • f024f329fc feat: per-account cancel + folder message-count progress in log vasyansk 2026-07-02 12:47:07 +07:00
  • 1ed150382e Merge feat/clear-log: clear event log button vasyansk 2026-07-02 12:32:04 +07:00
  • 694cedc529 feat(web): clear-log button on the event log panel vasyansk 2026-07-02 12:32:04 +07:00
  • 98dbdbd35b Merge fix/trim-account-credentials: trim manual account creds vasyansk 2026-07-02 10:38:00 +07:00
  • 79bd55aad8 fix(httpapi): trim whitespace on manually-added account login/password vasyansk 2026-07-02 10:38:00 +07:00
  • b8d1505329 Merge feat/confirm-modal: reusable modal + keyboard-driven confirm dialogs vasyansk 2026-07-02 09:36:08 +07:00
  • 29ccbc22e9 feat(web): reusable Modal + ConfirmProvider, replace native confirm() vasyansk 2026-07-02 09:36:08 +07:00
  • fcbe438f32 Merge feat/crud-and-rich-log: CRUD deletes/edit + detailed event log vasyansk 2026-07-02 09:23:14 +07:00
  • b88f88c1a3 feat: delete task/account, edit endpoint, richer event log vasyansk 2026-07-02 09:23:14 +07:00
  • 9019511d6f Merge feat/csv-example-download: downloadable CSV example link vasyansk 2026-07-02 09:09:08 +07:00
  • 647ea0dbbd feat(web): replace CSV columns caption with downloadable example.csv link vasyansk 2026-07-02 09:09:08 +07:00
  • 53276c41f0 Update docker-compose.yml vasyansk 2026-07-02 09:04:45 +07:00
  • 2a2fd7ad64 Merge fix/empty-list-null: empty lists return [] not null vasyansk 2026-07-02 09:04:33 +07:00
  • 7eff28053a fix(api): return empty arrays not null for empty lists (frontend null.length crash) vasyansk 2026-07-02 09:04:33 +07:00
  • d87a8c57ad Merge feat/imap-copier-mvp: imap-copier MVP vasyansk 2026-07-01 19:39:28 +07:00
  • 8af7b11791 fix(orchestrator): recover from panics in run goroutines to avoid process crash and stuck 'running' task vasyansk 2026-07-01 19:36:40 +07:00
  • 2429c786e4 fix(orchestrator): prevent concurrent double-run duplicating messages; reflect errors in status vasyansk 2026-07-01 19:32:04 +07:00
  • 1373aa0a77 feat(deploy): docker image, caddy, compose, e2e script vasyansk 2026-07-01 19:16:38 +07:00
  • 38005c0618 fix(api): add snake_case json tags to Endpoint/Task/request bodies for frontend contract vasyansk 2026-07-01 19:04:46 +07:00
  • 1a451f9dbb feat(web): React SPA with realtime task detail over WebSocket vasyansk 2026-07-01 19:01:05 +07:00
  • 4c57848c35 fix(httpapi): detect ws client disconnect via CloseRead to prevent subscriber leak vasyansk 2026-07-01 18:47:54 +07:00
  • 9ec6acd414 feat(httpapi): websocket, router, embed static, main entrypoint vasyansk 2026-07-01 18:37:48 +07:00
  • 0bd4ba37e3 fix(httpapi): fail CSV import on encryption error instead of storing empty passwords vasyansk 2026-07-01 18:33:09 +07:00
  • bb83bbd989 feat(httpapi): REST resources for endpoints/tasks/accounts/csv/run vasyansk 2026-07-01 18:27:11 +07:00
  • 839febb83a fix(httpapi): bind session token to current AuthUser; add negative auth tests vasyansk 2026-07-01 18:24:35 +07:00
  • cae124931d feat(httpapi): env-based login and session auth middleware vasyansk 2026-07-01 18:19:57 +07:00
  • f9f01b981b fix(csvimport): report accurate physical line numbers via FieldPos; add blank-line + zero-row tests vasyansk 2026-07-01 18:17:54 +07:00
  • 7fe8896f4b feat(csvimport): validated CSV account parser vasyansk 2026-07-01 18:12:57 +07:00
  • 2def11a870 fix(orchestrator): reuse src connection to list folders instead of extra TestLogin vasyansk 2026-07-01 18:10:52 +07:00
  • 8c871d9d26 feat(orchestrator): worker pool run + account testing gate vasyansk 2026-07-01 18:04:44 +07:00
  • ec8835538b feat(wshub): per-task event hub with non-blocking publish vasyansk 2026-07-01 17:59:43 +07:00
  • a54ec1d148 fix(imapx): preserve source internal date on APPEND vasyansk 2026-07-01 17:57:12 +07:00
  • 06c0598b80 feat(imapx): streaming per-folder copy with dedup, idempotent vasyansk 2026-07-01 17:39:43 +07:00
  • 79f5c5b93a fix(imapx): honor context in Connect with bounded dial retry vasyansk 2026-07-01 17:28:10 +07:00
  • 0451b79c64 feat(imapx): connect, endpoint test, login test with folder listing vasyansk 2026-07-01 17:20:03 +07:00
  • 37cb8ba076 feat(imapx): message dedup key (Message-ID + header fallback) vasyansk 2026-07-01 17:03:18 +07:00
  • 67a2367baa feat(store): tasks, accounts, runs, dedup journal vasyansk 2026-07-01 16:58:33 +07:00
  • 0cf9de38c4 fix(store): close pool on failed Ping; add ListEndpoints test vasyansk 2026-07-01 16:55:24 +07:00
  • 420358b558 feat(store): pgx pool and endpoints CRUD vasyansk 2026-07-01 16:50:45 +07:00
  • edda3dc21f feat(db): initial schema migration vasyansk 2026-07-01 16:42:39 +07:00
  • 0b9d31bd15 feat(crypto): HMAC signed session tokens vasyansk 2026-07-01 16:37:56 +07:00
  • 06d601482c fix(crypto): enforce 32-byte key for AES-256 vasyansk 2026-07-01 16:36:19 +07:00
  • 8d4a605b9f feat(crypto): AES-256-GCM password encryption vasyansk 2026-07-01 16:33:13 +07:00
  • 0dfe39565e fix(config): pin go directive to 1.22 for build portability vasyansk 2026-07-01 16:31:11 +07:00
  • 0d42eb2db0 feat(config): env-based configuration with validation vasyansk 2026-07-01 16:27:31 +07:00
  • 353f1e9dd3 docs: implementation plan for imap-copier vasyansk 2026-07-01 16:23:40 +07:00
  • 0e7736f613 docs: design spec for imap-copier vasyansk 2026-07-01 16:16:14 +07:00