|
| 1 | +# Issue triage after v0.5.5 |
| 2 | + |
| 3 | +## Scope |
| 4 | + |
| 5 | +- Baseline release: `v0.5.5` |
| 6 | +- Baseline issue: `#1238` (`fix(models): preserve GPT relay reasoning effort`) |
| 7 | +- Initial GitHub snapshot: 2026-09-01, issues `#1239` through `#1290` |
| 8 | +- Snapshot size: 42 issues (30 open, 12 closed); pull requests are excluded |
| 9 | +- Final GitHub rescan: 2026-09-01; no issue above `#1290` |
| 10 | +- Policy: do not change GitHub issue state or labels during this work. A confirmed |
| 11 | + fix or accepted small feature is complete only after its isolated session has been |
| 12 | + verified and merged into local `main`. |
| 13 | + |
| 14 | +## Outcome |
| 15 | + |
| 16 | +- 12 issues were already closed upstream and required no local change. |
| 17 | +- 10 issue reports were handled by 8 isolated implementations and merged into local |
| 18 | + `main`; duplicate reports `#1272` and `#1288` are covered by the `#1271` repair. |
| 19 | +- 20 open issues were deferred because they could not be reproduced on macOS, lacked |
| 20 | + enough evidence for a safe fix, were already supported, or were not very small |
| 21 | + features. Their evidence and deferral reasons are recorded below. |
| 22 | + |
| 23 | +## Tracking |
| 24 | + |
| 25 | +| Issue | Upstream state | Triage | macOS reproduction | Isolated session | Local main | |
| 26 | +| --- | --- | --- | --- | --- | --- | |
| 27 | +| #1239 | open | Deferred: provider/configuration plus insufficient evidence | Current behavior maps semantic context overflow correctly; reported ambiguous 404 not reproduced as a product defect | Not needed | No change | |
| 28 | +| #1240 | open | Confirmed product Bug | Reproduced on current `main`: Markdown images are removed from prose and collected at the end | `01a05d06-041e-7182-88db-5f3156d1119b`, commit `a1ddc2734` | Merged as `b1ecce781` | |
| 29 | +| #1242 | closed | Already closed upstream | Not needed | Not needed | No change | |
| 30 | +| #1243 | closed | Already closed upstream | Not needed | Not needed | No change | |
| 31 | +| #1244 | closed | Already closed upstream | Not needed | Not needed | No change | |
| 32 | +| #1245 | open | Current `main` already contains the relevant Windows/chat scroll fixes; awaiting reporter confirmation | Current macOS tests pass; old Windows-only behavior cannot be reproduced on macOS | Not needed | No change | |
| 33 | +| #1246 | closed | Already closed upstream | Not needed | Not needed | No change | |
| 34 | +| #1247 | open | Deferred: incomplete usage question, no environment or reproduction | Not reproducible from supplied information | Not needed | No change | |
| 35 | +| #1251 | closed | Already closed upstream | Not needed | Not needed | No change | |
| 36 | +| #1252 | closed | Already closed upstream | Not needed | Not needed | No change | |
| 37 | +| #1253 | closed | Already closed upstream; fixed in v0.5.5 | Not needed | Not needed | No change | |
| 38 | +| #1254 | open | Deferred: suspected Bug but insufficient provider/runtime evidence | Full repeated plan/approve/re-enter sequence completed on current `main` without truncation | Not needed | No change | |
| 39 | +| #1255 | closed | Already closed upstream | Not needed | Not needed | No change | |
| 40 | +| #1256 | open | Deferred: current code already supports per-session Qwen reasoning effort; report lacks protocol/runtime details | Loopback Qwen-compatible upstream received `reasoning_effort=high` and completed | Not needed | No change | |
| 41 | +| #1257 | closed | Already closed upstream | Not needed | Not needed | No change | |
| 42 | +| #1259 | closed | Already closed upstream | Not needed | Not needed | No change | |
| 43 | +| #1260 | open | Deferred: v0.5.4 hang path is covered by v0.5.5 watchdog fix; current report lacks response/log evidence | Current truncated-tool stream terminates within configured bounds | Not needed | No change | |
| 44 | +| #1261 | open | Deferred: empty report and current `main` cannot reproduce the title-only scroll failure | Nine real Bash/permission cycles retained auto-follow and manual scrolling in isolated macOS UI | Not needed | No change | |
| 45 | +| #1262 | closed | Already closed upstream | Not needed | Not needed | No change | |
| 46 | +| #1263 | open | Deferred: product usage question rather than a reported defect or scoped feature | Not needed | Not needed | No change | |
| 47 | +| #1264 | open | Confirmed Telegram delivery Bug | Reproduced with production buffer/formatter and injected 429: visible reply truncates while delivery state is cleared | `01a05d09-acbb-7163-9c62-a57fed65e4ba`, commit `ba4ecf47b` | Merged as `c0f3318d9` | |
| 48 | +| #1266 | open | Confirmed retry-message clarity Bug | Reproduced through current retry conversion and JSDOM: `rate_limit` is shown only as HTTP 429 plus 13570 raw seconds | `01a05d0d-acc9-70d2-8782-3c5fc5dbd1d1`, commit `b7e7674a5` | Merged as `ee1efaff0` | |
| 49 | +| #1268 | open | Deferred: multi-harness support is an XL cross-layer feature, not a small feature | Not applicable | Not needed | No change | |
| 50 | +| #1269 | open | Confirmed DeepSeek reasoning round-trip Bug | Reproduced through proxy + loopback: generic host drops `reasoning_content` and upstream returns 400 | `01a05d12-b0a8-7313-8611-1f59c5758ed0`, commit `2806f750e` | Merged as `ece7c54c4` | |
| 51 | +| #1270 | open | Deferred: evidence points to Tencent iLink/mobile account authorization; repository defect not demonstrated | Local old-protocol QR/status flow works; real mobile authorization intentionally not attempted | Not needed | No change | |
| 52 | +| #1271 | open | Confirmed tool-input watchdog regression | Time-compressed macOS stream is aborted despite continuous valid `input_json_delta` progress | `01a05d12-591a-7d22-bb63-cd94d02a97d2`, commit `c6679afea` | Merged as `5eecf5cbc` | |
| 53 | +| #1272 | open | Duplicate Bug: same watchdog signature and root cause as #1271 | Reproduced same progressing-stream false positive | Covered and verified by #1271 session | Fixed by `5eecf5cbc` | |
| 54 | +| #1273 | open | Accepted small feature: expose existing conversation-only rewind for pure-chat/error turns | Not applicable | `01a05d18-15cd-7af0-94ba-1b1e654bc14e`, commit `65d0e6a0a` | Merged as `aa237f2c2` | |
| 55 | +| #1274 | open | Deferred: already supported via global attribution settings; usage/discoverability question | Not applicable | Not needed | No change | |
| 56 | +| #1275 | open | Deferred: 600-second total stream cap is an intentional anti-drip protection; configurability needs product scope | Short-cap macOS loopback terminates a healthy long-thinking stream; a raised cap allows the same stream to complete | Not needed | No change | |
| 57 | +| #1277 | open | Confirmed Computer Use image conversion Bug | Reproduced through real proxy chain: Chat drops tool-result images while Responses preserves them | `01a05d1f-0c7d-7610-8414-3833e9ecf76d`, commit `e8b74a8dd` | Merged with #1269 conflict resolution as `cf9d6c41a` | |
| 58 | +| #1279 | open | Deferred: Anthropic Base URL was configured with `/v1`; current root-URL behavior is correct | Root URL produces `/v1/messages`; user-supplied `/v1` produces `/v1/v1/messages` | Not needed | No change | |
| 59 | +| #1280 | closed | Already closed upstream; empty report | Not needed | Not needed | No change | |
| 60 | +| #1281 | open | Deferred: partial transcript deletion is a high-risk persisted graph rewrite, not a small feature | Not applicable | Not needed | No change | |
| 61 | +| #1283 | open | Confirmed GLM 5.3 reasoning-capability Bug | Real CLI→loopback sends invalid adaptive thinking and reproduces 400/1210; required thinking succeeds | `01a05d25-6bf2-7f10-8e4a-14bdb0e28ae3`, commit `c59a551c9` | Merged as `8d8169ea7` | |
| 62 | +| #1284 | open | Deferred: suspected Windows-specific 5k-row virtualization/painting issue; macOS cannot reproduce | Real macOS UI loaded 5,427 durable rows and scrolled mid/top during active task without blank content | Not needed | No change | |
| 63 | +| #1285 | open | Deferred: unreviewed high-risk third-party plugin plus a large runtime feature | Not applicable | Not needed | No change | |
| 64 | +| #1286 | open | Deferred: Telegram already has `/resume`; unspecified all-IM parity is a cross-adapter medium feature | Not applicable | Not needed | No change | |
| 65 | +| #1287 | open | Deferred: no 30-day cutoff; older sessions are grouped under Earlier/search, while the real 400-item cap needs pagination | Related fixtures and sidebar/store/search tests pass | Not needed | No change | |
| 66 | +| #1288 | open | Duplicate Bug: same progressing tool-input watchdog root cause as #1271/#1272 | Reproduced with continuous deltas at a compressed timeout | Covered and independently reverified against #1271 commit | Fixed by `5eecf5cbc` | |
| 67 | +| #1289 | open | Deferred: Windows-only clipboard/virtualization candidate; macOS cannot reproduce | Real active-task UI copied prompt/reply correctly both before and after virtualization | Not needed | No change | |
| 68 | +| #1290 | open | Deferred: already configurable through `CLAUDE_CODE_MAX_OUTPUT_TOKENS`; dedicated per-model UI is not a small feature | Isolated evaluation confirms 16K override and 64K custom-model cap | Not needed | No change | |
| 69 | + |
| 70 | +## Deferred details |
| 71 | + |
| 72 | +### #1239 |
| 73 | + |
| 74 | +The current code preserves upstream error bodies and classifies known context-overflow |
| 75 | +signals before generic HTTP 404 model errors. An offline macOS loopback reproduction |
| 76 | +confirmed that semantic overflow responses become `Prompt is too long`, while a bare |
| 77 | +404 remains a model-routing error. The report used an explicit 1,000,000-token Luna |
| 78 | +configuration and did not include the raw upstream 404 response, runtime commit, |
| 79 | +normalized provider configuration, or auto-compact state. Reinterpreting every 404 as |
| 80 | +context overflow would introduce false positives, so no safe product change is justified. |
| 81 | + |
| 82 | +### #1245 |
| 83 | + |
| 84 | +The report is from Windows desktop v0.5.3. The current branch includes the v0.5.4 |
| 85 | +Windows chat-rendering fix and the v0.5.5 virtual-row stabilization. Long transcript, |
| 86 | +history-window, send-to-bottom, tab restore, and subagent-return tests all pass on macOS. |
| 87 | +The issue has no steps, screenshot, DPI/scale, or current-version confirmation, so no |
| 88 | +additional fix can be scoped safely. |
| 89 | + |
| 90 | +### #1254 |
| 91 | + |
| 92 | +An isolated macOS run exercised plan mode, approval, implementation, a second plan-mode |
| 93 | +entry, a second approval, and a second implementation in the same session. All four |
| 94 | +turns completed and all permission transitions were acknowledged. The report does not |
| 95 | +identify the provider, model, prompt, last tool call, event ID, diagnostic output, or |
| 96 | +whether the upstream stream ended early, so the current code path cannot be implicated. |
| 97 | + |
| 98 | +### #1256 |
| 99 | + |
| 100 | +Current `main` gives unknown Qwen models the generic reasoning profile and passes the |
| 101 | +selected session effort through `output_config.effort` to OpenAI Chat |
| 102 | +`reasoning_effort`. A macOS loopback reproduction captured `qwen3.8` with |
| 103 | +`reasoning_effort=high` and a successful response. The report omits provider format, |
| 104 | +local inference server/version, request trace, expected upstream field, and error body; |
| 105 | +nonstandard servers that require a different field are an upstream protocol detail. |
| 106 | + |
| 107 | +### #1247 |
| 108 | + |
| 109 | +The issue body contains no description, environment, steps, logs, screenshot, or version. |
| 110 | +The only comment repeats that pasted Feishu text has no line breaks, and the maintainer |
| 111 | +requested a screenshot that was never supplied. |
| 112 | + |
| 113 | +### #1263 |
| 114 | + |
| 115 | +This asks whether project-memory indexing exists; it does not report broken behavior or |
| 116 | +describe a bounded requested change. |
| 117 | + |
| 118 | +### #1261 |
| 119 | + |
| 120 | +The body is an entirely empty template. An isolated macOS desktop run completed nine |
| 121 | +real Bash permission cycles while preserving bottom follow, manual wheel scrolling, |
| 122 | +the Latest control, and follow after returning to the bottom. The current MessageList |
| 123 | +suite also passes. No recording, exact interaction sequence, window dimensions, tool |
| 124 | +expansion state, or diagnostic event identifies a different transition to fix. |
| 125 | + |
| 126 | +### #1268 |
| 127 | + |
| 128 | +Supporting Pi, DSH, and other harnesses requires a runtime-driver abstraction, event and |
| 129 | +permission translation, alternate session persistence/indexing, capability-gated UI, |
| 130 | +packaging, migrations, and deterministic contracts. The issue defines neither a first |
| 131 | +harness nor a feature-parity boundary. DSH's current public SDK also lacks key desktop |
| 132 | +control capabilities such as cancellation/close, approval round-trips, and protocol |
| 133 | +version negotiation. This should be split into an RFC and a single-harness MVP rather |
| 134 | +than implemented as a small issue. |
| 135 | + |
| 136 | +### #1260 |
| 137 | + |
| 138 | +The report is from v0.5.4 and supplies no provider, response, retry header, log, event ID, |
| 139 | +or repeatable steps. Current `main` includes the v0.5.5 truncated-tool watchdog and |
| 140 | +correctly transitions a terminal stream error to idle/error. A separate simulated |
| 141 | +`429 Retry-After: 3600` does reveal a possible long-wait risk, but the issue contains no |
| 142 | +evidence connecting its GLM Coding Plan run to that path, so changing retry policy here |
| 143 | +would be speculative. |
| 144 | + |
| 145 | +### #1270 |
| 146 | + |
| 147 | +The repository passes the official iLink QR URL through unchanged and the local |
| 148 | +wait/expired flow works with a mocked official endpoint. A matching report also exists |
| 149 | +against Tencent's official plugin, including terminal QR rendering, which points toward |
| 150 | +account eligibility, rollout, risk control, or the phone-side network path. This issue |
| 151 | +has no polling result, decoded hostname, prior bot-binding history, screenshot, request |
| 152 | +ID, or account/network A/B evidence. Real WeChat authorization was intentionally not |
| 153 | +attempted. The repository's older login protocol is an adjacent compatibility gap, but |
| 154 | +the same symptom occurs with Tencent's current protocol and therefore cannot be assigned |
| 155 | +as this issue's cause. |
| 156 | + |
| 157 | +### #1272 |
| 158 | + |
| 159 | +The report has the same `input_json_delta`, `tool_use`, and exact 120-second termination |
| 160 | +signature as #1271, with larger delta counts but no distinct trigger or acceptance rule. |
| 161 | +It is covered only if the #1271 repair allows continuously progressing input to complete |
| 162 | +past the old absolute limit while still terminating a truly stalled/no-stop stream. |
| 163 | + |
| 164 | +### #1274 |
| 165 | + |
| 166 | +The title's request is already supported for Bash commits, `/commit`, and |
| 167 | +`/commit-push-pr` through the global `~/.claude/settings.json` setting |
| 168 | +`{"attribution":{"commit":""}}`. The deprecated `includeCoAuthoredBy: false` also |
| 169 | +works. A desktop toggle could improve discoverability, but the issue does not request a |
| 170 | +UI and the behavior itself needs no code change. |
| 171 | + |
| 172 | +### #1275 |
| 173 | + |
| 174 | +The ten-minute total stream cap is intentionally separate from the idle timer so a |
| 175 | +provider cannot keep a response alive forever by dripping events. It is already |
| 176 | +overrideable by process environment, but desktop has no dedicated setting. Removing or |
| 177 | +resetting the cap on every delta would regress the earlier infinite-drip failure; adding |
| 178 | +a persisted UI setting requires product limits and migration work that this issue does |
| 179 | +not define. |
| 180 | + |
| 181 | +### #1279 |
| 182 | + |
| 183 | +The Anthropic SDK expects a root Base URL and appends `/v1/messages`. The issue's doubled |
| 184 | +path is reproduced only when the supplied Base URL already ends in `/v1`; the provider |
| 185 | +UI and documentation already say to use the address before `/v1`. Silently stripping |
| 186 | +the suffix would break gateways where `/v1` is a legitimate path prefix. A future narrow |
| 187 | +UX validation could warn, but the current report does not demonstrate a runtime defect. |
| 188 | + |
| 189 | +### #1281 |
| 190 | + |
| 191 | +Deleting an interior message while retaining later turns requires atomic transcript |
| 192 | +graph rewriting, `parentUuid` repair, full tool-use/result pairing, compaction-boundary |
| 193 | +rules, runtime quiescence, search/index refresh, backup/recovery, and a product decision |
| 194 | +between tombstones and physical deletion. Editing only user or assistant text can create |
| 195 | +invalid API history. The existing rewind safely removes a suffix; it is not an interior |
| 196 | +delete primitive. |
| 197 | + |
| 198 | +### #1285 |
| 199 | + |
| 200 | +The external plugin is new, has no CI or established release history, and intercepts all |
| 201 | +provider traffic while rewriting provider Base URLs and copying credentials into runtime |
| 202 | +state. Listing it as recommended would imply a security endorsement. Its proposed native |
| 203 | +two-stage tool policy is not equivalent to existing Tool Search and would require a new |
| 204 | +per-turn runtime state machine across retries, resume, compaction, subagents, concurrent |
| 205 | +sessions, cache identity, persistence, and UI. No reproducible benchmark is supplied. |
| 206 | + |
| 207 | +### #1286 |
| 208 | + |
| 209 | +Telegram has supported `/resume` since June 2026 and its related tests pass. Feishu, |
| 210 | +DingTalk, WeChat, and WhatsApp do not expose it. The issue names no platform, so it is |
| 211 | +either an already-supported usage question or an all-adapter parity project involving |
| 212 | +shared selection state, platform-specific two-level UX, atomic session switching, |
| 213 | +expiry/pagination, and security filtering. That is not a very small feature. |
| 214 | + |
| 215 | +### #1284 |
| 216 | + |
| 217 | +The report shows a 5,427-message Windows 10 transcript becoming blank only while a task |
| 218 | +runs. An isolated macOS UI loaded the same durable row count, held a real permission |
| 219 | +request open, and scrolled to the middle and top with painted rows throughout; a very |
| 220 | +tall live stream also remained scrollable. No macOS reproduction means the required Bug |
| 221 | +gate is not met. Windows DPI/ResizeObserver and spacer painting remain hypotheses, not a |
| 222 | +safe fix, until a recording, build/scale/window details, and a sanitized transcript |
| 223 | +shape are available. |
| 224 | + |
| 225 | +### #1287 |
| 226 | + |
| 227 | +Neither v0.5.5 nor current `main` discards sessions at 30 days. v0.5.5 groups by project |
| 228 | +with an expand action; current `main` groups 31-day-and-older sessions under Earlier, |
| 229 | +and global search spans history. The real limit is the newest 400 sessions loaded into |
| 230 | +the sidebar. Correctly removing that boundary requires offset pagination and load-more |
| 231 | +state rather than another limit increase, and the issue provides no session count or |
| 232 | +evidence that the 400-item window was reached. |
| 233 | + |
| 234 | +### #1290 |
| 235 | + |
| 236 | +Custom models default to 32K with a 64K ceiling, but the existing Settings JSON supports |
| 237 | +`{"env":{"CLAUDE_CODE_MAX_OUTPUT_TOKENS":"16384"}}`; the value is preserved through |
| 238 | +provider activation and controls Anthropic-compatible requests. OpenAI Chat/Responses |
| 239 | +intentionally omit the output limit so the upstream decides. A dedicated per-provider |
| 240 | +or per-model field would require schema, persistence, runtime, and UI work, which the |
| 241 | +question does not require. |
| 242 | + |
| 243 | +### #1289 |
| 244 | + |
| 245 | +The same reporter and environment as #1284 describe message-action copying failing only |
| 246 | +while another task runs. In an isolated macOS UI, both user prompts and assistant replies |
| 247 | +copied correctly during a 30-second active stream; the same remained true after crossing |
| 248 | +the virtualization threshold with 62 turns and scrolling to the earliest mounted rows. |
| 249 | +The screenshot does not identify prompt versus reply, whether the button acknowledged |
| 250 | +the click, clipboard contents/errors, row count, DPI, or a complete pointer sequence. |
| 251 | +Without the required macOS reproduction, changing the `pointerup`/blur/click seam would |
| 252 | +be speculative. |
0 commit comments