fix qr decoding, spool edit dialog, and opus 5 token budget

This commit is contained in:
Ian Gulliver
2026-07-25 09:15:32 -07:00
parent 700b53d50c
commit 82b652d7e4
3 changed files with 107 additions and 22 deletions
+17 -2
View File
@@ -161,8 +161,8 @@ func readOnce(img image.Image, auth Auth) (float64, string, string, error) {
b64 := base64.StdEncoding.EncodeToString(buf.Bytes())
reqBody := map[string]interface{}{
"model": "claude-opus-4-8",
"max_tokens": 600,
"model": "claude-opus-5",
"max_tokens": 4000,
"messages": []map[string]interface{}{{
"role": "user",
"content": []map[string]interface{}{
@@ -185,7 +185,9 @@ func readOnce(img image.Image, auth Auth) (float64, string, string, error) {
req.Header.Set("anthropic-version", "2023-06-01")
auth.apply(req)
endPost := trace("claude.post")
resp, err := (&http.Client{Timeout: 90 * time.Second}).Do(req)
endPost()
if err != nil {
return 0, "", "", err
}
@@ -196,15 +198,28 @@ func readOnce(img image.Image, auth Auth) (float64, string, string, error) {
}
var parsed struct {
Content []struct {
Type string `json:"type"`
Text string `json:"text"`
} `json:"content"`
StopReason string `json:"stop_reason"`
Usage struct {
OutputTokens int `json:"output_tokens"`
} `json:"usage"`
}
if err := json.Unmarshal(respBody, &parsed); err != nil {
return 0, "", "", err
}
var text string
var blocks []string
for _, c := range parsed.Content {
text += c.Text
blocks = append(blocks, c.Type)
}
slog.Debug("claude reply", "stopReason", parsed.StopReason,
"blocks", strings.Join(blocks, ","), "outputTokens", parsed.Usage.OutputTokens)
if strings.TrimSpace(text) == "" {
return 0, "", "", fmt.Errorf("empty reply (stopReason %q, blocks %q, outputTokens %d)",
parsed.StopReason, strings.Join(blocks, ","), parsed.Usage.OutputTokens)
}
var wr struct {
Weight float64 `json:"weight"`