gateway Deribit: errore in envelope -> [] invece di errore; PlaceOrderReq senza time_in_force #1

Open
opened 2026-09-27 13:12:35 +00:00 by Adriano · 1 comment
Owner

ESITO: richiesta
RIF: gitea:Adriano/PythagorasGoal#19, gitea:Adriano/PythagorasGoal#26
COSA: due difetti del gateway Deribit di cerbero-mcp che il libro vivo PythagorasGoal non puo' correggere da solo.

  1. Errore Deribit in envelope (HTTP 400 + JSON error, es. 10028 too_many_requests, scope, auth): _request -> {"result": None} -> get_positions ritorna [] con HTTP 200; _parse_deribit_response solleva solo su 5xx. Il chiamante legge "flat" e ricompra il target sopra la posizione esistente. Serve: errore propagato (HTTP 5xx/4xx al client o campo error), mai [].
  2. PlaceOrderReq (src/cerbero_mcp/exchanges/deribit/tools.py:160-168) non ha time_in_force ne' extra="allow": un campo in piu' dal client viene ignorato in silenzio, gli ordini limit restano GTC. Serve: campo time_in_force passato a private/buy|sell.
    Inoltre (verifica fable): size delle posizioni esce in abs() (exchanges/deribit/client.py:381) con direction a parte; valutare un campo size_signed per non far dipendere il segno dal client (PythagorasGoal#17).
    PROVA: VERIFICATO da fable il 27/09 sul sorgente e con docker exec sull'immagine in esecuzione.
ESITO: richiesta RIF: gitea:Adriano/PythagorasGoal#19, gitea:Adriano/PythagorasGoal#26 COSA: due difetti del gateway Deribit di cerbero-mcp che il libro vivo PythagorasGoal non puo' correggere da solo. 1. Errore Deribit in envelope (HTTP 400 + JSON `error`, es. 10028 too_many_requests, scope, auth): `_request` -> `{"result": None}` -> `get_positions` ritorna `[]` con HTTP 200; `_parse_deribit_response` solleva solo su 5xx. Il chiamante legge "flat" e ricompra il target sopra la posizione esistente. Serve: errore propagato (HTTP 5xx/4xx al client o campo `error`), mai `[]`. 2. `PlaceOrderReq` (src/cerbero_mcp/exchanges/deribit/tools.py:160-168) non ha `time_in_force` ne' `extra="allow"`: un campo in piu' dal client viene ignorato in silenzio, gli ordini limit restano GTC. Serve: campo `time_in_force` passato a private/buy|sell. Inoltre (verifica fable): `size` delle posizioni esce in `abs()` (exchanges/deribit/client.py:381) con `direction` a parte; valutare un campo `size_signed` per non far dipendere il segno dal client (PythagorasGoal#17). PROVA: VERIFICATO da fable il 27/09 sul sorgente e con `docker exec` sull'immagine in esecuzione.
Adriano added the bug label 2026-09-27 13:12:35 +00:00
Author
Owner

ESITO: bloccato
ATTESA: decisione: correggere, spegnere il container o chiudere. VERIFICATO 11/10: il libro vivo di gitea:Adriano/TradingBook usa il gateway interno (src/gateway/deribit.py positions()/open_orders() chiamano _solleva_se_errore), TB_GATEWAY_HTTP non impostata in cron_book.sh: il difetto non tocca gli ordini veri

ESITO: bloccato ATTESA: decisione: correggere, spegnere il container o chiudere. VERIFICATO 11/10: il libro vivo di gitea:Adriano/TradingBook usa il gateway interno (src/gateway/deribit.py positions()/open_orders() chiamano _solleva_se_errore), TB_GATEWAY_HTTP non impostata in cron_book.sh: il difetto non tocca gli ordini veri
Adriano added the attesa:adriano label 2026-10-11 20:11:40 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Adriano/Cerbero-mcp#1