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
34728b9a35
feat(sync): add typed flat patch boundary
...
req: sync/002
req: sync/003
2026-07-13 21:02:43 +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
slhx agent
978bf67a2c
feat(kanban): expose queued persistence state
...
req: accessibility/004\nreq: client_local/013\nreq: performance/003
2026-07-13 15:40:34 +02:00
slhx agent
9b80444484
fix(kanban): recover from quota exhaustion
...
req: sync/015
2026-07-13 15:31:07 +02:00
slhx agent
bf10d1e3ce
feat(kanban): bound durable replay
...
req: sync/014\nreq: performance/005
2026-07-13 15:20:00 +02:00
slhx agent
54b706b706
fix(kanban): recover malformed commands
...
req: sync/015
2026-07-13 15:15:40 +02:00
slhx agent
47715e3ba3
fix(kanban): fail closed on persistence errors
...
req: sync/015
2026-07-13 15:11:08 +02:00
slhx agent
d946975f2d
feat(kanban): add local recovery controls
...
req: local/003\nreq: security/007
2026-07-13 14:59:05 +02:00
slhx agent
9a3c0335eb
feat(kanban): restore commands offline
...
req: local/001\nreq: local/002\nreq: local/003\nreq: local/004
2026-07-13 14:52:51 +02:00
slhx agent
7298405e27
feat(kanban): persist local reorder commands
...
req: local/001\nreq: local/002\nreq: local/003\nreq: local/004\nreq: sync/009
2026-07-13 14:45:22 +02:00
slhx agent
7eb65d77c8
feat(kanban): prove accessible local reorder
...
req: client_local/013\nreq: accessibility/002\nreq: accessibility/003\nreq: accessibility/004\nreq: accessibility/006\nreq: milestone/001
2026-07-13 14:29:21 +02:00
slhx agent
dd5ea0827f
feat(wasm): suppress stale client completions
...
req: client_local/011\nreq: client_local/012\nreq: operations/003
2026-07-13 13:21:48 +02:00
slhx agent
ac525fe572
feat(build): generate client handler bootstrap
...
req: client_local/001\nreq: client_local/004\nreq: client_local/006\nreq: client_local/007\nreq: client_local/008\nreq: client_local/009\nreq: client_local/010\nreq: client_local/014\nreq: security/002\nreq: security/006\nreq: v1_release/001\nreq: v1_release/008
2026-07-13 13:02:29 +02:00
slhx agent
38eae79a2f
feat(wasm): validate client event and state ABI
...
req: client_local/005\nreq: client_local/006\nreq: client_local/007\nreq: client_local/008\nreq: client_local/009\nreq: client_local/010\nreq: client_local/014
2026-07-13 12:42:31 +02:00
slhx agent
40643e360d
feat(wasm): execute client handlers without requests
...
req: client_local/001\nreq: client_local/004\nreq: client_local/005\nreq: client_local/009\nreq: client_local/010\nreq: client_local/014\nreq: v1_release/001
2026-07-13 12:33:54 +02:00
slhx agent
0ca48923f5
test(browser): use owned process harness
2026-07-13 10:24:36 +02:00
slhx agent
7259dd6e33
feat(test): own process startup and cleanup
2026-07-13 10:18:01 +02:00
slhx agent
6b4bb97aaa
feat(test): bind text assertions to targets
2026-07-13 10:07:40 +02:00
slhx agent
e70c863da7
feat(test): diagnose failed effect assertions
2026-07-13 10:02:11 +02:00
slhx agent
ecbdea5cd0
feat(axum): support axum 0.8 applications
...
Upgrade the integration crate and examples to Axum 0.8 and use the native async extractor traits while preserving hemx routing, request, runtime, and effect behavior.
req: axum/002
2026-07-13 09:26:32 +02:00
slhx agent
65895d8b83
fix(workspace): clear strict lint and test debt
2026-07-13 08:59:48 +02:00
slhx agent
d0e7022c86
feat(runtime): add URL-state GET navigation
2026-06-29 18:21:00 +02:00
slhx agent
379ed02f88
fix(html-examples): make progress click-driven
...
Remove interval auto-ticking from the progress example, render visible percentage text next to the native progress element, and update smoke coverage to assert explicit click behavior.
req: htmx_equivalents/001
req: examples/001
req: test/006
2026-06-26 07:47:07 +02:00
slhx agent
d7cf6fe9f6
test(html-examples): cover interval progress path
...
Exercise the data-hemx-interval trigger path through the progress-bar example and browser smoke while clearing stale timers before each smoke run.
req: convention/005
req: convention/011
req: test/006
2026-06-25 18:58:10 +02:00
slhx agent
18af9d6eee
fix(html-examples): keep keyed search helper local
...
Inline keyed search reconciliation so the public examples contract does not see low-level advanced primitives while preserving remove/replace/append behavior.
req: list/006
req: examples/001
2026-06-25 18:50:19 +02:00
slhx agent
6e6efa0012
test(html-examples): reconcile keyed search rows
...
Make the active-search example use a safer keyed reconciliation path for filtered rows: remove filtered-out keys, replace retained keys, and append newly visible keys.
req: list/006
req: htmx_equivalents/001
req: examples/001
2026-06-25 18:24:35 +02:00
slhx agent
3be6bceea4
docs(requirements): split milestone row
...
Add explicit northstar ring fields to milestone requirements and split the kanban milestone into focused obligations.
req: milestone/001
req: milestone/002
req: milestone/003
2026-06-25 17:36:39 +02:00
slhx agent
691c6f009a
fix(html-examples): tighten email and progress feedback
...
Require a complete dotted email before inline validation reports success, preserve the typed email after valid revalidation, and update progress via the actual progress element so visible progress is not stuck at 100%.
req: htmx_equivalents/005
req: examples/001
req: test/006
2026-06-25 16:53:12 +02:00