slhx agent
e7ca6d2350
test(wasm): close mutation package gate
...
Run browser-backed mutest sequentially without a parent jobserver, disable Firefox background work, batch replay projections while preserving ordered application, and elect a 250 ms budget for the durable 64-command browser fixture. All four hemx-wasm shards pass with 59 mutants and no survivors, closing the mutation matrix.
req: test/004
req: test/020
req: test/021
req: performance/005
req: performance/007
req: v1_release/006
2026-07-17 17:11:19 +02:00
slhx agent
a04773d016
fix(deps): replace retired transitive crates
2026-07-14 09:44:19 +02:00
slhx agent
025d9c1563
fix(release): restore canonical local gate
...
req: public_api/001
req: v1_release/007
2026-07-14 01:24:31 +02:00
slhx agent
c793de8224
refactor(kanban): isolate legacy sync fixture
...
req: v1_release/002
2026-07-14 00:27:38 +02:00
slhx agent
3bad745da9
feat(sync): replay durable projections from Rust
...
req: ms/001
req: ms/002
req: ms/003
2026-07-14 00:17:20 +02:00
slhx agent
2a74a28d3b
test(kanban): prove multiplayer milestone journey
...
req: ms/001
req: ms/002
req: ms/003
2026-07-13 23:51:51 +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
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
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
7be1c9c649
feat(build): make generated page helper canonical
...
Move canonical examples and docs snippets from raw render/page calls to generated ui::page helpers, hide generated render behind doc(hidden), and let form resources participate in generated target inspection for tests.
req: canonical_authoring/005
req: dx/006
req: codegen/002
req: public_api/002
req: test/001
2026-06-12 07:31:39 +02:00
slhx agent
ce4c2e086d
feat(axum): expose hashed runtime asset path
...
Generate a SHA-256 content hash for the embedded hemx runtime, expose the hashed path from hemx-axum, serve immutable runtime headers, and update examples to load the hemx-owned path instead of fixed /hemx.js URLs.
req: axum_integration/005
2026-06-05 18:27:38 +02:00
slhx agent
53480dba5a
feat(hemx): clarify generated authoring path
...
Close the fallible handler and example coherence slice: v0 uses typed todo newtypes, Result handler failure mapping, generated form/partial helpers, and page composition; kanban is explicitly marked as an advanced north-star milestone; raw render is isolated behind hemx::advanced::render.
req: canonical_authoring/003
req: failure/004
req: public_api/005
req: examples/004
2026-06-05 08:36:39 +02:00
slhx agent
c33500440e
refactor!: rename slhx to hemx
...
Rename the tracked product identity, crate/package names, Rust paths/macros, generated artifacts, runtime files, public attributes, examples, docs, requirements, and tests from slhx to hemx without compatibility shims.
Verified with cargo run -p hemx-xtask -- test, cargo test -p hemx-derive --test compile_fail, cargo test -p hemx-js, cargo test -p hemx-axum, cargo test -p hemx-v0-examples, cargo check --workspace, redgate list, redgate refs, redgate health --strict, git diff --check, and git grep/ls-files legacy-name audits.
req: misc/001
req: codegen/001
req: component/004
req: runtime/001
2026-06-05 06:52:37 +02:00
slhx agent
d4e865ef92
feat(api): streamline generated app authoring
...
Move the canonical examples toward generated component-root helpers, typed form decoding, async/state handler registration, and derive-driven app/component registry wiring. Tighten requirements and diagnostics for the server-first, selectorless authoring path.
Verified with cargo run -p slhx-xtask -- test, cargo check --workspace, redgate list, redgate refs, redgate health --strict, and git diff --check.
req: canonical/001
req: canonical/003
req: canonical/004
req: dx/002
req: derive_app/001
req: component/003
req: form/004
req: axum_integration/003
2026-06-05 06:33:41 +02:00
slhx agent
795abdbc81
test(examples): guard low-level docs wording
...
Keep beginner example docs on target objects and tuple IntoEffect responses instead of runtime lowering/application wire vocabulary.
req: dx/006
req: examples/003
2026-06-02 07:27:23 +02:00