Skip to content

Extract doc-approval-core-rs: shared Rust crate for linux-gtk + cli-rust #73

Description

@enricopiovesan

Summary

Extract apps/doc-approval/doc-approval-core-rs/ — shared Rust crate for the Linux GTK4 and CLI doc-approval clients. Contains HTTP client, SSE stream consumer, session listing, command dispatch, output types, and server discovery.

Blocked on

Same as #70/#71. Implement alongside those.

Crate contents

apps/doc-approval/doc-approval-core-rs/
  Cargo.toml
  src/
    lib.rs
    client.rs       # send_command(session_id, command, payload)
    sse.rs          # subscribe_session_events(session_id) → Stream<StateEvent>
    sessions.rs     # list_sessions(state_filter) → Vec<SessionSummary>
    output.rs       # DocApprovalOutput types
    discovery.rs    # .traverse/server.json reader
  tests/

Definition of Done

  • list_sessions(state: Option<&str>) calls session listing endpoint, returns typed vec
  • send_command(session_id, command, payload) dispatches to named session
  • Unit tests: HTTP construction, SSE parsing, session listing parsing
  • linux-gtk and cli-rust both depend on this crate
  • No GTK or terminal UI imports — platform-neutral

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions