Skip to content

[Feature]: Per-session boulder state for concurrent plan execution #1774

@Roeelfs

Description

@Roeelfs

Pre-submission checklist

  • I have searched existing issues and feature requests for duplicates
  • This feature request is specific to oh-my-opencode (not OpenCode core)
  • I have read the documentation

Problem Description

boulder.json is a single global file. Running /start-work on plan B overwrites plan A's state. Session A then reads boulder.json, sees plan B, and switches to it mid-execution.

This makes concurrent plan execution impossible — a common workflow when working on a backend fix in one session while a portal feature runs in another.

Steps to Reproduce

  1. Session A: /start-work on plan-a → boulder.json = plan-a
  2. Session B: /start-work on plan-b → boulder.json = plan-b (overwrites)
  3. Session A goes idle → boulder-continuation-injector reads boulder.json → injects plan-b continuation
  4. Session A abandons plan-a and starts working on plan-b

Proposed Solution

Scope boulder state per session instead of globally. Options:

  1. Per-session files: boulder-{sessionID}.json — each session reads only its own state
  2. Multi-plan map: Single file with { plans: { [sessionID]: BoulderState } }
  3. In-memory: Store boulder state in the plugin's session state map (simplest, but lost on restart)

Alternatives Considered

  • /stop-continuation on plan A before starting plan B (manual, easy to forget)
  • Separate project directories per plan (impractical for same-repo work)

Feature Type

Core Orchestration

Contribution

  • I'm willing to help with testing

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions