Description
When attempting to fork a new session from a past interaction, OpenCode TUI throws a fatal error.
Error
Error: undefined is not an object (evaluating 'session().parentID')
at <anonymous> (/Users/suressan/github_manager/repos/opencode/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx:82:17)
at runComputation (/Users/suressan/github_manager/repos/opencode/node_modules/solid-js/dist/solid.js:695:22)
at updateComputation (/Users/suressan/github_manager/repos/opencode/node_modules/solid-js/dist/solid.js:677:3)
at runTop (/Users/suressan/github_manager/repos/opencode/node_modules/solid-js/dist/solid.js:784:7)
at runQueue (/Users/suressan/github_manager/repos/opencode/node_modules/solid-js/dist/solid.js:855:42)
at completeUpdates (/Users/suressan/github_manager/repos/opencode/node_modules/solid-js/dist/solid.js:811:84)
at runUpdates (/Users/suressan/github_manager/repos/opencode/node_modules/solid-js/dist/solid.js:801:5)
at setStore (/Users/suressan/github_manager/repos/opencode/node_modules/solid-js/store/dist/store.js:210:5)
at navigate (/Users/suressan/github_manager/repos/opencode/packages/opencode/src/cli/cmd/tui/routes/session/context/route.tsx:18:9)
at <anonymous> (/Users/suressan/github_manager/repos/opencode/packages/opencode/src/cli/cmd/tui/routes/session/dialog-message.tsx:83:15)
at processTicksAndRejections (native)
Steps to Reproduce
- Open an existing session from history
- Attempt to fork the session to create a new one
- Fatal error occurs
Root Cause Analysis
Line 119 in routes/session/index.tsx uses session().parentID without null-checking:
if (session().parentID) return sync.data.permission[route.sessionID] ?? []
Other lines in the same file correctly use optional chaining: session()?.parentID
The session object is undefined when the forked/parent session data hasn't loaded into the sync store yet.
Suggested Fix
// Line 119: Change from:
if (session().parentID) return sync.data.permission[route.sessionID] ?? []
// To:
if (session()?.parentID) return sync.data.permission[route.sessionID] ?? []
Environment
- OpenCode version: local (built from source)
- Platform: macOS (darwin)
Description
When attempting to fork a new session from a past interaction, OpenCode TUI throws a fatal error.
Error
Steps to Reproduce
Root Cause Analysis
Line 119 in
routes/session/index.tsxusessession().parentIDwithout null-checking:Other lines in the same file correctly use optional chaining:
session()?.parentIDThe session object is
undefinedwhen the forked/parent session data hasn't loaded into the sync store yet.Suggested Fix
Environment