mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-22 02:05:26 -04:00
[BUG/PERF] Severe Memory Leak and Disk Swell leading to System Kernel Panic (macOS) #8831
Open
opened 2026-02-16 18:10:57 -05:00 by yindo
·
9 comments
No Branch/Tag Specified
dev
mini-terminal-title
location-wait-api
mini-project-commands
resume-prompt
alibaba-images
item-reference-investigation
ai-pdf-support
beta
v2
production
wsl-shell-env
fork-once
wsl-env-load
stream-eof-finish
nvidia-minimax-thinking
pr-38231-assets
shell-mode-style
pr-38224-assets
reject-malformed-hunks
tool-progress-live
codemode-catalog-diffs
model-flicker
default-background
terminal-queries
event-batching
port-plugins
gemini-thinking-level
patch-symlink-policy
session-version-sentinel
client-service
service-channel-config
webfetch-images
search-integration
billing-details
shell-exit-grace
desktop-image-backgrounds
copilot-endpoint
migrate-select-theme
bound-tool-output
workspace-model-block
remove-promo
collapse-model-providers
review-sidebar-hydration
collapse-questions
location-startup-timing
remove-output-paths
shell-output-preview
quark-timeline
raw-tool-recovery
dialog-hover-fix
server-profiles
server-switcher
kimi-mfjs-schema
session-options-hook
interleaved-fields
remote-workspaces-plan
fix-initial-message
undo-git-guard
pr-37575-assets
opentui-binary-repro
startup-lock-release
system-theme-v2
llm-error-types
tui-plugin-load
external-defaults
productionclear
pr-37513-assets
console-auth-refresh
v2-app-api
backend-adapter-v2
oc-clipboard-and-paste
test/hot-reload-regressions
provider-benchmark
shell-progress-tail
model-cycle-palette
theme-toggle-copy
flaky-provider-tests
permission-modal-keyboard
shell-output-alignment
session-http-hook
permission-highlight
activity-panel
workspace-copy
interrupt-not-found
device-org-select
v2-subagent-limit
vertex-xai-default
reasoning-replay
agent-picker-custom
effect-dynamic-tools
patch-empty-hang
fix/empty-assistant-output
favorites-cli-config
simulated-tools
console-analytics-logger
simulation-terminal-frame-capture
feature-defaults
free-model-logo
service-restart
interrupt-stop-race
xai-oauth
background-indicator-inline
home-shortcut-align
compaction-model-marker
provider-config-shape
interface-toggle
install-layout-eligibility
tools-menu
mcp-location-refresh
session-picker-crash
optimistic-submit
dialog-action-focus
llm-terminal-contract
llm-remove-provider-error
remove-subtle-syntax
title-small-model
dialog-empty-states
permission-panel
api-dsl-cleanup
app-backend-v2
free-model-badge
compaction-percent
thought-toggle
home-session-scroll
llm-error-redesign
luna-oauth-fix
tool-flat-draft
v2-shell-utf8
remove-starptech
effort-values-none
config-dialog
update-tsgo
bounded-compaction-prod
stale-form-submit
dismiss-stale-form
bounded-compaction
agent-picker-variants
config-dir-repro
shell-tail-output
v2-integrations
quick-undo
startup-error-cause
subagent-panel-ui
lazy-fff
optimistic-input
zsh-positional
v2-diff-route
plugin-session-rename
gpt56-max
shortcut-screenshots
service-status
context-overflow
random-tool-catalog
review-nav-spacing
architecture-review
duplicate-event-logs
fix-shell-tab
v2-agent-env
plugin-watch-fix
compaction-cleanup
fix-compaction
genai-observability
agent-permission-order
tui-pending
catalog-repros
catalog-cold-start
console-login-logs
fix/tui-fresh-session-prompt
review-terminal
model-reset-repro
reasoning-variants
improve-caching
team-members
promise-chaining
tabs-launch-screenshots
compaction-steer
agent-env-markers
daemon-election
retry-layout
bash-streaming-fix
bash-tool-crash
restore-session-paging
provider-entrypoints
model-input-defaults
fix-initial-message-page-size
background-return
model-capability-defaults
runner-scenario-dsl
location-watch-guard
fix-shell-count
session-model-sync
new-session-commands
interrupt-tool-hang
codemode-service
mcp-attachments
stdlib-gaps
codemode-object-delete
json-callbacks
code-mode-opencode
drive-manifest
firecrawl-search
persisted-suspense
mcp-resource-app
mcp-resource-ui
mcp-resource-api
media-attachment
instruction-rename
destructuring-assign
codemode-audit
schema-reexports
event-subscribe
nxl/vcs-plugin-api
global-forms
revert-prompt
fix-stale-tools
service-version-guard
partial-refund-ledger
sdk-js-imports
jlongster/simulation-improvements
promise-named-types
tool-output
execute-code-mode-v2
compaction-indicator
subagent-command
catalog-readiness
pending-tool-error
zen-body-limit
form-tui
step-settlement
settlement-ledger
provider-packages
elicitation-timeout
codemode-opencode-adapter
optimize-hooks
models-log-leak
zen-accounting-latency
form-elicitation
codemode-opencode-wiring
codemode-opencode-integration
models-refresh-daemon
v2-model-refresh
filesystem-simulation
context-checkpoint
system-context
subagent-notify
subagent-resume
simulation-spec-v2
directory-attachment-expansion
zen-headers-timeout
config-effect-v2
embedded-config-seam
config-ownership
shell-background-notice
compaction-idle-status
session-tab-remount
publish-server
directory-attachments
content-filter-notice
settings-model-clipping
home-autocomplete-location
tabs-restore
plugin-runtime-bridge
simulation-spec
optimistic-prompt
reasoning-model-api
tool-result-api
beta-badge
prompt-submit-clear
prompt-attachments
mcp-prompts
background-shortcut
debug-windows-opentui-standalone-repro-release
fix-empty-sessions-list
core-node-consumers
model-selection
snapshot-otui
pty-env-route
status-frame-fix
daxbox-servers
shell-output-flush
shell-tool-test
auth-list
remove-default-layers
jlongster/opencode-all-tests-more
native-provider-clean
context-tooltip-v2
native-provider-core
native-provider-stack
deferred-tools
delete-email-action
poll-updates
jlongster/test-batch
session-forking
plugin-patterns
anthropic-thinking-variants
merge-dev-into-v2
fix-windows-abbreviate-home
project-edit-update
streaming-prd
zen-refund-accounting
fish-completion
cache-code-highlights
review-session-pane
sdk-generation-dev-check
clean-desktop-deps
clean-http-recorder-deps
clean-opencode-deps
clean-session-ui-deps
clean-stats-app-deps
clean-ui-deps
clean-web-deps
clean-app-deps
clean-cli-deps
clean-console-app-deps
clean-console-core-deps
clean-console-function-deps
clean-console-mail-deps
clean-console-support-deps
clean-core-deps
clean-root-deps
tui-child-picker
core-project-relocation
complete-client
open-auth-url
desktop-relocated
child-session-picker
fix-event-type
typecheck-28263387070
refresh-singleflight
jlongster/location-nodes
home-active-indicator
session-step-interrupted
interrupt-loading
fix/tui-preserve-renderer-error
fix/provider-session-failures
frank-production-validation-20260626
embedded-live-tail
fix/openai-stateless-reasoning-continuation
session-event-stream
responses-stream-retry
mcp-core-skeleton
server-auto-approve
opentui-retry
timeline-scroll-state
protocol-events
published-events
native-provider-config
native-provider-packages
oc-1.17.10-hotfix
new-session-model
tab-custom-color
feat/tui-render-state-dump
fix/tui-palette-question-mode
otui-native-yoga
feature/expand-paste-summary
todo-dock-motion
mcp-search-tool
tab-shrink
session-provider-errors
isolate-oauth-headers
verify-mcp-auth
secure-oauth-api
mcp-reconnect
restrict-mcp-env
redact-config-secrets
atomic-oauth-callback
native-provider-schema
add-model-comparison-pages
question-paste
simplify-target-layouts
fix-mention-mime
tagged-error-lint
websocket-auth
headless-console-login
mobile-utility-ui
ios-pwa-shell
mobile-bottom-nav
mobile-session-layout
mobile-home-layout
plugin-internal
fix/v2-queue-after-terminal-failure
http-recorder-release
custom-image-defaults
consolidate-todo-event
normalize-step-event-versions
fix-session-subpath
simplify/v2-runner-transitions
run-core-tests
feat/v2-terminal-run-failures-dev
filesystem-errors
hide-read-arguments
layer-node-permit
layer-node-projector
layer-node-repocache
layer-node-sprompt
layer-node-projcopy
layer-node-location
layer-node-movesess
layer-node-locfs
layer-node-models
layer-node-locmut
layer-node-instruct
layer-node-cconfig
layer-node-watcher
layer-node-fmutation
layer-node-integrate
layer-node-cevent
layer-node-cspawn
layer-node-cagent
layer-node-cproject
layer-node-command
yolo-flag
layer-node-extdir
layer-node-cprocess
layer-node-cgit
layer-node-cripgrep
layer-node-csearch
figma-mcp-client
stabilize-ci-tests
core-tests-ci
project-copy-migration
mcp-prompt-refresh
mcp-oauth-refresh
workerd
share-listener-runtime
v2-global-nodes
server-node-graph
mcp-resource-content
fix/command-double-file
background-model-refresh
jlongster/project-copy-config
demo/pr-31617-session-location
feat/tui-copy-session-location
reasoning-options
reasoning-options-support
fix/opencode-bundle-fff
refactor/mcp-connection-results
refactor/reference-directory-parts
feat/mcp-resource-updated
fix/mcp-prompts-list-changed
feat/mcp-resource-list-changed
docs-go-pricing-explanation
refactor/tui-http-sdk
fix/v2-read-validation-failure
refactor/v2-session-run-coordinator
refactor/core-provider-turn
feat/v2-terminal-run-failures
fix/v2-session-wake-retry-dev
feat/core-v2-background-agent
fix/http-recorder-release
fix/v2-session-wake-retry
fix/bash-tool-settlement
fix/v2-headless-permission-policy
fix/v2-binary-detection
fix/v2-read-images
fix/v2-read-errors
feat/core-v2-overflow-recovery
feat/jsonl-log-file
feat/core-v2-session-context-epoch
fix-bedrock-1
fix/session-metadata-migration-repair
pr-30929-demo-video
nexxeln-copy-git-worktree-path
fix/tui-worker-rpc-errors
refactor/core-v2-message-identity
fix/core-v2-sequence-index-invariants
refactor/core-account-file-agents
feat/core-command-registry
fix/tui-rpc-errors
fix/openai-codex-route-timeouts
fix/openai-websocket-header-timeout
refactor/remove-aisdk-option-fields
dustin/improve-memory-usage
feat/sdk-oagen-effect-emitter
nxl/consolidate-project-references
fix/prompt-loop-shutdown
feat/stripe-lake-ingest
kit/tui-scenario-frames
test/core-location-filesystem-canonical-paths
fix/zen-provider-sse-errors
dustin/clickable-titles
fix/free-tier-limit-cta
fix-model-selection
kit/pr-30051-screenshots
fix/xai-provider-upstream-pdf-support
chore/opencode-ai-provider-updates
feat/mcp-add-inline-args
refactor/provider-inline-local-helpers
fix/tui-syntax-builtins
fix/tui-question-keybindings
nxl/session-status-parent-id
feat/core-config-service
fix/free-model-sort
jlongster/workspace-v2
server-discovery
nxl/tui-message-keyboard-nav
fix-github-links-and-star
kit/tui-pending-tool-spinner
fix/task-running-continuation-feedback
fix-leader-none
fix/google-vertex-anthropic-auth-message
worktree-fork-toast
feat/request-aware-provider-fetch
fix/session-project-migration-time
kit/tui-optimistic-prompt-render
issue-13770-tool-output-docs
fix/google-vertex-metadata-warning
brendan/fix-e2e
question-endpoint
test/config-effect-dsl
fix-native-llm-options
compaction-adjustments
fix/app-v2-channel-gate
feat/core-database-schema-sync
fix/mcp-oauth-scope-and-callback-port
dustin/fix-structured-output-fields
kit/repro-zod-schema-leak
worktree-dead-exports
worktree-dead-files
nxl/fix-permission-specificity
jlongster/diff-viewer
nxl/v2-deferred-prompt
fix-retries
nxl/compaction-args
dustin/tool-choice-capability-support
cooper/opencode-codex-refresh-dedupe
refactor/native-runtime-prepared-request
storage-v2-service
drop-app-runtime-instance
worktree-test-port-audit
worktree-cli-effect-harness-2
worktree-cli-prewarm
refactor/session-prompt-parts
image-paths
test/config-instance-opencode-files
fix-env-json-parse-guards
test/config-instance-save-update
extract-part-text-helper
test/config-instance-template-loads
test/config-instance-first-slice
test/config-instance-agent-command
test/provider-instance-custom-models
test/provider-instance-model-lookup
worktree-global-bus-unify
test/provider-instance-first-slice
oc-issue-question-stuck
oc-snapshot-subdir
nxl/fix-auto-compaction-progress
fix/edit-project-dialog
brendan/message-timeline-scroll-virtualiser
jlongster/simulation-rebase
thdxr/auth-well-known-service
models-dev-global-snapshot
tui-markdown-h3-muted
debug-windows-opentui-bun-1.3.14
debug-windows-opentui-crash
serve-socket-mode
fix-event-sync
kit/delete-instance-local-context
upgrade-otui-0212
snapshot-npm-native-binary-install
emdash/27458-h7lu6
session-next-delta-events
new-colors
fix/event-stream-context-capture
fix/event-stream-context-27391
effect/session-transport-service
effect/config-paths-service
adjust-perm-array-logic
nxl/remove-http-notfound-fallback
nxl/render-config-json-diagnostics
nxl/render-tagged-config-errors
effect-test-permission-next
fix/desktop-session-status-tui-20260513090340
opencode/storage-engine-repository
effect/define-service-helper
disable-image-resizing-default
effect/util-process-effect-returning
effect-test-plugin-auth-override
effect/kill-tuiconfig-installation-facades
effect/unwrap-run-runtime-facades
effect-test-project-project
jlongster/fuzz-backend
fix-aws-issue
llm-native-inject-client
llm-native-runtime-openai
llm-native-prepare-tests
llm-native-request-adapter
llm-native-event-adapter
effect-test-provider-cluster1
brendan/lazy-init-plugins
kit/drop-project-sandboxes
claude/learn-new-skill-Ji0dn
fix/windows-instance-fixture-cleanup
worktree-draft+llm-usage-additive
styled-skill-errors
cleanup/effectify-remaining-compaction-tests
draft/session-timeline-rewind
worktree-http-recorder-cassette-seam
claude/review-recent-issues-Ck5UO
opencode/happy-cabin
cleanup/localize-id-prefixes
cleanup/openapi-workspace-path-pattern
llm-service-event-seam
kit/config-field-tolerant
kit/migrate-drift-tests-into-exerciser
kit/httpapi-exercise-via-sdk
kit/mcp-tolerate-bad-output-schemas
refactor-provider-model-status-schema
fix/httpapi-query-schema-drift
kit/fix-26435-legacy-session-model
kit/plugin-mutation-reproducers
kit/fix-workspace-time-used-migration
kit/revert-26550-fallback
kit/restore-hono-temporary
kit/fix-empty-bad-request-normalization
nxl/reference-file-mentions
fix/composer-image-preview-click
kit/httpapi-project-skill-repro
kit/httpapi-total-coverage
kit/httpapi-auth-cleanup-base
jlongster/workspace-external
fix-reasoning-efforts
fix/session-negative-output-tokens
make-review-normal
nxl/fix-anthropic-provider-tools
brendan/desktop-electron-refactor
fix/workspace-warp-typecheck
jlongster/warp
nxl/background-subagents
kit/pty-no-auth-parity
thdxr/v2-message-model-failures
kit/server-listen-native
kit/httpapi-listener-proxy-ws
kit/typed-session-not-found-sketch
fix-wellknown-down
kit/httpapi-not-found-shape
effect-drizzle-sqlite
question-lifecycle-effect-tests
kit/instance-loader-service
kit/effect-workspace-adapters
docs-sdk
kit/llm-approval-instance-ref
kit/session-llm-instance-state
effect-sync-event-service
jlongster/pin-session
azure-cognitive-improvements
adapter-rename
nxl/runtime-aware-search-service
deflake-test
moonshot-mfjs
nxl/small-model-subagents
brendan/new-composer-design
kit/httpapi-sdk-smoke-test
simon-reject-failure
kit/httpapi-json-shape-parity
kit/fix-httpapi-session-list-main
kit/httpapi-route-parity
fix-deepseek-reasoner
kit/httpapi-experimental-tools
deepseek-anthropic
fix/usage-chart-local-time
fix-shell-test
fix-config-ordering-issue
fix/beta-lazy-assistant-error
fix/session-event-typecheck-ci-shell
kit/httpapi-route-inventory-current
shell-test
simon-thread-network-defaults
fix-hover-selected
kit/schema-native-cleanup-ts
adjust-retry-logic
kit/session-schema-events
kit/config-permission-effect
Cramer/2026-03-25/bare-repo-bug
opencode-remote-voice
core
fix-zen-2
kit/multiedit-schema-fix-ts
kit/fix-release-publish-effect
kit/file-instance-context
kit/lsp-effect-refactor
kit/tui-terminal-notifications
tui-favorite-sort-on-query
openai-compaction
fix-copilot
opencode/swift-nebula
fix/project-worktree-external-directory-default
kit/tui-go-upsell-shimmer
kit/httpapi-workspace-schema-migration
kit/ns-plugin-loader-redo
kit/ns-plugin-loader
kit/ns-file-watcher
kit/repro-write-lsp-hang
kit/collapse-session
kit/collapse-patch
kit/retrofit-plugin-main
kit/retrofit-skill-main
kit/retrofit-permission-main
kit/retrofit-mcp-main
kit/retrofit-config-main
kit/unwrap-plugin-siblings
kit/unwrap-small-standalone
kit/unwrap-mcp-siblings
kit/unwrap-config-siblings
kit/self-reexport-migration-tooling
claude/verify-pr-comment-UuyAZ
claude/debug-e2e-tests-Hkgdb
kit/ns-heap
kit/ns-bus-event
kit/ns-standalone
kit/config-httpapi
kit/ns-file-3
kit/ns-session-3
kit/project-httpapi-reads
kit/ns-session
kit/ns-share
kit/ns-project
kit/ns-util-color
kit/ns-lsp
kit/ns-util-local-context
jlongster/sync-fenc
anthropic-fixes
feat/request-route-spans
kit/fs-search
kit/fs-tui-state
example-tui-plugin
cli-perf/tui-config
kit/fs-cli-io
kit/fs-plugin-npm
kit/llm-facade-cleanup
fix/snapshot-gitignored-index
kit/tui-facade-cleanup
kit/config-providers-httpapi-spike
kit/file-httpapi-spike
kit/workspace-httpapi-reads
nxl/mount-question-server
fix/session-prompt-permission-draft
fix-effect-context-bridges
followup-question-reply-inline
kit/fix-session-prompt-logger-interop
kit/question-httpapi-spike
kit/httpapi-route-inventory
kit/facade-session-prompt
jlongster/wip
nxl/fff-search-service
brendan/effect-env
kit/facade-project-20260413
kit/ripgrep-schema-source
kit/shell-job-service
fix/lsp-dead-root-prune
2.0
foo
facade/config
facade/lsp
facade/file
facade/provider
kit/ai-sdk-motel-bridge
oc-run
kit/e2e-seed-runtime-scope
brendan/electron-window-state
go-hero-banner-glm51-promo
snapshot-node-shim-stuff
fix/tui-session-diff-summary
oc-release-0.1.98
fix/snapshot-gitignore-respect
oc-basecode
worktree-agent-ab6ff98a
layered-deferred-comp
oc-startup
feat/tui-logo-radial-pulse
claude/effect-migration-review-Qyu6m
fix-anthropic-transform
kit/effect-sync-event
kit/effect-workspace
kit/eliminate-message-v2-roundtrips
worktree-agent-ab5855c0
kit/motel-session-telemetry
kit/tool-effect-multiedit
task-spec-executor-split
kit/tool-effect-invalid
worktree-feat+otel-bridge
kit/effect-native-tool-interrupt
jlongster/tui-workspaces-ux
kit/permission-flow-ux
nxl/deflake-webfetch-memory-test
npmcli-config
brendan/node-server-types
pr-21017
app/startup-splash
no-diff-virtualization
opencode/shiny-cactus
nxl/fix-diffs-header-sticky
nxl/shell-mode-tray
message-v3
opencode/gentle-pixel
oc-run-pinned
kit/prompt-abort-cleanup
opencode-suggest
rankings
copilot/research-opencode-server-plugin-api
kit/console-org-switcher
kit/ci-unit-reporting
figma-tokens
copilot/fix-spawn-error-windows
kit/dev-memory-observe
kit/remove-e2e-url-repro
effect-sync-event
effect/summary
pr-18308
worktree-audit-effect-services
test/processor-mock-server
fix/session-tool-metadata
opencode/glowing-tiger
claude/variant-popover-number-keys-gc6Bo
kit/format-child-process-spawner
jlongster/flaky-plugin-test
timeline-spacing-cleanup
feat/fff-search-tools
pr-18335
refactor/server-route-organization
jlongster/remove-workspace-server
kit/zen-stream-diagnostics
worktree-agent-a682f34a
spinner-concepts
openai-websocket
brendan-cli-codesign
brendan/cli-codesign
kit/windows-session-restore
opencode/cosmic-mountain
opencode/quick-orchid
perf/tool-memory
input-cleanup
opencode/sunny-comet
log-worktree-error-details
remove-context-tooltip-from-tab
tui-experimental-design
kit/effectify-command-review
brendan/better-session-id-handling
fix/lazy-facades
fix/insufferable-cycle-cyclone
kit/effectify-worktree
kit/effectify-tool-registry
kit/effectify-plugin
kit/effectify-pty
kit/effectify-command
kit/effectify-session-status
feat/auto-accept-permissions
kit/skill-lazy-init
fix-plugin-provider-behavior
fix/stale-running-session-ui
opencode-2-0
opencode/quiet-pixel
enterprise-lead-tracking
fix-e2e
kit/effect-bus
gitlab-version
add-model-reconciliation
jlongster/effectify-event-route
fix/zen-openai-response-usage
refactor/effect-pattern-migration
no-projects-empty-state
nexxeln/readme-small-tweak
test-branch
refactor/delete-scheduler
fix/shell-tab-shell-mode
effectify-skill
rhys/fast-mode-toggle
fix/flaky-question-dock-e2e
no-project-empty-state
fix/webkit-diff-viewer-crash
repro/watcher-als-bug
kit/repro-interrupted-text
startup
revert-17354-opencode/mighty-garden
move-status
perf/tui-session-history-cursor
effect-auth-foundation
console-subcommands
title-bar-cleanup
effect-log-compat
node-pty
fix/interrupt-idle-reason-poc
fix/interrupt-double-sound
opencode/proud-rocket
jlongster/automatic-session-routing
refactor/node-server-adapter
add-api-shape
node-build
jlongster/revert-sighup
fix/memory-tui-cache-listeners
auto-accept-permissions
pr-16286
default-explore-models
kit-pr
kit-pr-ahhhh
fix/16323-keyed-show-callbacks
feat/hashline-edit-experimental-v2
fix/git-fsmonitor-cleanup
snapshot-spawn-server-logs
implement-background-agents
opencode/happy-planet
fix/subagent-navigation-inline-click
go-page
fix/daytona-plugin-link-15976
opencode/hidden-orchid
tweaks
sidebar-fade-scroll
migrate-enterprise-to-nextjs
migrate-web-to-nextjs
migrate-app-to-nextjs
migrate-console-app-to-nextjs
fix/beta-stack-aware-sync
feature/tui-assistant-tokens-per-second
opencode/misty-falcon
snapshot-node-pty
update-stats
legal-req
commit-history
mhart/fix-cloning-slowness
chore/duplicate-issues-agent-dev
chore/duplicate-issues-agent
migrate-skill-discovery
migrate-mcp
migrate-config
optimize-apply-patch
temp
test-fields
brendan/nsis-vc-redistributables
chore-cleanup
feat/reference-agent
fix/attach-default-cwd
clean-modified-files
feat/discord-bot
v5-v6
feat/fff-file-search
snapshot-windows-desktop
fix-read-tool-for-webfetch
K-Mistele/dev
provider-optional-fields
feature/session-handoff
models-endpoint
opencode/sunny-harbor
utilize-family-in-dialog
review
tui-claude-style
rm-footer
fix/shiki-highlight-engine
fix/plugin-install-config
fix/plugin-install-location
feat/update-to-include-discord
git-slop-v2
docs-export
app/open-button
feature/workspace-domain
redesign-run-command
git-slop
opencode/clever-falcon
ripgrep-tree-paths
adjust-instructions-logic
fix-tool-ordering
workflow/publish-updates
chore-update-deps
feat/turborepo-caching
trigger-publish-on-beta
add-beta-branch-trigger
remove/nix-desktop-workflow
ci
fix-markdown-parsing
remove-highlights-template
update-to-add-learn-script
release-highlights-template
fixing-changelog-spacing
fixing-changelog-ui
fix-changelog-json
changelog-swr-caching
add-dynamic-agents-resolving
release-notes
fix/claude-pro-max-docs-warning
web-fixing-download-buton-on-changelog
fix/google-vertex-anthropic-thinking
sqlite
fix-azure-issue
desktop-poilsh-styles-ui-ux
desktop-shortcuts-panel
scheduler-module
apply-patch
cleanup-server-routes
fix-tool-outputs
fix-ai-message-issue
updated-black-page-performance
fix-black-page-view-transition-safari
update-design-subscriptions
fix-markdown-parser
fix/mcp-timeout
fix-id-issue
upgrade-bun
black-page-transitions-design-updates
official-copilot-plugin
plan-mode
read-plurals
cli-run-improvements
style-new-tips-layout
codex-auth
disable-auto-server
fix-model-dialog
fix-plugin-hook
feat/question-multiselect
new-toolbar-layout
feature/tui-sidebar-overlay
ui-improvements-some-animations
ask-question-tool
truncate-to-file
update-perms
truncation
snaphot-style-multiple-commands-input
experimental-mentions
queue-on-track
add-ignored
rename-repo-sst-to-anomalyco
permission-rework
ripgrep-tests
variants-docs
fix-custom-model-variants
read-global-claude-skills
changelog-updates
thinking-toggle-wip
style-current-todo
tui-shortcuts-panel
update-toggle-and-model-selection
small-screens
feature/skill-tool
feature/agent-skills
add-tests
llm-centralization
interleaved-fixes
interleaved-thinking
docs
sdk
bash-tweaks
provider-cleanup
fix-issue
blacksmith-migration-0ddfdb5
fix/cli-clean-exit-on-model-errors
pr-38252-videos
pr-37967-screenshots-final
pr-37967-screenshots-v2
pr-37967-screenshots
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.20
v1.17.19
pr-36567-inline-evidence
pr-36567-evidence
pr-36516-evidence
v1.17.18
v1.17.17
v1.17.16
v1.17.15
v1.17.14
v1.17.13
v1.17.12
v1.17.11
v1.17.10
pr-33649-assets
v1.17.9
v1.17.8
v1.17.7
v1.17.6
v1.17.5
v1.17.4
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.16.2
v1.16.0
github-v1.2.25
v1.15.13
pr-29948-screenshots
v1.15.12
github-v1.2.24
github-v1.2.23
v1.15.11
v1.15.10
v1.15.9
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.15.0
v1.14.51
v1.14.50
v1.14.49
v1.14.48
v1.14.47
v1.14.46
v1.14.45
v1.14.44
v1.14.43
v1.14.42
v1.14.41
v1.14.40
v1.14.39
v1.14.38
v1.14.37
v1.14.35
v1.14.34
v1.14.33
v1.14.32
v1.14.31
v1.14.30
v1.14.29
v1.14.28
v1.14.27
v1.14.26
v1.14.25
v1.14.24
v1.14.23
v1.14.22
v1.14.21
v1.14.20
v1.14.19
v1.14.18
v1.14.17
v1.4.14
v1.4.12
v1.4.11
v1.4.10
v1.4.9
v1.4.8
v1.4.7
github-v1.2.22
github-v1.2.21
github-v1.2.20
v1.4.6
v1.4.5
v1.4.4
v1.4.3
v1.4.2
v1.4.1
v1.4.0
latest
v1.3.17
v1.3.16
v1.3.15
v1.3.14
v1.3.13
v1.3.12
v1.3.11
v1.3.10
v1.3.9
v1.3.8
v1.3.7
v1.3.6
v1.3.5
v1.3.4
v1.3.3
github-v1.2.19
v1.3.2
v1.3.1
v1.3.0
v1.2.27
v1.2.26
v1.2.25
v1.2.24
v1.2.23
v1.2.22
v1.2.21
v1.2.20
v1.2.19
github-v1.2.18
v1.2.18
v1.2.17
v1.2.16
v1.2.15
v1.2.14
v1.2.13
v1.2.12
v1.2.11
github-v1.2.17
v1.2.10
v1.2.9
v1.2.8
v1.2.7
github-v1.2.16
v1.2.6
v1.2.5
v1.2.4
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.1.65
v1.1.64
v1.1.63
v1.1.62
v1.1.61
v1.1.60
v1.1.59
v1.1.58
v1.1.57
v1.1.56
v1.1.55
v1.1.54
github-v1.2.15
v1.1.53
v1.1.52
v1.1.51
v1.1.50
v1.1.49
v1.1.48
v1.1.47
v1.1.46
v1.1.45
v1.1.44
github-v1.2.14
v1.1.43
v0.0.0-ci-202601291718
v0.0.0-ci-202601291635
v0.0.0-ci-202601291626
v1.1.42
v1.1.41
v1.1.40
v1.1.39
v1.1.38
v1.1.37
v1.1.36
v1.1.35
v1.1.34
v1.1.33
v1.1.32
v1.1.31
v1.1.30
v1.1.29
v1.1.28
v1.1.27
v1.1.26
github-v1.2.13
v1.1.25
v1.1.24
v1.1.23
v1.1.21
v1.1.20
v1.1.19
v1.1.18
github-v1.2.12
v1.1.17
v1.1.16
v1.1.15
v1.1.14
v1.1.13
v1.1.12
v1.1.11
v1.1.10
v1.1.8
v1.1.7
v1.1.6
v1.1.5
v1.1.4
v1.1.3
github-v1.2.11
v1.1.2
v1.1.1
github-v1.2.10
github-v1.2.9
github-v1.2.8
github-v1.2.7
v1.0.224
v1.0.223
v1.0.222
v1.0.221
v1.0.220
v1.0.219
v1.0.218
v1.0.217
v1.0.216
v1.0.215
v1.0.214
v1.0.213
v1.0.212
v1.0.211
v1.0.210
v1.0.209
v1.0.208
v1.0.207
v1.0.206
vscode-v0.0.13
v1.0.205
v1.0.204
v1.0.203
v1.0.202
v1.0.201
v1.0.200
v1.0.199
v1.0.198
v1.0.197
v1.0.196
v1.0.195
v1.0.194
v1.0.193
v1.0.192
v1.0.191
v1.0.190
v1.0.189
v1.0.188
v1.0.187
v1.0.186
v1.0.185
github-v1.2.6
v1.0.184
v1.0.183
v1.0.182
v1.0.181
github-v1.2.5
github-v1.2.4
v1.0.180
v1.0.179
v1.0.178
v1.0.177
v1.0.176
v1.0.175
v1.0.174
v1.0.173
v1.0.172
v1.0.171
v1.0.170
v1.0.169
v1.0.168
github-v1.2.3
github-v1.2.2
v1.0.167
v1.0.166
v1.0.165
v1.0.164
github-v1.2.1
v1.0.163
v1.0.162
v1.0.161
v1.0.160
v1.0.159
v1.0.158
v1.0.157
v1.0.156
v1.0.155
v1.0.154
v1.0.153
v1.0.152
v1.0.151
v1.0.150
v1.0.149
v1.0.148
v1.0.147
v1.0.146
v1.0.145
v1.0.144
github-v1.2.0
github-v1.1.0
v1.0.143
v1.0.142
v1.0.141
v1.0.138
v1.0.137
v1.0.134
v1.0.133
v1.0.132
v1.0.131
v1.0.130
v1.0.129
v1.0.128
v1.0.127
v1.0.126
v1.0.125
v1.0.124
v1.0.123
v1.0.122
v1.0.121
v1.0.120
v1.0.119
v1.0.118
v1.0.117
v1.0.116
v1.0.115
v1.0.114
v1.0.113
v1.0.112
v1.0.111
v1.0.110
v1.0.109
v1.0.108
v1.0.107
v1.0.106
v1.0.105
v1.0.104
v1.0.103
v1.0.102
v1.0.101
v1.0.100
v1.0.99
v1.0.98
v1.0.97
v1.0.96
v1.0.95
v1.0.93
v1.0.94
v1.0.92
v1.0.91
v1.0.90
v1.0.89
v1.0.88
v1.0.87
v1.0.86
v1.0.85
v1.0.84
v1.0.83
v1.0.82
v1.0.81
v1.0.80
v1.0.79
v1.0.78
v1.0.77
v1.0.76
v1.0.75
v1.0.74
v1.0.73
v1.0.72
v1.0.71
v1.0.70
v1.0.69
v1.0.68
v1.0.67
v1.0.66
v1.0.65
v1.0.64
v0.0.2-feature-bench
v1.0.63
v0.0.1-feature-bench
v1.0.62
v1.0.61
v1.0.60
v1.0.59
v1.0.58
v1.0.57
v1.0.56
v1.0.55
v1.0.54
v1.0.53
v1.0.52
v1.0.51
v1.0.50
v1.0.49
v1.0.48
v1.0.47
v1.0.46
v1.0.45
v1.0.44
v1.0.43
v1.0.41
v1.0.40
v1.0.39
v1.0.38
v1.0.37
v1.0.36
v1.0.35
v1.0.34
v1.0.33
v1.0.32
v1.0.31
v1.0.30
v1.0.29
v1.0.28
v1.0.27
v1.0.26
v1.0.25
v1.0.24
v1.0.23
v1.0.22
v1.0.21
v1.0.20
v1.0.19
v1.0.18
v1.0.17
v1.0.16
v1.0.15
v1.0.14
v1.0.13
v1.0.12
v1.0.11
github-v1.0.10
v1.0.10
v1.0.9
v1.0.8
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3
v1.0.2
v1.0.1
v1.0.0
v0.15.31
v0.15.30
v0.15.29
v0.15.28
v0.15.27
v0.15.26
v0.15.25
v0.15.24
v0.15.23
v0.15.21
v0.15.22
v0.15.20
v0.15.19
v0.15.18
v0.15.17
v0.15.16
v0.15.15
v0.15.14
vscode-v0.0.12
vscode-v0.0.11
vscode-v0.0.10
v0.15.13
v0.15.12
v0.15.11
v0.15.10
v0.15.9
v0.15.8
v0.15.7
v0.15.6
github-v1.0.9
github-v1.0.8
github-v1.0.7
v0.15.5
v0.15.4
v0.15.3
v0.15.2
v0.15.1
v0.15.0
v0.14.7
v0.14.6
v0.14.5
v0.14.4
v0.14.3
v0.14.1
v0.14.0
v0.13.9
v0.13.8
v0.13.7
v0.13.6
v0.13.5
v0.13.4
v0.13.3
v0.13.2
v0.12.1
v0.12.0
v0.11.8
v0.11.7
v0.11.6
v0.11.5
v0.11.4
v0.11.3
v0.11.2
v0.11.1
v0.11.0
v0.0.0-202509210757
v0.10.4
v0.10.3
github-v1.0.6
v0.10.2
v0.10.1
v0.10.0
v0.9.11
v0.9.10
v0.9.9
v0.9.8
v0.9.7
v0.9.6
v0.9.5
v0.9.4
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.0
v0.0.0-202509130959
v0.0.0-202509130953
v0.0.0-202509130949
v0.7.9
v0.7.8
v0.7.7
v0.7.6
v0.7.5
v0.7.4
v0.7.3
v0.7.2
v0.7.1
v0.7.0
v0.6.10
v0.6.9
v0.6.8
v0.6.7
v0.6.6
v0.6.5
v0.6.4
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.0.0-202509010531
v0.0.0-202509010020
v0.5.29
v0.5.28
v0.5.27
v0.5.26
v0.5.25
v0.5.24
v0.5.23
v0.5.18
v0.5.15
v0.5.13
v0.5.12
v0.5.11
v0.5.10
v0.5.9
v0.5.8
v0.5.7
v0.5.6
github-v1.0.5
v0.5.5
v0.5.4
v0.5.3
v0.5.2
v0.5.1
v0.4.45
v0.4.44
v0.4.43
v0.4.42
v0.4.41
v0.4.40
v0.4.37
v0.4.36
v0.4.34
v0.4.29
v0.4.28
v0.4.27
v0.4.26
v0.4.25
v0.4.24
v0.4.23
v0.4.22
v0.4.21
v0.4.20
v0.4.19
v0.4.18
v0.4.17
v0.4.16
v0.4.15
v0.4.14
v0.4.13
v0.4.12
v0.4.11
v0.4.10
v0.4.6
v0.4.4
v0.4.5
v0.4.3
v0.4.2
v0.4.1
v0.4.0
v0.3.133
v0.3.132
v0.3.131
v0.3.130
v0.3.129
v0.3.128
v0.3.127
v0.3.126
v0.3.124
v0.3.123
v0.0.0-202508031658
v0.0.0-202508031655
v0.0.0-202508031652
v0.0.0-202508031649
v0.0.0-202508031638
v0.0.0-202508031634
v0.0.0-202508031629
v0.3.122
v0.3.121
v0.3.120
v0.3.119
v0.3.118
v0.3.117
v0.3.116
v0.3.115
v0.3.114
v0.0.0-202508022246
v0.0.0-202508022229
v0.0.0-202508022228
v0.0.0-202508022056
v0.0.0-202508022055
v0.0.0-202508022053
v0.3.113
v0.3.112
v0.3.111
v0.3.110
v0.3.109
v0.3.108
v0.3.107
v0.3.106
v0.3.105
v0.3.104
v0.3.103
vscode-v0.0.8
vscode-v0.0.9
v0.3.102
v0.3.101
v0.3.100
v0.3.93
v0.3.92
v0.3.90
v0.3.88
v0.0.0-202507310417
v0.3.87
v0.3.86
v0.3.85
v0.3.84
v0.3.83
v0.3.82
v0.3.81
v0.3.80
vscode-v0.0.7
v0.3.79
v0.3.78
v0.3.77
v0.3.76
v0.3.75
github-v1.0.4
github-v1.0.3
v0.3.74
v0.3.72
v0.3.73
v0.3.71
v0.3.70
v0.3.69
v0.3.68
v0.3.67
v0.3.66
v0.3.65
v0.3.64
v0.3.63
v0.3.62
v0.3.61
v0.3.60
v0.3.59
v0.3.58
v0.3.57
v0.3.56
vscode-v0.0.6
v0.3.55
vscode-v0.0.5
v0.3.54
v0.3.53
v0.3.52
v0.3.51
v0.3.50
v0.3.49
v0.3.48
v0.3.47
v0.3.46
v0.3.45
v0.3.44
vscode-v0.0.4
github-v1
vscode-v0.0.3
github-v1.0.2
github-v1.0.1
github-v1.0.0
vscode-v0.0.2
v0.3.43
v0.3.41
v0.3.42
v0.3.40
v0.3.39
v0.3.38
v0.3.37
v0.3.36
v0.3.35
v0.3.34
v0.3.33
v0.3.32
v0.3.31
v0.3.30
v0.3.29
v0.3.28
v0.3.27
v0.3.26
v0.3.25
v0.3.24
v0.3.23
v0.3.22
v0.3.21
v0.3.20
v0.3.19
vscode-v0.0.1
v0.3.18
v0.3.17
v0.3.16
v0.3.15
v0.3.14
v0.3.13
v0.3.12
v0.3.10
v0.3.11
v0.3.9
v0.3.8
v0.3.7
v0.3.5
v0.3.6
v0.3.4
v0.3.3
v0.3.2
v0.3.1
v0.2.35
v0.3.0
v0.2.34
v0.2.33
v0.2.31
v0.2.32
v0.2.30
v0.2.28
v0.2.29
v0.2.27
v0.2.26
v0.2.25
v0.2.24
v0.2.23
v0.2.22
v0.2.21
v0.2.20
v0.2.19
v0.2.18
v0.2.17
v0.2.16
v0.2.15
v0.2.14
v0.2.13
v0.2.12
v0.2.11
v0.2.10
v0.2.9
v0.2.7
v0.2.8
v0.2.6
v0.2.5
v0.2.4
v0.2.3
v0.2.2
v0.2.1
v0.2.0
v0.1.195
v0.1.196
v0.1.194
v0.1.193
v0.1.192
v0.1.190
v0.1.191
v0.1.189
v0.1.188
v0.1.187
v0.1.186
v0.1.185
v0.1.184
v0.1.183
v0.1.182
v0.1.181
v0.1.180
v0.1.179
v0.1.178
v0.1.177
v0.1.176
v0.1.175
v0.1.174
v0.1.173
v0.1.172
v0.1.171
v0.1.170
v0.1.169
v0.1.168
v0.1.167
v0.1.166
v0.1.165
v0.1.164
v0.1.163
v0.1.162
v0.1.161
v0.1.160
v0.1.159
v0.1.158
v0.1.157
v0.1.156
v0.1.155
v0.1.154
v0.1.153
v0.1.152
v0.1.151
v0.1.150
v0.1.149
v0.1.148
v0.1.147
v0.1.146
v0.1.145
v0.1.144
v0.1.143
v0.1.142
v0.1.141
v0.1.140
v0.1.139
v0.1.138
v0.1.137
v0.1.136
v0.1.135
v0.1.133
v0.1.134
v0.1.132
v0.1.131
v0.1.130
v0.1.129
v0.1.128
v0.1.127
v0.1.126
v0.1.125
v0.1.124
v0.1.123
v0.1.122
v0.1.121
v0.1.120
v0.1.119
v0.1.118
v0.1.117
v0.1.116
v0.1.115
v0.1.114
v0.1.113
v0.1.112
v0.1.111
v0.1.110
v0.1.109
v0.1.108
v0.1.107
v0.1.106
v0.1.105
v0.1.104
v0.1.103
v0.1.101
v0.1.102
v0.1.100
v0.1.99
v0.1.98
v0.1.97
v0.1.96
v0.1.95
v0.1.94
v0.1.93
v0.1.92
v0.1.91
v0.1.90
v0.1.89
v0.1.88
v0.1.87
v0.1.86
v0.1.85
v0.1.84
v0.1.83
v0.1.82
v0.1.81
v0.1.80
v0.1.79
v0.1.78
v0.1.77
v0.1.76
v0.1.75
v0.1.74
v0.1.73
v0.1.72
v0.1.71
v0.1.70
v0.1.69
v0.1.68
v0.1.67
v0.1.66
v0.1.65
v0.1.64
v0.1.63
v0.1.62
v0.1.61
v0.1.60
v0.1.59
v0.1.58
v0.1.57
v0.1.56
v0.1.55
v0.1.54
v0.1.53
v0.1.52
v0.1.51
v0.1.50
v0.1.49
v0.1.48
v0.1.47
v0.1.46
v0.1.45
v0.1.44
v0.1.43
v0.1.42
v0.1.41
v0.1.40
v0.1.39
v0.1.38
v0.1.37
v0.1.36
v0.1.35
v0.1.34
v0.1.33
v0.1.32
v0.1.31
v0.1.30
v0.1.29
v0.1.28
v0.1.27
v0.1.26
v0.1.24
v0.1.25
v0.1.23
v0.1.22
v0.1.21
v0.1.20
v0.1.19
v0.1.18
v0.1.17
v0.1.16
v0.1.15
v0.1.14
v0.1.13
v0.1.12
v0.1.11
v0.1.10
v0.1.9
v0.1.6
v0.1.7
v0.1.8
v0.1.5
v0.1.4
v0.1.3
v0.1.2
v0.1.1
v0.1.0-beta3
v0.1.0-beta2
v0.1.0-beta1
v0.1.0
v0.0.55
v0.0.54
v0.0.53
v0.0.52
v0.0.51
v0.0.50
v0.0.49
v0.0.48
v0.0.46
v0.0.45
v0.0.47
0.0.47
0.0.46
0.0.45
v0.0.44
v0.0.43
v0.0.42
v0.0.41
v0.0.40
v0.0.39
v0.0.38
v0.0.37
v0.0.36
v0.0.35
v0.0.34
v0.0.33
v0.0.32
v0.0.31
v0.0.30
v0.0.29
v0.0.28
v0.0.27
v0.0.26
v0.0.25
v0.0.24
v0.0.22
v0.0.21
v0.0.20
v0.0.19
v0.0.18
v0.0.17
v0.0.16
v0.0.15
v0.0.14
v0.0.13
v0.0.10
v0.0.9
v0.0.8
v0.0.7
v0.0.6
v0.0.3
v0.0.4
v0.0.5
v0.0.2
v0.0.1
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: anomalyco/opencode#8831
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @dzianisv on GitHub (Feb 8, 2026).
Originally assigned to: @rekram1-node on GitHub.
Description
I am encountering a critical performance issue when using OpenCode at scale. While the TypeScript implementation is impressive, the current resource management leads to total system instability on macOS. After a few hours of intensive use, the system undergoes a forced restart due to memory exhaustion.
Observed Behavior
RAM/Swap Exhaustion: OpenCode consumes all available physical RAM and then expands into Swap until macOS triggers a kernel panic or forced restart.
Disk Swell: Approximately 50GB of disk space is consumed within a few hours. This space is reclaimed immediately after a restart, suggesting it is either a ballooning swapfile or unmanaged session storage.
System Impact: Daily mandatory restarts of the host machine (MacBook).
Investigation Plan
I am treating this as a research-based issue rather than a standard bug report. My next steps include:
Process Monitoring: Identifying if the leak is in the main process, a specific worker, or the underlying TUI/Language Server.
Storage Audit: Locating the specific directory where the 50GB swell occurs (e.g., ~/Library/Application Support/OpenCode or /private/var/vm).
Heap Snapshots: Attempting to capture V8 heap snapshots before the system freezes.
Plugins
No response
OpenCode version
No response
Steps to reproduce
No response
Screenshot and/or share link
No response
Operating System
No response
Terminal
No response
@github-actions[bot] commented on GitHub (Feb 8, 2026):
This issue might be a duplicate of existing issues. Please check:
Feel free to ignore if none of these address your specific case.
@dzianisv commented on GitHub (Feb 11, 2026):
Forensic Analysis: Kernel Panic Root Cause (Feb 11, 2026)
Machine: MacBook Pro M1 (MacBookPro17,1), 16 GB RAM, macOS 15.5 (24F74), ~30 GB free disk
Kernel Panic Details
Two kernel panics in 3 days, both identical cause:
Feb 11, 01:47 AM:
Feb 9, 00:28 AM:
Both times the system was so memory-starved that the kernel watchdog daemon couldn't check in within 91 seconds, triggering a hard panic and forced reboot. Boot faults recorded as
wdog,reset_in_1 timeout.Jetsam (OOM) Events Confirm
opencodeas Primary ConsumerThe macOS Jetsam event from Feb 10 explicitly identifies:
Memory snapshot at time of Jetsam kill:
10 opencode processes consuming ~9.4 GB on a 16 GB machine. That's 59% of total physical RAM from opencode alone.
System memory state at time of Jetsam:
Evidence of Memory Leak
The opencode diagnostic report from Feb 9 (
opencode_2026-02-09-134500) shows clear unbounded growth:A single opencode instance grew from 244 MB to 1.5 GB in 35 minutes while also writing 2.1 GB to disk. This is characteristic of a memory leak — possibly conversation context accumulation, uncollected tool output buffers, or session state that is never freed.
Reboot Frequency
From
last reboot, the majority of reboots are not preceded by a graceful shutdown, indicating forced restarts:~10 forced reboots in 2 weeks. The overnight pattern (01:47, 00:28, 01:31, 00:47, 01:19) suggests opencode sessions left running overnight accumulate memory until the system panics.
Additional Jetsam Events (Feb 7)
Two Jetsam OOM events on Feb 7 show 5+ opencode instances ranging from 533 MB to 1,057 MB each, alongside a Python process at 6.4 GB. opencode was consistently in the top consumers.
Summary
@dzianisv commented on GitHub (Feb 11, 2026):
Analysis of Related Open PRs
There are multiple open PRs addressing the same underlying memory leak problems described in this issue, though none directly reference #12687.
Most Relevant Open PRs
output += chunkstring concatenationKey Observations
Root Causes Identified Across PRs
The community has converged on these root causes:
output += chunkstring concatenation in bash/PTY (O(n²) memory)A coordinated effort to review and merge the best parts of these PRs would likely address the kernel panic symptoms reported here.
@dzianisv commented on GitHub (Feb 11, 2026):
Based on the forensic analysis in the issue and the PRs I reviewed:
What the PRs would fix
The output += chunk string concatenation issue (PRs #12053, #9693, #10392) is almost certainly a real and significant leak. This O(n²) pattern in bash/PTY output is a well-known pathological case in JavaScript/Bun — it creates massive GC pressure and intermediate string allocations that can easily explain the 244 MB to 1.5 GB growth in 35 minutes that @dzianisv observed. Multiple PRs converge on this fix independently, which gives confidence it's a real problem.
The subscription/listener leaks (PRs #7914, #9146, #9147) are also legitimate — unremoved listeners accumulate closures that retain references to large objects.
What the PRs likely don't fully solve
2. @Thejuampi already tested PR #10392 (the most comprehensive one) and reported it didn't help for their Java/jdtls project. This suggests the LSP layer itself may be a major contributor that isn't adequately addressed — jdtls is notoriously memory-hungry, and simply capping diagnostics at 5K files may not be enough if the LSP client holds references to response objects, document buffers, or AST data.
3. Overnight idle accumulation — The kernel panics happen at 01:47, 00:28, 01:31 etc. The PRs add eviction on access (LRU) and creation (FIFO), but they don't add periodic idle cleanup that would reclaim memory when opencode is sitting unused overnight. PR #12259 has a TTL-based cleanup interval for ACP sessions, but not for the other caches.
4. No actual memory profiling — None of the PRs include heap snapshots or profiling data showing before/after. They're based on code review and reasonable assumptions, not measurement. The real dominant leak source could be something none of them address.
Bottom line
Merging the bash/PTY output fix (especially #9693's disk-streaming approach) and the subscription cleanup would meaningfully reduce memory growth. But I'd estimate they address maybe 40-60% of the problem. The multi-instance accumulation, LSP memory, and idle session cleanup gaps remain unaddressed. A proper fix likely requires heap profiling to identify what's actually holding memory in a real long-running session.
@dzianisv commented on GitHub (Feb 11, 2026):
Root Cause Analysis and Proposed Fix
After a deep dive into the codebase, here are the actual root causes ranked by impact, and a concrete fix plan.
1. No graceful shutdown on signals (THE #1 cause of zombie processes)
This is the biggest problem and explains the 10 zombie processes in the forensic analysis.
index.ts:153has afinallyblock that callsprocess.exit()but never callsInstance.disposeAll(). There are zeroSIGTERM/SIGINT/SIGHUPhandlers anywhere in the codebase. When you close a terminal:SIGHUPto opencodedetached: true(bash.ts:168), so they survive the parent dyingThis single gap explains both the zombie processes AND the multiplying memory. Each time you open a terminal, run opencode, and close the terminal without a clean exit, you leave behind orphaned LSP/MCP/bash processes.
Fix: Add
SIGTERM/SIGINT/SIGHUPhandlers that callInstance.disposeAll()before exiting. CalldisposeAll()in thefinallyblock.2. Unbounded
output += chunkin bash tool (bash.ts:171-182)This is the #1 per-process memory growth cause. Every bash command accumulates its entire output as a string via
output += chunk.toString(). For verbose builds or largefindoutputs, this creates O(n²) memory pressure from string concatenation. The output is only truncated after the command finishes — by then, memory has already spiked.Fix: Stream to disk above a threshold (like PR #9693 proposes), or use a
Buffer[]ring buffer with a cap.3. Deep clone of entire message history every prompt loop iteration (
prompt.ts:577)clone(msgs)deep-copies every message including all tool outputs on every loop turn. For a long conversation with large tool results, this temporarily doubles memory. Combined withMessageV2.stream()reloading all messages from disk each iteration (line 276), each turn has massive transient allocations.Fix: Replace the deep clone with shallow copies of only the parts that get mutated (the
<system-reminder>wrapping), or mutate in place and undo after.4. ACP sessions never cleaned up (
acp/session.ts:9)The sessions Map has no
delete(), noclear(), no dispose callback. Sessions accumulate forever.Fix: Add a dispose callback to the
Instance.state()call that clears the map.5. PermissionNext and Question missing disposal callbacks
Unlike the legacy
Permissionmodule (which properly rejects pending promises on dispose), bothPermissionNext(permission/next.ts:108) andQuestion(question/index.ts:82) registerInstance.state()without a dispose callback. Pending promises and their closures leak on instance disposal.Fix: Add dispose callbacks that reject all pending promises, matching the pattern already used in the legacy
Permissionmodule.6. FileTime tracking grows unboundedly (
file/time.ts:11-22)The
readobject tracks[sessionID][path] -> Dateand entries are never evicted.Fix: Add cleanup when sessions end, or add a dispose callback.
Proposed Implementation (~8 files)
index.tsSIGTERM/SIGINT/SIGHUPhandlers that calldisposeAll()before exittool/bash.tssession/prompt.tsclone(msgs)with targeted shallow copiesacp/session.tspermission/next.tsquestion/index.tsfile/time.tsutil/queue.tsclose()method to drain pending resolversThe signal handling fix alone would eliminate the zombie process problem (the 10-process / 9.4 GB scenario from the forensic analysis). Combined with the bash output cap and prompt clone fix, this covers the per-process memory growth. The remaining fixes are defense-in-depth for long-running sessions.
This should address ~90% of the memory exhaustion and kernel panic symptoms reported in this issue.
@dzianisv commented on GitHub (Feb 11, 2026):
Implementation Plan
Fix 1: Graceful shutdown via signal handlers (Critical — eliminates zombie processes)
Problem: No
SIGTERM/SIGINT/SIGHUPhandlers exist anywhere. When a terminal is closed,SIGHUPkills the process instantly.Instance.disposeAll()never runs. Child processes spawned withdetached: true(bash tool) survive indefinitely. LSP/MCP servers are orphaned.The only reliable cleanup path today is the TUI's graceful exit flow (
ExitProvider->shutdownRPC -> workerInstance.disposeAll()). Every other exit path (signals,servecommand, errors) skips cleanup entirely.Changes:
index.ts: AddSIGTERM/SIGINT/SIGHUPhandlers that callInstance.disposeAll()before exiting. Also calldisposeAll()in the existingfinallyblock beforeprocess.exit().worker.ts: Add matching signal handlers in the worker thread, since the worker owns the Instance state and runsdisposeAll().serve.ts: Replace the unreachable cleanup code (await new Promise(() => {})blocks forever, making lines 48-56 dead code) with a signal-based exit that properly cleans up.Fix 2: Bash/shell output accumulation (High — largest per-process memory spike)
Problem:
bash.ts:171useslet output = ""withoutput += chunk.toString()on every data event. The full output string grows unboundedly during execution. The same pattern exists inprompt.tsshell()method (~line 1499). While not a persistent leak (freed when the function returns), for verbose commands this creates massive transient memory spikes with O(n²) GC pressure from string concatenation.Changes:
bash.ts: Accumulate output in aBuffer[]array. Cap total size (e.g., 10MB). Drop oldest chunks when exceeded. Join only at the end for the return value.prompt.tsshell(): Apply the same ring buffer pattern.Fix 3: Deep clone of message history in prompt loop (High — doubles memory per turn)
Problem:
prompt.ts:577callsclone(msgs)(remeda deep clone) on the entire session message history every loop iteration. This exists because lines 580-596 mutatepart.textto wrap it in<system-reminder>tags. For long sessions with large tool outputs, this temporarily doubles memory.Changes:
prompt.ts: Instead of deep-cloning everything, create the reminder-wrapped text without mutating the original messages. Build a map ofpartID -> wrappedTextand apply it during model message construction, or shallow-copy only the specific parts that need mutation.Fix 4: Missing dispose callbacks (High — pending promises leak on shutdown)
Problem:
PermissionNext(permission/next.ts:108) andQuestion(question/index.ts:82) registerInstance.state()without dispose callbacks. The legacyPermission(permission/index.ts:53-83) does it correctly — it provides a dispose callback that rejects all pending promises. When an instance is disposed, pending promise closures (holding references to session data, tool contexts, etc.) are never freed.Changes:
permission/next.ts: Add dispose callback matching the pattern inpermission/index.ts.question/index.ts: Add dispose callback that rejects all pending question promises.Fix 5: ACP session cleanup (Medium)
Problem:
ACPSessionManager(acp/session.ts:9) stores sessions in aMapwith nodelete()ordispose()method. Sessions accumulate forever.Changes:
acp/session.ts: Add adispose()method that clears the sessions map. Wire it into the instance lifecycle.Fix 6: AsyncQueue close mechanism (Medium)
Problem:
util/queue.tshas noclose()/termination mechanism. The async iterator is infinite (while(true)). If consumers stop iterating, pending resolver callbacks stay in memory as unresolved promises.Changes:
util/queue.ts: Add aclose()method that sets a flag, resolves/rejects all pending resolvers, and causes the async iterator to terminate.Fix 7: FileTime cleanup (Low-Medium)
Problem:
file/time.tstracks[sessionID][path] -> Datefor every file read, with no eviction or cleanup.Changes:
file/time.ts: Add a dispose callback. Add aclear(sessionID)method for session-level cleanup.Expected impact
Total estimated coverage: ~90% of reported symptoms.
The signal handler fix alone eliminates the multi-process accumulation problem. Combined with the bash output cap, it addresses the two primary mechanisms that cause kernel panics on 16 GB machines.
@dzianisv commented on GitHub (Feb 11, 2026):
PR #13183 — Review and Cleanup
After a thorough self-review of the initial commit, I found and corrected several issues:
Problems caught and fixed
serve.tsimported modules that don't exist ondev—Whisper,Coqui,Tunnelwere accidentally included from a local feature branch. This would have broken the upstream build. Removed all voice/tunnel code, kept only the signal-based exit +Instance.disposeAll()fix.bash.tsmetadata preview bug —chunks.slice(0, 1).toString()callsArray.toString()(joins with commas), notBuffer.concat(). This would produce garbled TUI output. Replaced with a separatepreviewstring built incrementally and capped at 30KB.prompt.tsshell metadata calledBuffer.concat()on every data chunk — This is O(n²), the same problem as the originaloutput +=. Fixed with the same capped preview approach.Removed
ACPSessionManager.dispose()— Nobody calls it. The class is instantiated inACPAgentBridgewith no lifecycle hook to the Instance state system. Cosmetic change that fixes nothing.Removed
AsyncQueue.close()— Nobody calls it. The twoAsyncQueueinstances intui.tsare module-level singletons with no dispose lifecycle. Cosmetic change that fixes nothing.Final PR: 8 files, all meaningful
Instance.disposeAll()index.ts,worker.ts,serve.tsbash.ts,prompt.tsprompt.tsclone(msgs)every prompt looppermission/next.ts,question/index.tsfile/time.tsTesting
tsgo --noEmitpasses across all 17 packagesPR: https://github.com/anomalyco/opencode/pull/13183
@dzianisv commented on GitHub (Feb 13, 2026):
Follow-up: Crash Log Analysis After PR #13186
After submitting PR #13186, I examined fresh macOS diagnostic reports to validate whether the fixes address the actual crash mechanisms. Here are the findings.
1. Node LSP Subprocess OOM (NEW — not addressed by PR #13186)
Report:
~/Library/Logs/DiagnosticReports/node-2026-02-12-101515.ipsA
nodesubprocess (NOT the main opencode/bun process) crashed withEXC_CRASH / SIGABRTafter only 7 minutes of runtime:Stack trace shows:
node::OOMErrorHandler→v8::internal::V8::FatalProcessOutOfMemoryv8::internal::Heap::FatalProcessOutOfMemory→ GC failed to reclaim enough memoryRuntime_AllocateInYoungGeneration) — rapid small allocations overwhelmed the nurseryConcurrentMajorSweeper) trying to reclaim memory but failingThis is an LSP server (likely TypeScript server) spawned by opencode. It died from V8 heap exhaustion independently of anything our PR fixes. This aligns with @Thejuampi's report on PR #10392 that memory fixes didn't help for Java/jdtls projects — the LSP servers themselves are heavy memory consumers.
2. Revised Jetsam Analysis (page count math)
Re-examining the jetsam report with page count × 16KB conversion:
lifetimeMax(pages)Multiple opencode + node processes consuming several GB combined. The zombie process problem (no signal handlers → orphaned processes accumulate) is confirmed as the primary driver.
3. What PR #13186 Does and Doesn't Fix
Addresses (~60-70% of the problem):
Instance.disposeAll()onSIGTERM/SIGINT/SIGHUPprocessor.tspermission/next.ts,question/index.ts,file/time.tsDoes NOT address (remaining ~30-40%):
--max-old-space-sizelimit is set when spawning LSP servers. Consider addingNODE_OPTIONS=--max-old-space-size=512or similar.MessageV2.filterCompacted(MessageV2.stream(sessionID))reads ALL messages from storage on every LLM round-trip. For long sessions, this grows unboundedly.clone(msgs)atprompt.ts:577temporarily doubles memory every iterationJSON.stringifyof full state on every event to every connected client4. Recommended Next Steps
The signal handlers + O(n²) fixes won't eliminate all memory growth, but they should prevent the kernel panics and forced reboots that make this issue critical.
@dzianisv commented on GitHub (Feb 15, 2026):
Forensic Investigation: macOS Kernel Panic Caused by opencode Memory Usage
Summary
On Feb 14 at 20:16, my MacBook Pro M1 (16 GB RAM) suffered a kernel panic caused by a watchdog timeout. Root cause: 25 simultaneous opencode processes consuming a combined 18.5 GB of memory on a 16 GB machine, which caused the kernel's memory compressor to bloat and starve the watchdog daemon.
Reboot Root Cause
watchdogdfailed to check in for 94 secondsMemory state at panic time:
watchdogd→ panicopencode Memory Footprint
From Jetsam event logs near the panic:
largestProcessin multiple Jetsam eventsAdditionally, 6 diagnostic reports flagged opencode for excessive disk writes — up to 8.6 GB written in 30 minutes at 4.7 MB/s, with observed footprint growth from 868 MB → 1.6 GB (max 1.8 GB) in a single report window.
Causal Chain
Codebase Analysis: Memory Growth Sources
I analyzed the opencode codebase to identify what causes unbounded memory growth per session.
HIGH RISK
Message cache in prompt loop (
packages/opencode/src/session/prompt.ts, lines 274-376)cachevariable holds{ order: string[], map: Map<string, MessageV2.WithParts> }that persists across the entirewhile(true)prompt loopMessageV2.WithPartscontains all parts including full tool outputs, file contents as data URLs, etc.toModelMessages()full reconstruction (packages/opencode/src/session/message-v2.ts, lines 491-713)MODERATE RISK
Streaming chunk accumulation (
packages/opencode/src/session/processor.ts, lines 86-124) — chunks array per part ID grows during long streams, cleaned on finalize but large during streamingSession.messages()full DB load (packages/opencode/src/session/index.ts, lines 492-506) — loads ALL messages into memory, called by compaction/revert/summaryBus subscriptions (
packages/opencode/src/bus/index.ts, lines 89-104) — can leak if callers don't properly unsubscribeFileTime state (
packages/opencode/src/file/time.ts, lines 11-30) — grows with every file read, never pruned during session lifetimeProperly Bounded (low risk)
BUFFER_LIMITsrc/tool/truncation.ts)Next Steps
I'm experimenting with different approaches to decrease memory/VRAM usage on the
dzianisv/mainbranch. Will report back with results.Key areas to address: