v2.2.2-xml-placeholder-reject: drop placeholder XML tool calls at parse time
Reject qwen3.6 spurious <invoke> tails with path "..." or empty args before they enter toolCalls, preventing duplicate assistant answers. Dropped blocks append to flushed text; four new xml-parser tests. DEFERRED-WORK §6 for console.debug → pino cleanup. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -15,6 +15,7 @@ Last updated: 2026-05-26
|
||||
| Unified `packages/types` | Maintainability | Low (dev-only) | Medium–High | Type drift between server, coder, web |
|
||||
| Large file splits | Maintainability | None directly | Medium per file | Harder reviews, merge conflicts |
|
||||
| Retire `apps/coder/web/` fallback SPA | Scope / ops | Low — Sam uses CoderPane | Medium | Dual UI maintenance, divergent API client |
|
||||
| `console.debug` in xml-parser placeholder rejection | Maintainability | None (logs only) | Trivial | Placeholder rejections miss pino pipeline / level filters |
|
||||
|
||||
---
|
||||
|
||||
@@ -325,6 +326,16 @@ Standalone Vite React app (`@boocode/coder-web`) built into `apps/coder/web/dist
|
||||
|
||||
---
|
||||
|
||||
## 6. xml-parser placeholder rejection — structured logging (v2.2.2 cleanup)
|
||||
|
||||
**Shipped (uncommitted deploy):** `extractToolCallBlocks` rejects placeholder XML tool args at parse time; dropped blocks append to `flushed`.
|
||||
|
||||
**Nit:** rejection path uses `console.debug` instead of the Fastify/pino `log.debug({ toolName, args }, '…')` pattern used elsewhere. Cosmetic — behavior is correct; logs won't appear in the usual structured pipeline or respect `LOG_LEVEL`.
|
||||
|
||||
**Fix:** pass an optional logger into `extractToolCallBlocks` from `stream-phase.ts` executeStreamPhase (one call site), or use a module-level debug hook. Target tag: **v2.2.2** cleanup batch, not a blocker.
|
||||
|
||||
---
|
||||
|
||||
## Suggested batch ordering
|
||||
|
||||
If picking these up as openspec batches:
|
||||
@@ -334,6 +345,7 @@ If picking these up as openspec batches:
|
||||
3. **CoderPane hook extraction** — natural follow-on when adding cancel UI
|
||||
4. **Zod parity or packages/types** — when next WS/provider field is added
|
||||
5. **Retire coder/web** — only after explicit “I don’t use :9502 UI” confirmation
|
||||
6. **v2.2.2 xml-parser log uniformity** — `console.debug` → pino (§6)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user