[Bug] Performance Bottleneck: Inefficient SVG Text Object Parsing

Resolved 💬 3 comments Opened Oct 5, 2025 by macOS26 Closed Jan 9, 2026

Bug Description
⏺ I can see from the logs that SVG files with lots of text are creating hundreds of
individual text objects (109 text objects in your example), and each one requires
parsing, NSLayoutManager calculations, and view model creation. This is slow.

The speed issue is in the text width calculation - we're using NSLayoutManager for
EVERY single text object, even single characters. Let me optimize this:
⎿ API Error: Claude Code is unable to respond to this request, which appears to violate
our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit
your last message or start a new session for Claude Code to assist with a different
task. If you are seeing this refusal repeatedly, try running /model
claude-sonnet-4-20250514 to switch models.
⎿  Error editing file
⎿ API Error: Claude Code is unable to respond to this request, which appears to violate
our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit
your last message or start a new session for Claude Code to assist with a different
task. If you are seeing this refusal repeatedly, try running /model
claude-sonnet-4-20250514 to switch models.

Environment Info

  • Platform: darwin
  • Terminal: Apple_Terminal
  • Version: 2.0.8
  • Feedback ID: f7dfa2b3-3a28-48c0-b883-20ddfe594bd0

Errors

[{"error":"Error: Request was aborted.\n    at nu._createMessage (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:884:4711)\n    at processTicksAndRejections (node:internal/process/task_queues:105:5)\n    at runNextTicks (node:internal/process/task_queues:69:3)\n    at process.processTimers (node:internal/timers:540:9)","timestamp":"2025-10-05T04:16:34.233Z"},{"error":"Error: Request was aborted.\n    at nu._createMessage (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:884:4711)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)","timestamp":"2025-10-05T04:24:03.622Z"},{"error":"Error: Request was aborted.\n    at nu._createMessage (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:884:4711)\n    at processTicksAndRejections (node:internal/process/task_queues:105:5)\n    at runNextTicks (node:internal/process/task_queues:69:3)\n    at process.processTimers (node:internal/timers:540:9)","timestamp":"2025-10-05T04:24:10.776Z"},{"error":"Error: Request was aborted.\n    at nu._createMessage (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:884:4711)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)","timestamp":"2025-10-05T04:28:28.118Z"},{"error":"Error: Error normalizing tool input: [\n  {\n    \"code\": \"invalid_type\",\n    \"expected\": \"string\",\n    \"received\": \"undefined\",\n    \"path\": [\n      \"old_string\"\n    ],\n    \"message\": \"Required\"\n  },\n  {\n    \"code\": \"invalid_type\",\n    \"expected\": \"string\",\n    \"received\": \"undefined\",\n    \"path\": [\n      \"new_string\"\n    ],\n    \"message\": \"Required\"\n  }\n]\n    at file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:3334:353\n    at Array.map (<anonymous>)\n    at _J1 (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:3334:51)\n    at STB (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:3174:17258)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n    at async file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:3174:12991\n    at async IT0 (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:3174:4232)\n    at async q11 (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:3174:12961)\n    at async xO (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:2511:17282)\n    at async w2 (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:2678:53295)","timestamp":"2025-10-05T04:32:14.725Z"},{"error":"Error: Request was aborted.\n    at nu._createMessage (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:884:4711)\n    at processTicksAndRejections (node:internal/process/task_queues:105:5)\n    at runNextTicks (node:internal/process/task_queues:69:3)\n    at process.processTimers (node:internal/timers:540:9)","timestamp":"2025-10-05T04:32:25.604Z"},{"error":"Error: Failed to get summary response from streaming\n    at $_1 (file:///opt/homebrew/lib/node_modules/@anthropic-ai/claude-code/cli.js:1838:1087)\n    at processTicksAndRejections (node:internal/process/task_queues:105:5)\n    at runNextTicks (node:internal/process/task_queues:69:3)\n    at process.processTi

Note: Error logs were truncated.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗