28 Commits

Author SHA1 Message Date
slhx agent c793de8224 refactor(kanban): isolate legacy sync fixture
req: v1_release/002
2026-07-14 00:27:38 +02:00
slhx agent 5a82956c08 feat(sync): add typed acknowledgement effect
req: sync/006
2026-07-13 23:15:57 +02:00
slhx agent 88598f181f feat(sync): add typed presence projection
req: sync/001

req: sync/005
2026-07-13 23:03:46 +02:00
slhx agent 87296632bc feat(sync): add typed broadcast primitive
req: sync/004
2026-07-13 22:54:12 +02:00
slhx agent 98b00920b9 test(sync): audit browser recovery paths 2026-07-13 22:46:03 +02:00
slhx agent d2ae025e13 fix(operations): bound handler lifetimes
req: operations/003
2026-07-13 22:06:12 +02:00
slhx agent 2bc68c5777 fix(sync): bound acknowledgement stream
req: operations/004
2026-07-13 21:48:00 +02:00
slhx agent 3ac9549cc3 fix(security): bound untrusted wire decoding
req: security/005
2026-07-13 21:31:34 +02:00
slhx agent 2a8aa4c07f fix(sync): bound request lifetime
req: operations/003
2026-07-13 21:16:07 +02:00
slhx agent 6d502d8ff5 test(sync): prove deterministic reconciliation
req: sync/022
2026-07-13 21:08:51 +02:00
slhx agent f1dc6edb7a feat(kanban): expose redacted sync diagnostics
req: operations/001

req: security/002

req: sync/016
2026-07-13 20:07:21 +02:00
slhx agent fbc0c9db30 feat(kanban): retry explicit keep-local choice
req: sync/009

req: sync/010

req: sync/011

req: sync/016
2026-07-13 19:47:39 +02:00
slhx agent 54301c6aa5 feat(kanban): resolve divergent queue head
req: sync/010

req: sync/011
2026-07-13 19:31:40 +02:00
slhx agent 1ec8a1368d feat(kanban): authorize canonical sync reads
req: sync/007

req: auth/005

req: security/004
2026-07-13 19:22:13 +02:00
slhx agent 3ef84e7331 feat(kanban): partition local queues by account
req: sync/020

req: auth/005

req: security/004

req: operations/002
2026-07-13 19:00:04 +02:00
slhx agent 6de4dcb73b feat(kanban): reauthorize queued replay
req: sync/019

req: security/004

req: auth/005

req: operations/002
2026-07-13 18:18:52 +02:00
slhx agent a17de85b4f feat(kanban): migrate queued commands transactionally
req: sync/014
2026-07-13 18:06:47 +02:00
slhx agent 3ace17f9f1 feat(kanban): stop mixed queue on rejection
req: sync/009

req: sync/010
2026-07-13 17:53:53 +02:00
slhx agent 80f1ae155e feat(kanban): bound sync upload runs
req: sync/017
2026-07-13 17:48:47 +02:00
slhx agent 0d475e81c8 feat(kanban): coordinate uploader tabs
req: sync/018
2026-07-13 17:40:16 +02:00
slhx agent e4688bb6df test(kanban): prove divergent rebase conflict
req: sync/011
2026-07-13 17:04:10 +02:00
slhx agent d6aaca8127 feat(kanban): deterministically rebase snapshot
req: sync/011
2026-07-13 16:58:51 +02:00
slhx agent db57b0c474 feat(kanban): recover from missing sync history
req: sync/007\nreq: sync/020
2026-07-13 16:53:49 +02:00
slhx agent 5ea747d968 feat(kanban): recover after retry exhaustion
req: sync/004\nreq: sync/010\nreq: sync/011\nreq: sync/014\nreq: sync/016
2026-07-13 16:47:52 +02:00
slhx agent 0a7c380187 feat(kanban): persist canonical acknowledgements
req: sync/001\nreq: sync/005\nreq: sync/007\nreq: sync/008\nreq: sync/013
2026-07-13 16:41:18 +02:00
slhx agent 599d1b838d feat(kanban): upload pending command with retry
req: sync/004\nreq: sync/009\nreq: sync/010\nreq: sync/016\nreq: sync/017
2026-07-13 16:32:44 +02:00
slhx agent 687c64d078 feat(kanban): acknowledge idempotent server command
req: sync/001\nreq: sync/005\nreq: sync/006\nreq: sync/007\nreq: sync/008\nreq: sync/012\nreq: sync/013
2026-07-13 16:02:19 +02:00
slhx agent 1d194e0f23 test(kanban): prove server-first asset isolation
req: performance/006
2026-07-13 15:50:35 +02:00