Order Management
Compiled RobotRoss knowledge page generated from RobotRoss source code, architecture notes, and operational documentation.
Order Management Subsystem
1. Role
The Order Management subsystem handles the communication with the external Salesman API to fetch new drawing orders and logs them locally.
2. Key Components
- Poller:
artist_poller.pyruns as a daemon and pollsGET /salesman/orders/incoming?status=newevery 3 minutes. - Client:
salesman_client.pyprovides the HTTP interface for fetching and acknowledging orders. - Local Ledger:
order_log.pymanagesorders.xlsx, keeping a local record of all completed jobs and their associated YouTube proof URLs.
3. Workflow
- Claiming: The poller identifies a new order, claims it via the API, and triggers
bob_ross.py. - Completion: Once
bob_ross.pyfinishes, the poller (orbob_ross.pyitself) notifies the Salesman API of completion and records the video proof URL.
4. Notes and Open Points
- Local vs Remote: The primary source of truth for orders is the Salesman API, but
orders.xlsxacts as a local mirror. There is no explicit documentation on how the system resolves discrepancies if the Salesman API is unavailable during a completion call. - Authentication: Authentication for the Salesman API uses a Bearer token stored in
.salesman_config. There's no documented procedure for token rotation.
Sources:
~/.openclaw/workspace/skills/robot-ross/artist_poller.py~/.openclaw/workspace/skills/robot-ross/order_log.py~/.openclaw/workspace/skills/robot-ross/salesman_client.py