hugo commented on issue hugo/DS4Server#17 2026-07-25 11:13:05 +00:00
Preference save silently discards the runtime update on a poisoned lock; poisoning conventions are inconsistent

Fixed in c77ef47. Preference saves now recover poisoned write locks with into_inner(), so a successful database/UI save always updates the runtime snapshot. The three tool-replay lock sites now…

hugo pushed to main at hugo/DS4Server 2026-07-25 11:12:57 +00:00
c77ef47cfc Recover poisoned shared-state locks
hugo closed issue hugo/DS4Server#16 2026-07-25 11:09:31 +00:00
Tokenizer panics on non-char-boundary offsets where the ds4 original degrades gracefully
hugo commented on issue hugo/DS4Server#16 2026-07-25 11:09:28 +00:00
Tokenizer panics on non-char-boundary offsets where the ds4 original degrades gracefully

Fixed in 292ee82. next_char, cjk_at, and char_info now use checked string access and the ds4-compatible one-byte fallback for non-boundary offsets; cjk_at also restores the ASCII fast path, and…

hugo pushed to main at hugo/DS4Server 2026-07-25 11:09:18 +00:00
292ee82af5 Make tokenizer byte offsets total
hugo closed issue hugo/DS4Server#15 2026-07-25 11:07:03 +00:00
build.rs does not track native/metal headers; stale object file can be linked after a header change
hugo commented on issue hugo/DS4Server#15 2026-07-25 11:06:59 +00:00
build.rs does not track native/metal headers; stale object file can be linked after a header change

Fixed in 7686c22. build.rs now tracks the entire native/metal directory, covering ds4_metal.m, all three current headers, and future vendored additions. Verified by touching ds4_gpu.h, ds4.h, and…

hugo pushed to main at hugo/DS4Server 2026-07-25 11:06:53 +00:00
7686c2248c Rebuild Metal glue when headers change
hugo closed issue hugo/DS4Server#14 2026-07-25 11:04:27 +00:00
Executor field order is load-bearing for teardown safety and undocumented
hugo commented on issue hugo/DS4Server#14 2026-07-25 11:04:23 +00:00
Executor field order is load-bearing for teardown safety and undocumented

Fixed in 3708afb. Executor now documents its safety-critical declaration/drop order: session buffers must precede Metal context teardown, and the model mmap must outlive context cleanup because…

hugo pushed to main at hugo/DS4Server 2026-07-25 11:04:17 +00:00
3708afb1b6 Document Metal executor drop order
hugo closed issue hugo/DS4Server#13 2026-07-25 11:02:40 +00:00
Buffer::view has no lifetime tie to its base buffer
hugo commented on issue hugo/DS4Server#13 2026-07-25 11:02:33 +00:00
Buffer::view has no lifetime tie to its base buffer

Fixed in 44fce65 using the issue's documented-invariant option. Buffer::view now carries a SAFETY contract naming native/metal/ds4_metal.m:7916-7940, including bounds checks, ARC retention of the…

hugo pushed to main at hugo/DS4Server 2026-07-25 11:02:22 +00:00
44fce6585c Document Metal buffer view ownership
hugo closed issue hugo/DS4Server#12 2026-07-25 11:00:46 +00:00
A panic on the model runtime thread permanently disables generation
hugo commented on issue hugo/DS4Server#12 2026-07-25 11:00:43 +00:00
A panic on the model runtime thread permanently disables generation

Fixed in 8f91a06. Each runtime command now runs behind a panic boundary; a panic fails that request, drops the loaded GPU generator, records failure/unload metrics, and leaves the worker alive for…

hugo pushed to main at hugo/DS4Server 2026-07-25 11:00:31 +00:00
8f91a06336 Recover the model runtime from panics
hugo closed issue hugo/DS4Server#11 2026-07-25 10:56:44 +00:00
HTTP endpoint spawns unbounded threads and has no total request or write deadline
hugo commented on issue hugo/DS4Server#11 2026-07-25 10:56:38 +00:00
HTTP endpoint spawns unbounded threads and has no total request or write deadline

Fixed in 9040070. The local endpoint now caps concurrent request threads at 64, releases slots structurally, enforces a 30 s total request deadline with 10 s per-I/O and write timeouts, reports…

hugo pushed to main at hugo/DS4Server 2026-07-25 10:56:30 +00:00
90400701fa Bound local HTTP resource use