Skip to content

remove unnecessary deep clones from session loop and LLM stream#14354

Merged
thdxr merged 1 commit intodevfrom
remove-unnecessary-clones
Feb 20, 2026
Merged

remove unnecessary deep clones from session loop and LLM stream#14354
thdxr merged 1 commit intodevfrom
remove-unnecessary-clones

Conversation

@thdxr
Copy link
Contributor

@thdxr thdxr commented Feb 20, 2026

Summary

  • Remove clone(msgs) in the session prompt loop — the deep copy of the entire message history every iteration is expensive and unnecessary since msgs is re-fetched each loop and the mutation of part.text happens after all reads are complete.
  • Remove clone(system) and the silent fallback restore in LLM.stream — if a plugin intentionally empties the system prompt via experimental.chat.system.transform, that decision should be respected rather than silently overridden. Silent recovery makes plugin bugs harder to find.
  • Remove unused remeda clone imports from both files.

@thdxr thdxr enabled auto-merge (squash) February 20, 2026 00:15
@thdxr thdxr merged commit 8d553fa into dev Feb 20, 2026
11 checks passed
@thdxr thdxr deleted the remove-unnecessary-clones branch February 20, 2026 00:19
lacymorrow added a commit to lacymorrow/lash that referenced this pull request Feb 22, 2026
* upstream/dev: (476 commits)
  release: v1.2.9
  fix: issue from structuredClone addition by using unwrap (anomalyco#14359)
  tweak(ui): adjust session feed spacing
  tweak(ui): tone down reasoning emphasis
  tweak(ui): refine session feed spacing
  fix(desktop): restore settings header mask
  tweak(ui): nudge edited files chevron
  tweak(ui): stabilize collapsible chevron hover
  fix: add missing id/sessionID/messageID to MCP tool attachments (anomalyco#14345)
  Use structuredClone instead of remeda's clone (anomalyco#14351)
  remove unnecessary deep clones from session loop and LLM stream (anomalyco#14354)
  fix(web): correct config import path in Korean enterprise docs
  docs: update providers layout and Windows sidebar label
  core: remove User-Agent header assertion from LLM test to fix failing test
  release: v1.2.8
  fix(app): black screen on launch with sidecar server
  chore: generate
  feat(opencode): support adaptive thinking for claude sonnet 4.6 (anomalyco#14283)
  feat(tui): add custom tool and mcp call responses visible and collapsable (anomalyco#10649)
  chore: cleanup
  ...

# Conflicts:
#	bun.lock
#	packages/app/package.json
#	packages/console/app/package.json
#	packages/console/core/package.json
#	packages/console/function/package.json
#	packages/console/mail/package.json
#	packages/desktop/package.json
#	packages/enterprise/package.json
#	packages/extensions/zed/extension.toml
#	packages/function/package.json
#	packages/opencode/package.json
#	packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx
#	packages/opencode/src/cli/cmd/tui/routes/home.tsx
#	packages/opencode/src/config/config.ts
#	packages/opencode/src/tool/lsp.ts
#	packages/opencode/src/tool/read.ts
#	packages/plugin/package.json
#	packages/sdk/js/package.json
#	packages/slack/package.json
#	packages/ui/package.json
#	packages/util/package.json
#	packages/web/package.json
#	sdks/vscode/package.json
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant