@startuml skinparam backgroundColor #FFFFFF skinparam defaultFontName Arial skinparam defaultFontSize 14 skinparam shadowing false title Tessera — local process and thread deployment node "User computer" { artifact "Local agent client" as Agent node "Tessera desktop process" { node "GUI main thread\nwinit + softbuffer" as GUI node "tessera-agent-api\nHTTP receiver" as API node "tessera-endor-worker\nReplSession / Candidate / Aster heap" as Worker node "Input sender thread" as Input node "Lazy bounded I/O pool" as IO database "Arc>\nno VM handles in published frames" as State API --> Worker : bounded queue (8 pending) Worker --> State : commit document State --> GUI : native snapshots GUI --> Input : Input values Input --> API : loopback HTTP Worker <--> IO : mailbox / cancellation } node "System curl subprocess" as Curl artifact "OS window + pixel buffer" as Window Agent --> API : 127.0.0.1:4737 GUI --> Window IO --> Curl : fetchText transport } @enduml