This website requires JavaScript.
0b12d2ed2d
Cover pause and resume in the e2e run
main
vasyansk and Claude Opus 5
2026-07-29 11:21:02 +07:00
039ac2f1da
Add pause and cancel to a running migration
vasyansk and Claude Opus 5
2026-07-29 11:20:52 +07:00
c077b368f3
Allow fixing an account's credentials from a failed test
vasyansk and Claude Opus 5
2026-07-28 12:08:28 +07:00
76ada57dd7
Add a defaults button to the folder mapping dialog
vasyansk and Claude Opus 5
2026-07-28 11:50:55 +07:00
bb3635e517
Add a Kerio sample file to the bulk import
vasyansk and Claude Opus 5
2026-07-28 11:50:45 +07:00
8bc7ff026d
Add endpoint deletion
vasyansk and Claude Opus 5
2026-07-28 11:50:12 +07:00
94fb410c59
Fix postgres healthcheck probing a nonexistent database
vasyansk and Claude Opus 5
2026-07-28 11:50:02 +07:00
6bf3a6c4ca
Add body read timeout recovery to IMAP client
vasyansk
2026-07-21 05:29:35 +07:00
c741cd19a0
Update docker-compose.yml
vasyansk
2026-07-21 04:41:25 +07:00
b6e68bdd90
Add activity tracking to prevent stall timeouts during message transfers
vasyansk
2026-07-21 04:38:32 +07:00
d125320667
fix dtt
vasyansk
2026-07-18 12:21:58 +07:00
b352cda166
add kerio format support
vasyansk
2026-07-17 11:42:34 +07:00
5d296c39b1
Merge feat/selective-account-run: selective account run via checkboxes
vasyansk
2026-07-08 13:56:28 +07:00
fc335dee3f
Add selective account run implementation plan
vasyansk and Claude Opus 4.8
2026-07-08 13:55:02 +07:00
b439eee164
Add account selection checkboxes and selective run button
vasyansk
2026-07-08 13:48:48 +07:00
2e5036aad5
runTask accepts optional accountIds
vasyansk
2026-07-08 13:44:53 +07:00
599c66189c
Parse optional account_ids in run handler
vasyansk
2026-07-08 13:41:14 +07:00
315e56046b
Add selectAccounts filter and accountIDs param to orchestrator.Run
vasyansk
2026-07-08 13:37:24 +07:00
692a83a468
fix domain
vasyansk
2026-07-08 13:34:53 +07:00
6d8471efdd
add dick pics
vasyansk
2026-07-08 13:33:14 +07:00
3eac1cea7d
Add selective account run design spec
vasyansk and Claude Opus 4.8
2026-07-08 13:30:11 +07:00
b076ac92d6
Add folder mapping status indicator to task list
vasyansk
2026-07-06 19:15:30 +07:00
e84366eb0c
Remove idle connection timeout handling
vasyansk
2026-07-05 14:50:25 +07:00
95ddbf5619
Update copy.go
vasyansk
2026-07-05 13:59:56 +07:00
2bdb4904d6
Add stacked account display and fixed live progress row sizing
vasyansk
2026-07-05 12:20:33 +07:00
7ad326fa36
Update docker-compose-traefik.yml
vasyansk
2026-07-05 12:16:44 +07:00
45b0ff2358
feat(errors): per-account error modal with persisted error list
vasyansk and Claude Opus 4.8
2026-07-05 12:16:12 +07:00
2623bc8815
Reduce worker concurrency from 4 to 2
vasyansk
2026-07-05 11:40:04 +07:00
b9cc7749c8
Update docker-compose-traefik.yml
vasyansk
2026-07-05 11:24:44 +07:00
d5192e1cf7
Add optional pprof endpoint for debugging
vasyansk
2026-07-04 21:31:53 +07:00
dca1363ec9
Add IMAP connection timeout handling
vasyansk
2026-07-04 19:37:36 +07:00
8656f46674
Create 2026-07-03-scheduled-task-runs.md
vasyansk
2026-07-03 13:59:12 +07:00
e104a77de1
Merge feat/scheduled-task-runs: recurring task execution
vasyansk and Claude Opus 4.8
2026-07-03 13:40:39 +07:00
64bcb1d60b
fix: anchor floor on re-enable; breaker on scheduled panic; propagate next-run err; reject negative interval; close phantom runs on startup
vasyansk
2026-07-03 13:31:58 +07:00
e8acab6920
feat(web): schedule control, next-run, broken badge, run-log modal
vasyansk
2026-07-03 13:19:14 +07:00
d2c69c6a5e
feat(api): schedule + runs endpoints; next_run_at on task detail
vasyansk and Claude Opus 4.8
2026-07-03 13:13:10 +07:00
be777dc908
feat(orchestrator): thread run trigger; breaker on scheduled runs with errors
vasyansk
2026-07-03 13:08:21 +07:00
b9421d388c
feat(scheduler): 30s polling scheduler with pure NextRun/dueTaskIDs
vasyansk
2026-07-03 13:07:05 +07:00
8f93dcd97b
feat(store): task schedule columns, run trigger, scheduling queries
vasyansk
2026-07-03 13:01:20 +07:00
e8f29064fb
docs: spec for scheduled (recurring) task runs
vasyansk and Claude Opus 4.8
2026-07-03 12:40:26 +07:00
1810497c2a
Merge feat/per-account-folder-mapping: per-account folder mapping + exclusion
vasyansk and Claude Opus 4.8
2026-07-03 12:10:57 +07:00
b59ce67497
fix: validate account on mapping PUT; gate folders btn during run; prune stale mapping keys; drop dead export
vasyansk
2026-07-03 12:08:22 +07:00
964e4cfc33
feat(web): per-account folders button + edit-mapping modal
vasyansk
2026-07-03 11:56:47 +07:00
1ba7b54e05
feat(web): folder-sync checkboxes + per-account mapping API client
vasyansk
2026-07-03 11:55:40 +07:00
bdb3b72f38
feat(api): probe existing account + persist per-account folder mapping
vasyansk
2026-07-03 11:50:32 +07:00
bc72f8172f
feat(orchestrator): build copy plan from per-account mapping + exclusions
vasyansk
2026-07-03 11:46:31 +07:00
d6d17ee544
feat(store): per-account folder_mapping + excluded_folders columns
vasyansk
2026-07-03 11:39:21 +07:00
e7870c6aa4
docs: spec + plan for per-account folder mapping & exclusion
vasyansk and Claude Opus 4.8
2026-07-03 11:35:17 +07:00
79fd200e57
many fixes
vasyansk
2026-07-03 11:18:40 +07:00
d909618ced
Create docker-compose-traefik.yml
vasyansk
2026-07-02 15:31:27 +07:00
4b9c806719
Merge fix/error-reporting-and-modal-reset
vasyansk and Claude Opus 4.8
2026-07-02 15:14:11 +07:00
477077d9e3
fix: consistent error reporting + reset mapping modal per account
vasyansk and Claude Opus 4.8
2026-07-02 15:14:11 +07:00
cdb93926bf
Merge feat/folder-mapping-ui: probe + folder mapping modal on add
vasyansk and Claude Opus 4.8
2026-07-02 14:39:32 +07:00
0bb584fe10
feat: folder mapping UI on account add (probe + map modal)
vasyansk and Claude Opus 4.8
2026-07-02 14:39:31 +07:00
331497aff4
Merge feat/streaming-scan: streaming metadata scan with live feedback
vasyansk and Claude Opus 4.8
2026-07-02 13:35:08 +07:00
a2234077df
feat: stream the metadata scan instead of Collect
vasyansk and Claude Opus 4.8
2026-07-02 13:35:08 +07:00
39285a2ee7
Merge feat/plan-phase-progress: upfront folder count + account-wide progress
vasyansk and Claude Opus 4.8
2026-07-02 13:21:57 +07:00
4959173f39
feat: planning pass counts all folders up front for account-wide progress
vasyansk and Claude Opus 4.8
2026-07-02 13:21:57 +07:00
ca7c494a06
Merge feat/live-progress: live counters + progress bar/speed/ETA
vasyansk and Claude Opus 4.8
2026-07-02 13:14:55 +07:00
e1911ef13b
feat: real-time progress with per-folder bar, speed and ETA
vasyansk and Claude Opus 4.8
2026-07-02 13:14:55 +07:00
6395099b53
Merge fix/stale-running-recovery: clear phantom running state
vasyansk and Claude Opus 4.8
2026-07-02 12:57:39 +07:00
fa72f1b323
fix: recover from phantom 'running' state after crash/restart
vasyansk and Claude Opus 4.8
2026-07-02 12:57:39 +07:00
6a10697548
Merge feat/cancel-and-folder-progress: cancel + folder counts
vasyansk and Claude Opus 4.8
2026-07-02 12:47:07 +07:00
f024f329fc
feat: per-account cancel + folder message-count progress in log
vasyansk and Claude Opus 4.8
2026-07-02 12:47:07 +07:00
1ed150382e
Merge feat/clear-log: clear event log button
vasyansk and Claude Opus 4.8
2026-07-02 12:32:04 +07:00
694cedc529
feat(web): clear-log button on the event log panel
vasyansk and Claude Opus 4.8
2026-07-02 12:32:04 +07:00
98dbdbd35b
Merge fix/trim-account-credentials: trim manual account creds
vasyansk and Claude Opus 4.8
2026-07-02 10:38:00 +07:00
79bd55aad8
fix(httpapi): trim whitespace on manually-added account login/password
vasyansk and Claude Opus 4.8
2026-07-02 10:38:00 +07:00
b8d1505329
Merge feat/confirm-modal: reusable modal + keyboard-driven confirm dialogs
vasyansk and Claude Opus 4.8
2026-07-02 09:36:08 +07:00
29ccbc22e9
feat(web): reusable Modal + ConfirmProvider, replace native confirm()
vasyansk and Claude Opus 4.8
2026-07-02 09:36:08 +07:00
fcbe438f32
Merge feat/crud-and-rich-log: CRUD deletes/edit + detailed event log
vasyansk and Claude Opus 4.8
2026-07-02 09:23:14 +07:00
b88f88c1a3
feat: delete task/account, edit endpoint, richer event log
vasyansk and Claude Opus 4.8
2026-07-02 09:23:14 +07:00
9019511d6f
Merge feat/csv-example-download: downloadable CSV example link
vasyansk and Claude Opus 4.8
2026-07-02 09:09:08 +07:00
647ea0dbbd
feat(web): replace CSV columns caption with downloadable example.csv link
vasyansk and Claude Opus 4.8
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 and Claude Opus 4.8
2026-07-02 09:04:33 +07:00
7eff28053a
fix(api): return empty arrays not null for empty lists (frontend null.length crash)
vasyansk and Claude Opus 4.8
2026-07-02 09:04:33 +07:00
d87a8c57ad
Merge feat/imap-copier-mvp: imap-copier MVP
vasyansk and Claude Opus 4.8
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 and Claude Opus 4.8
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 and Claude Opus 4.8
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 and Claude Opus 4.8
2026-07-01 19:04:46 +07:00
1a451f9dbb
feat(web): React SPA with realtime task detail over WebSocket
vasyansk and Claude Opus 4.8
2026-07-01 19:01:05 +07:00
4c57848c35
fix(httpapi): detect ws client disconnect via CloseRead to prevent subscriber leak
vasyansk and Claude Opus 4.8
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 and Claude Opus 4.8
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