opencode icon indicating copy to clipboard operation
opencode copied to clipboard

fix: race condition causing prompt.set undefined error

Open chriswritescode-dev opened this issue 2 weeks ago • 1 comments

Summary

Fixes a race condition where onMount() was called before the prompt ref was initialized, causing a "undefined is not an object (evaluating 'prompt.set')" error when starting a new session from inside an existing session.

Root Cause

In packages/opencode/src/cli/cmd/tui/routes/home.tsx:79-90, the onMount() hook attempted to call prompt.set() before the ref had been assigned by the <Prompt ref={(r) => { prompt = r }} /> component. This resulted in prompt being undefined during execution.

Fix

  • Changed from onMount() to createEffect() which re-evaluates when reactive dependencies change
  • Added a guard if (once || !prompt) return to check if the prompt ref exists

Fixes #7870

chriswritescode-dev avatar Jan 11 '26 22:01 chriswritescode-dev

The following comment was made by an LLM, it may be inaccurate:

Perfect! I found a highly relevant duplicate:

Potential Duplicate Found

PR #7764 - fix: prevent prompt crash when opening new session with existing prompt https://github.com/anomalyco/opencode/pull/7764

This PR appears to address the same issue: preventing a crash related to the prompt when opening/starting a new session from within an existing session. It's almost certainly covering the same race condition bug that PR #7872 is fixing.

github-actions[bot] avatar Jan 11 '26 22:01 github-actions[bot]