Summary
The Linux GTK4 and CLI Rust clients share identical HTTP + SSE client code. Extract a `traverse-core-rs` Rust crate that both binary targets depend on.
Depends on
Issues #54 (linux-gtk) and #55 (cli-rust) — implement alongside those, not after.
Blocked on
Same as #54/#55: Traverse #525–#527
Crate contents
```
apps/traverse-starter/traverse-core-rs/
Cargo.toml
src/
lib.rs
client.rs # reqwest HTTP: execute, poll, fetchTrace
sse.rs # SSE stream consumer: eventsource-stream
state.rs # AppState enum, StateEvent types
discovery.rs # .traverse/server.json reader
tests/
client_tests.rs
sse_tests.rs
```
Definition of Done
Summary
The Linux GTK4 and CLI Rust clients share identical HTTP + SSE client code. Extract a `traverse-core-rs` Rust crate that both binary targets depend on.
Depends on
Issues #54 (linux-gtk) and #55 (cli-rust) — implement alongside those, not after.
Blocked on
Same as #54/#55: Traverse #525–#527
Crate contents
```
apps/traverse-starter/traverse-core-rs/
Cargo.toml
src/
lib.rs
client.rs # reqwest HTTP: execute, poll, fetchTrace
sse.rs # SSE stream consumer: eventsource-stream
state.rs # AppState enum, StateEvent types
discovery.rs # .traverse/server.json reader
tests/
client_tests.rs
sse_tests.rs
```
Definition of Done