@@ -57,10 +57,10 @@ def spec(self):
5757 def session_filename (self ) -> str :
5858 return ".opencode-session"
5959
60- def load_session (self , work_dir : Path ) -> Optional [Any ]:
61- return load_project_session (work_dir )
60+ def load_session (self , work_dir : Path , instance : Optional [ str ] = None ) -> Optional [Any ]:
61+ return load_project_session (work_dir , instance )
6262
63- def compute_session_key (self , session : Any ) -> str :
63+ def compute_session_key (self , session : Any , instance : Optional [ str ] = None ) -> str :
6464 if not session :
6565 return "opencode:unknown"
6666 ccb_project_id = ""
@@ -70,16 +70,18 @@ def compute_session_key(self, session: Any) -> str:
7070 ccb_project_id = compute_ccb_project_id (Path (session .work_dir ))
7171 except Exception :
7272 pass
73- return f"opencode:{ ccb_project_id } " if ccb_project_id else "opencode:unknown"
73+ prefix = f"opencode:{ instance } " if instance else "opencode"
74+ return f"{ prefix } :{ ccb_project_id } " if ccb_project_id else f"{ prefix } :unknown"
7475
7576 def handle_task (self , task : QueuedTask ) -> ProviderResult :
7677 started_ms = _now_ms ()
7778 req = task .request
7879 work_dir = Path (req .work_dir )
7980 _write_log (f"[INFO] start provider=opencode req_id={ task .req_id } work_dir={ req .work_dir } " )
8081
81- session = load_project_session (work_dir )
82- session_key = self .compute_session_key (session )
82+ instance = task .request .instance
83+ session = load_project_session (work_dir , instance )
84+ session_key = self .compute_session_key (session , instance )
8385
8486 if not session :
8587 return ProviderResult (
0 commit comments