Support Codex app-server 0.133
This commit is contained in:
@@ -1657,6 +1657,19 @@ func (b *Bot) handleCodexNotification(ctx context.Context, event codexapp.Event)
|
||||
}
|
||||
return b.store.SyncThreadTitleByCodexID(ctx, params.ThreadID, title)
|
||||
}
|
||||
case "thread/settings/updated":
|
||||
var params struct {
|
||||
ThreadID string `json:"threadId"`
|
||||
ThreadSettings struct {
|
||||
CWD string `json:"cwd"`
|
||||
} `json:"threadSettings"`
|
||||
}
|
||||
if err := json.Unmarshal(event.Params, ¶ms); err != nil {
|
||||
return err
|
||||
}
|
||||
if params.ThreadID != "" {
|
||||
return b.syncThreadWorkspaceFromCWD(ctx, params.ThreadID, params.ThreadSettings.CWD)
|
||||
}
|
||||
case "serverRequest/resolved":
|
||||
var params struct {
|
||||
ThreadID string `json:"threadId"`
|
||||
@@ -1667,6 +1680,34 @@ func (b *Bot) handleCodexNotification(ctx context.Context, event codexapp.Event)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (b *Bot) syncThreadWorkspaceFromCWD(ctx context.Context, codexThreadID, cwd string) error {
|
||||
thread, err := b.store.GetThreadByCodexID(ctx, codexThreadID)
|
||||
if err != nil {
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
}
|
||||
workspace, ok, err := b.workspaceForCodexCWD(ctx, cwd)
|
||||
if err != nil || !ok {
|
||||
return err
|
||||
}
|
||||
if workspace.ID == thread.WorkspaceID {
|
||||
return nil
|
||||
}
|
||||
if err := b.store.SyncThreadWorkspace(ctx, thread.TelegramUserID, thread.ID, workspace.ID); err != nil {
|
||||
return err
|
||||
}
|
||||
session, err := b.store.GetSession(ctx, thread.TelegramUserID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if session.ActiveThreadID == thread.ID {
|
||||
return b.store.SetSessionWorkspace(ctx, thread.TelegramUserID, workspace.ID)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (b *Bot) handleCodexServerRequest(ctx context.Context, event codexapp.Event) error {
|
||||
if event.ID == nil {
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user