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 |
|