extract jobkit-daemon library from poc-memory daemon

Create jobkit-daemon crate with generic daemon infrastructure:
- event_log: JSONL append with size-based rotation
- socket: Unix domain socket RPC client and server with signal handling
- status: JSON status file read/write

Migrate daemon.rs to use the library:
- Worker pool setup via Daemon::new()
- Socket loop + signal handling via Daemon::run()
- RPC handlers as registered closures
- Logging, status writing, send_rpc all delegate to library

Migrate tui.rs to use socket::send_rpc() instead of inline UnixStream.

daemon.rs: 1952 → 1806 lines (-146), old status_socket_loop removed.
tui.rs: socket boilerplate removed.

Co-Authored-By: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
ProofOfConcept 2026-03-14 02:40:30 -04:00
parent 35bc93c22b
commit 420a777eba
11 changed files with 696 additions and 293 deletions

13
Cargo.lock generated
View file

@ -1437,6 +1437,18 @@ dependencies = [
"serde_json",
]
[[package]]
name = "jobkit-daemon"
version = "0.4.0"
dependencies = [
"chrono",
"jobkit",
"libc",
"log",
"serde",
"serde_json",
]
[[package]]
name = "jobserver"
version = "0.1.34"
@ -1883,6 +1895,7 @@ dependencies = [
"crossterm",
"faer",
"jobkit",
"jobkit-daemon",
"libc",
"log",
"memmap2",