Route Codex approvals to Telegram
Force app-server turns to use the user approval reviewer so command approvals surface in the bot on Codex 0.134. Add focused protocol logs for approval requests and guardian review events to diagnose silent approval stalls.
This commit is contained in:
@@ -77,6 +77,12 @@ func TestClientWebSocketUnixJSONRPC(t *testing.T) {
|
||||
serverDone <- unexpectedMessage("thread/start", start["method"])
|
||||
return
|
||||
}
|
||||
startParams := start["params"].(map[string]any)
|
||||
if startParams["approvalsReviewer"] != "user" || startParams["approvalPolicy"] != "on-request" {
|
||||
payload, _ := json.Marshal(startParams)
|
||||
serverDone <- unexpectedMessage("thread/start approval params", string(payload))
|
||||
return
|
||||
}
|
||||
if err := conn.WriteJSON(map[string]any{
|
||||
"id": start["id"],
|
||||
"result": map[string]any{
|
||||
@@ -88,6 +94,26 @@ func TestClientWebSocketUnixJSONRPC(t *testing.T) {
|
||||
return
|
||||
}
|
||||
|
||||
var turnStart map[string]any
|
||||
if err := conn.ReadJSON(&turnStart); err != nil {
|
||||
serverDone <- err
|
||||
return
|
||||
}
|
||||
if turnStart["method"] != "turn/start" {
|
||||
serverDone <- unexpectedMessage("turn/start", turnStart["method"])
|
||||
return
|
||||
}
|
||||
turnParams := turnStart["params"].(map[string]any)
|
||||
if turnParams["approvalsReviewer"] != "user" || turnParams["approvalPolicy"] != "on-request" {
|
||||
payload, _ := json.Marshal(turnParams)
|
||||
serverDone <- unexpectedMessage("turn/start approval params", string(payload))
|
||||
return
|
||||
}
|
||||
if err := conn.WriteJSON(map[string]any{"id": turnStart["id"], "result": map[string]any{"turn": map[string]any{"id": "turn_1", "status": "running"}}}); err != nil {
|
||||
serverDone <- err
|
||||
return
|
||||
}
|
||||
|
||||
var readThread map[string]any
|
||||
if err := conn.ReadJSON(&readThread); err != nil {
|
||||
serverDone <- err
|
||||
@@ -174,6 +200,14 @@ func TestClientWebSocketUnixJSONRPC(t *testing.T) {
|
||||
if thread.ID != "thr_1" || thread.CWD != projectCWD {
|
||||
t.Fatalf("unexpected thread: %+v", thread)
|
||||
}
|
||||
turn, err := client.StartTurn(ctx, "thr_1", projectCWD, "", "", "workspace-write", []InputItem{{Type: "text", Text: "hello"}})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if turn.ID != "turn_1" {
|
||||
t.Fatalf("unexpected turn: %+v", turn)
|
||||
}
|
||||
|
||||
readThread, err := client.ReadThread(ctx, "thr_1")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
||||
Reference in New Issue
Block a user