Commit Graph

207 Commits

Author SHA1 Message Date
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
slhx agent ad7eea6f67 test(html-examples): make lazy load visibly update
Show a server-update count in the lazy panel so manual clicks have an observable change, and strengthen the browser smoke to assert the panel text changes.

req: examples/001

req: htmx_equivalents/005

req: test/006
2026-06-25 14:51:01 +02:00
slhx agent 120268acc1 docs(requirements): split htmx equivalent coverage
Split htmx_equivalents/002 into core interaction, navigation/live-update, gallery, and component-shape rows.

req: htmx_equivalents/002

req: htmx_equivalents/004

req: htmx_equivalents/005

req: htmx_equivalents/006
2026-06-25 13:53:15 +02:00
slhx agent acddea21ee fix(examples): repair html dynamic partial interactions
Preserve data-hemx-revealed through hemx-build and make html_examples lazy/load-more/infinite/search interactions return server-driven partial updates with regression coverage.

req: convention/005

req: htmx_equivalents/002

req: examples/001
2026-06-25 12:56:43 +02:00
slhx agent 3b14bb57ca chore(examples): make html-examples port configurable via env
req: examples/001
2026-06-23 15:55:52 +02:00
slhx agent 3fdcc6e3ff fix(examples): trigger inline validation on input events
req: runtime/005

req: examples/001
2026-06-23 15:30:58 +02:00
slhx agent 329f16aebf fix(build): dispatch slot targets to matching component render/put
req: runtime/005

req: examples/001

req: htmx_equivalents/001
2026-06-23 15:06:08 +02:00
slhx agent cfa4502748 style(html_examples): clean htmx-like shell with no low-level plumbing
- Move CSS out of app_shell.heml into app.css served by the app.
- Remove direct hemx::advanced::Effect import from example code; rely on IntoEffect.
- Update README to not mention raw Effect:: APIs.
- Keep generated resources and tiny runtime behavior only.

req: examples/001
req: htmx_equivalents/001
req: htmx_equivalents/002
2026-06-23 11:25:59 +02:00