-
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