openfox 2.0.106 → 2.0.108

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/CHANGELOG.md +27 -0
  3. package/dist/{chat-handler-A22X22VZ.js → chat-handler-UZ2A75DG.js} +21 -21
  4. package/dist/{chunk-46KNPXY6.js → chunk-3GJFZQNV.js} +3 -3
  5. package/dist/{chunk-HU22EVEM.js → chunk-3MYD6Y4W.js} +6 -6
  6. package/dist/{chunk-SUTJJWUK.js → chunk-63ZAFYQ7.js} +8 -8
  7. package/dist/{chunk-AYUUGKZU.js → chunk-7FKSDR7H.js} +11 -11
  8. package/dist/{chunk-27SDWNKL.js → chunk-B5MH4HQ6.js} +12 -2
  9. package/dist/{chunk-QBKAW5H4.js → chunk-CF2HEP3M.js} +4 -4
  10. package/dist/{chunk-TB7TTPYQ.js → chunk-EYMGV4YA.js} +2 -2
  11. package/dist/{chunk-RRTKVJMF.js → chunk-FR5LUTLQ.js} +12 -2
  12. package/dist/{chunk-LOHVZGCM.js → chunk-GWMNR3LC.js} +3 -3
  13. package/dist/{chunk-6VNB4L4V.js → chunk-HGOEHSVC.js} +3 -3
  14. package/dist/{chunk-G2VLGZ3Y.js → chunk-I4M6SCMY.js} +97 -146
  15. package/dist/{chunk-UXQN7FGB.js → chunk-ID4N6PM6.js} +2 -2
  16. package/dist/{chunk-V6Y6OLB4.js → chunk-IRWZJPPA.js} +2 -2
  17. package/dist/{chunk-6M44ZHQA.js → chunk-JBZW5BZX.js} +40 -20
  18. package/dist/{chunk-3C73IUUL.js → chunk-JH6SOEQW.js} +32 -4
  19. package/dist/{chunk-5M45NHQ2.js → chunk-JR54MDZI.js} +2 -2
  20. package/dist/{chunk-26DEYDYV.js → chunk-KYY5PAGE.js} +4 -4
  21. package/dist/{chunk-WDJOSRIB.js → chunk-L737Y63F.js} +5 -2
  22. package/dist/{chunk-KIAKWUZ3.js → chunk-MPWLBKSK.js} +9 -1
  23. package/dist/{chunk-X3USQHHK.js → chunk-P7HT6IJW.js} +3 -3
  24. package/dist/{chunk-OEPRHAIO.js → chunk-P7WCFUPJ.js} +2 -2
  25. package/dist/{chunk-P4APMCTX.js → chunk-PSAWMCD6.js} +16 -52
  26. package/dist/{chunk-UCIZV76E.js → chunk-Q4P4CWWV.js} +3 -3
  27. package/dist/{chunk-GXW4CRR5.js → chunk-QDKLJZO4.js} +130 -57
  28. package/dist/{chunk-IA4Y3CKA.js → chunk-TMVXOLBS.js} +2 -2
  29. package/dist/chunk-UWF4L4CK.js +7 -0
  30. package/dist/{chunk-2GM6SUIQ.js → chunk-WFWFRUBU.js} +2 -2
  31. package/dist/{chunk-SGJ3LSVA.js → chunk-YBIJI53N.js} +2 -2
  32. package/dist/cli/dev.js +1 -1
  33. package/dist/cli/index.js +1 -1
  34. package/dist/{client-MP3FSNN7.js → client-R4TZCZTO.js} +5 -5
  35. package/dist/{client-pure-USVHN4WG.js → client-pure-VFZIIK4S.js} +2 -2
  36. package/dist/{compactor-KK2BVJK5.js → compactor-U3MAROGM.js} +11 -11
  37. package/dist/{dynamic-context-ZUXI5UTW.js → dynamic-context-H7AVSAXQ.js} +7 -7
  38. package/dist/{events-OJ2R6OEM.js → events-7WAOX35W.js} +6 -6
  39. package/dist/{folding-DUZSKCZF.js → folding-MJDFKOHT.js} +4 -4
  40. package/dist/{http-client-KJXFSK7A.js → http-client-NHVT6E5C.js} +3 -3
  41. package/dist/{manager-N27WNW5B.js → manager-ZVHBUECR.js} +4 -4
  42. package/dist/{model-overrides-36SQR3JR.js → model-overrides-47LYCLFO.js} +3 -3
  43. package/dist/{orchestrator-VZORJ7KF.js → orchestrator-X7H5JRM5.js} +20 -20
  44. package/dist/package.json +4 -2
  45. package/dist/{path-security-QCIA6YFV.js → path-security-26J53LD4.js} +8 -8
  46. package/dist/{platform-Q6T3AUHA.js → platform-JOAXLXYQ.js} +3 -3
  47. package/dist/{processor-QYVHKRIV.js → processor-33OESYXP.js} +20 -20
  48. package/dist/{protocol-YDNGGADL.js → protocol-SPIJPOEN.js} +2 -2
  49. package/dist/{protocol-zRSsysOe.d.ts → protocol-_Gphic7p.d.ts} +1 -1
  50. package/dist/provider/index.d.ts +4 -4
  51. package/dist/{provider-RQQ5JN34.js → provider-U4X7BDDL.js} +6 -6
  52. package/dist/{provider-manager-RUC5QQ75.js → provider-manager-ON3V54DS.js} +6 -6
  53. package/dist/{registry-BDSTPV65.js → registry-2PP4PUCL.js} +3 -3
  54. package/dist/{serve-2O7G2WZF.js → serve-LK3LQEWW.js} +28 -28
  55. package/dist/server/index.d.ts +3 -39
  56. package/dist/server/index.js +27 -27
  57. package/dist/server-7Q5RPZKY.js +47 -0
  58. package/dist/{session-overrides-SFWPS5CT.js → session-overrides-FVX6374M.js} +5 -5
  59. package/dist/{sessions-TZNUQJ2I.js → sessions-7XOOISCY.js} +4 -4
  60. package/dist/{settings-5LG7IB3K.js → settings-H2W3SNFE.js} +2 -2
  61. package/dist/shared/index.d.ts +3 -3
  62. package/dist/{tools-Y4F4HJPO.js → tools-5C2VIQ7B.js} +18 -18
  63. package/dist/{types-CTl70hba.d.ts → types-BMEOlLT0.d.ts} +1 -0
  64. package/dist/{types-_uF_PRaD.d.ts → types-D0TgGL3t.d.ts} +1 -1
  65. package/dist/{update-QEZIUJHR.js → update-5R3HZD6U.js} +2 -2
  66. package/dist/web/assets/index-C0OFVoFt.js +323 -0
  67. package/dist/web/assets/{index-B7wjVPjL.css → index-CyWbbpRP.css} +1 -1
  68. package/dist/web/index.html +2 -2
  69. package/dist/web/sw.js +1 -1
  70. package/dist/{workspace-2OG5VQG6.js → workspace-YDUQZ3HC.js} +4 -2
  71. package/package.json +4 -2
  72. package/dist/chunk-C5YV3EA4.js +0 -7
  73. package/dist/server-CYE6XY7J.js +0 -47
  74. package/dist/web/assets/index-BxI3Y9C7.js +0 -323
package/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.108 - 2026-08-02
4
+
5
+ ### Features
6
+
7
+ - **New performance settings for long sessions** — use native scrollbars in tool calls and code blocks, auto-collapse large tool call outputs, and defer code highlighting while streaming, all off by default
8
+
9
+ ### Enhancements
10
+
11
+ - **Long chats virtualize** — only recent messages render; older ones load in batches as you scroll up
12
+ - **Sessions load faster** — data is prefetched at boot and served from a server-side snapshot cache
13
+ - **Streaming renders once per frame** — incoming deltas coalesce into a single render for smoother output
14
+ - **Rendered markdown is cached** — repeat renders skip re-parsing, and plain or oversized code blocks skip syntax highlighting
15
+ - **Finished tool call outputs trimmed to the last 1MB** — keeps session snapshots lean so long sessions load faster
16
+
17
+ ### Bug Fixes
18
+
19
+ - **Feed no longer snaps back to bottom** — scrolling up during streaming now disables auto-scroll instantly for good
20
+ - **Workflows no longer blocked by a mismatched branch** — the execution-context gate is gone
21
+ - **New workspaces inherit the session's branch** — no longer forking from the clone's default branch
22
+ - **Aborted mid-thinking content is preserved** — carried into the next LLM call when reasoning echo is enabled
23
+
24
+ ## 2.0.107 - 2026-08-02
25
+
26
+ ### Bug Fixes
27
+
28
+ - **npm install works again** — installing openfox no longer fails because the postinstall tried to build web deps inside the published package; that only happens in source checkouts now.
29
+
3
30
  ## 2.0.106 - 2026-08-02
4
31
 
5
32
  ### Features
package/dist/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.108 - 2026-08-02
4
+
5
+ ### Features
6
+
7
+ - **New performance settings for long sessions** — use native scrollbars in tool calls and code blocks, auto-collapse large tool call outputs, and defer code highlighting while streaming, all off by default
8
+
9
+ ### Enhancements
10
+
11
+ - **Long chats virtualize** — only recent messages render; older ones load in batches as you scroll up
12
+ - **Sessions load faster** — data is prefetched at boot and served from a server-side snapshot cache
13
+ - **Streaming renders once per frame** — incoming deltas coalesce into a single render for smoother output
14
+ - **Rendered markdown is cached** — repeat renders skip re-parsing, and plain or oversized code blocks skip syntax highlighting
15
+ - **Finished tool call outputs trimmed to the last 1MB** — keeps session snapshots lean so long sessions load faster
16
+
17
+ ### Bug Fixes
18
+
19
+ - **Feed no longer snaps back to bottom** — scrolling up during streaming now disables auto-scroll instantly for good
20
+ - **Workflows no longer blocked by a mismatched branch** — the execution-context gate is gone
21
+ - **New workspaces inherit the session's branch** — no longer forking from the clone's default branch
22
+ - **Aborted mid-thinking content is preserved** — carried into the next LLM call when reasoning echo is enabled
23
+
24
+ ## 2.0.107 - 2026-08-02
25
+
26
+ ### Bug Fixes
27
+
28
+ - **npm install works again** — installing openfox no longer fails because the postinstall tried to build web deps inside the published package; that only happens in source checkouts now.
29
+
3
30
  ## 2.0.106 - 2026-08-02
4
31
 
5
32
  ### Features
@@ -2,44 +2,44 @@ import {
2
2
  buildRunChatTurnParams,
3
3
  finalizeTurnCompletion,
4
4
  generateSessionNameForSession
5
- } from "./chunk-SUTJJWUK.js";
5
+ } from "./chunk-63ZAFYQ7.js";
6
6
  import {
7
7
  runChatTurn
8
- } from "./chunk-AYUUGKZU.js";
9
- import "./chunk-HU22EVEM.js";
10
- import "./chunk-6M44ZHQA.js";
11
- import "./chunk-LOHVZGCM.js";
12
- import "./chunk-5M45NHQ2.js";
13
- import "./chunk-SGJ3LSVA.js";
8
+ } from "./chunk-7FKSDR7H.js";
9
+ import "./chunk-3MYD6Y4W.js";
10
+ import "./chunk-JBZW5BZX.js";
11
+ import "./chunk-GWMNR3LC.js";
12
+ import "./chunk-JR54MDZI.js";
13
+ import "./chunk-YBIJI53N.js";
14
14
  import "./chunk-33Q7LCVD.js";
15
- import "./chunk-6VNB4L4V.js";
15
+ import "./chunk-HGOEHSVC.js";
16
16
  import "./chunk-I72ACQ6R.js";
17
17
  import "./chunk-JE7LW7Y6.js";
18
18
  import "./chunk-VKWVPQJ5.js";
19
- import "./chunk-RRTKVJMF.js";
19
+ import "./chunk-FR5LUTLQ.js";
20
20
  import "./chunk-J7GAZGZT.js";
21
- import "./chunk-OEPRHAIO.js";
22
- import "./chunk-X3USQHHK.js";
21
+ import "./chunk-P7WCFUPJ.js";
22
+ import "./chunk-P7HT6IJW.js";
23
23
  import {
24
24
  getEventStore
25
- } from "./chunk-GXW4CRR5.js";
25
+ } from "./chunk-QDKLJZO4.js";
26
26
  import {
27
27
  createChatMessageMessage,
28
28
  createPhaseChangedMessage,
29
29
  createSessionRunningMessage
30
- } from "./chunk-27SDWNKL.js";
30
+ } from "./chunk-B5MH4HQ6.js";
31
31
  import "./chunk-JAX5OEMM.js";
32
- import "./chunk-UXQN7FGB.js";
33
- import "./chunk-V6Y6OLB4.js";
32
+ import "./chunk-ID4N6PM6.js";
33
+ import "./chunk-IRWZJPPA.js";
34
34
  import "./chunk-6FPGJR7O.js";
35
- import "./chunk-3C73IUUL.js";
36
- import "./chunk-IA4Y3CKA.js";
37
- import "./chunk-2GM6SUIQ.js";
35
+ import "./chunk-JH6SOEQW.js";
36
+ import "./chunk-TMVXOLBS.js";
37
+ import "./chunk-WFWFRUBU.js";
38
38
  import "./chunk-J2GP3J3X.js";
39
39
  import "./chunk-V4IE7HJY.js";
40
40
  import "./chunk-YHEQTVFV.js";
41
- import "./chunk-WDJOSRIB.js";
42
- import "./chunk-KIAKWUZ3.js";
41
+ import "./chunk-L737Y63F.js";
42
+ import "./chunk-MPWLBKSK.js";
43
43
  import "./chunk-LCQ5AN6Y.js";
44
44
  import "./chunk-K44MW7JJ.js";
45
45
  import "./chunk-4R7G5JB6.js";
@@ -166,4 +166,4 @@ export {
166
166
  startChatSession,
167
167
  stopSessionExecution
168
168
  };
169
- //# sourceMappingURL=chat-handler-A22X22VZ.js.map
169
+ //# sourceMappingURL=chat-handler-UZ2A75DG.js.map
@@ -13,11 +13,11 @@ import {
13
13
  getThinking,
14
14
  mapFinishReason,
15
15
  parseToolArguments
16
- } from "./chunk-WDJOSRIB.js";
16
+ } from "./chunk-L737Y63F.js";
17
17
  import {
18
18
  LLMError,
19
19
  OpenAIHttpClient
20
- } from "./chunk-TB7TTPYQ.js";
20
+ } from "./chunk-EYMGV4YA.js";
21
21
  import {
22
22
  logger
23
23
  } from "./chunk-K44MW7JJ.js";
@@ -310,4 +310,4 @@ function createLLMClient(config, initialBackend = "unknown") {
310
310
  export {
311
311
  createLLMClient
312
312
  };
313
- //# sourceMappingURL=chunk-46KNPXY6.js.map
313
+ //# sourceMappingURL=chunk-3GJFZQNV.js.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  getAllInstructions,
3
3
  getEnabledSkillMetadata
4
- } from "./chunk-LOHVZGCM.js";
4
+ } from "./chunk-GWMNR3LC.js";
5
5
  import {
6
6
  buildTopLevelSystemPrompt
7
- } from "./chunk-SGJ3LSVA.js";
7
+ } from "./chunk-YBIJI53N.js";
8
8
  import {
9
9
  findAgentById,
10
10
  getRuntimeConfig,
11
11
  getSubAgents,
12
12
  loadAllAgentsDefault,
13
13
  resolveDefaultAgentId
14
- } from "./chunk-2GM6SUIQ.js";
14
+ } from "./chunk-WFWFRUBU.js";
15
15
  import {
16
16
  logger
17
17
  } from "./chunk-K44MW7JJ.js";
@@ -105,7 +105,7 @@ function resolveAgentDef(sessionManager, sessionId) {
105
105
  }
106
106
  async function buildCachedPrompt(sessionManager, sessionId, agentDef, modelName) {
107
107
  const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
108
- const { getToolRegistryForAgent } = await import("./tools-Y4F4HJPO.js");
108
+ const { getToolRegistryForAgent } = await import("./tools-5C2VIQ7B.js");
109
109
  const tools = getToolRegistryForAgent(agentDef, sessionId).definitions;
110
110
  const toolFingerprint = getToolFingerprint(tools);
111
111
  const allAgents = await loadAllAgentsDefault();
@@ -124,7 +124,7 @@ async function buildCachedPrompt(sessionManager, sessionId, agentDef, modelName)
124
124
  async function computeSessionHash(sessionManager, sessionId, modelName) {
125
125
  const { instructionContent, skills } = await loadSessionContext(sessionManager, sessionId);
126
126
  const agentDef = await resolveAgentDef(sessionManager, sessionId);
127
- const { getToolRegistryForAgent } = await import("./tools-Y4F4HJPO.js");
127
+ const { getToolRegistryForAgent } = await import("./tools-5C2VIQ7B.js");
128
128
  const tools = getToolRegistryForAgent(agentDef, sessionId).definitions;
129
129
  const toolFingerprint = getToolFingerprint(tools);
130
130
  return computeDynamicContextHash(instructionContent, skills, toolFingerprint, modelName);
@@ -148,4 +148,4 @@ export {
148
148
  computeSessionHash,
149
149
  applyDynamicContext
150
150
  };
151
- //# sourceMappingURL=chunk-HU22EVEM.js.map
151
+ //# sourceMappingURL=chunk-3MYD6Y4W.js.map
@@ -1,27 +1,27 @@
1
1
  import {
2
2
  combineEventsWithSnapshot,
3
3
  getEventStore
4
- } from "./chunk-GXW4CRR5.js";
4
+ } from "./chunk-QDKLJZO4.js";
5
5
  import {
6
6
  createContextStateMessage,
7
7
  createSessionStateMessage
8
- } from "./chunk-27SDWNKL.js";
8
+ } from "./chunk-B5MH4HQ6.js";
9
9
  import {
10
10
  getPendingQuestionsForSession
11
11
  } from "./chunk-JAX5OEMM.js";
12
12
  import {
13
13
  buildMessagesFromStoredEvents,
14
14
  foldPendingConfirmations
15
- } from "./chunk-3C73IUUL.js";
15
+ } from "./chunk-JH6SOEQW.js";
16
16
  import {
17
17
  updateSessionMetadata
18
- } from "./chunk-IA4Y3CKA.js";
18
+ } from "./chunk-TMVXOLBS.js";
19
19
  import {
20
20
  getRuntimeConfig
21
- } from "./chunk-2GM6SUIQ.js";
21
+ } from "./chunk-WFWFRUBU.js";
22
22
  import {
23
23
  getMaxVisibleItems
24
- } from "./chunk-KIAKWUZ3.js";
24
+ } from "./chunk-MPWLBKSK.js";
25
25
  import {
26
26
  logger
27
27
  } from "./chunk-K44MW7JJ.js";
@@ -153,7 +153,7 @@ async function generateSessionNameForSession(sessionId, userMessage, deps, signa
153
153
  client = deps.getLLMClient();
154
154
  client.setModel(providerConfig.model);
155
155
  } else if (providerConfig) {
156
- const { createLLMClient } = await import("./client-MP3FSNN7.js");
156
+ const { createLLMClient } = await import("./client-R4TZCZTO.js");
157
157
  client = createLLMClient({
158
158
  llm: {
159
159
  baseUrl: providerConfig.baseUrl,
@@ -204,4 +204,4 @@ export {
204
204
  needsNameGeneration,
205
205
  generateSessionNameForSession
206
206
  };
207
- //# sourceMappingURL=chunk-SUTJJWUK.js.map
207
+ //# sourceMappingURL=chunk-63ZAFYQ7.js.map
@@ -2,44 +2,44 @@ import {
2
2
  buildCachedPrompt,
3
3
  computeDynamicContextHash,
4
4
  getToolFingerprint
5
- } from "./chunk-HU22EVEM.js";
5
+ } from "./chunk-3MYD6Y4W.js";
6
6
  import {
7
7
  createAssemblyResult,
8
8
  getConversationMessages,
9
9
  getToolRegistryForAgent,
10
10
  processEventsForConversation,
11
11
  runTopLevelAgentLoop
12
- } from "./chunk-6M44ZHQA.js";
12
+ } from "./chunk-JBZW5BZX.js";
13
13
  import {
14
14
  getAllInstructions,
15
15
  getEnabledSkillMetadata
16
- } from "./chunk-LOHVZGCM.js";
16
+ } from "./chunk-GWMNR3LC.js";
17
17
  import {
18
18
  TurnMetrics,
19
19
  createChatDoneEvent,
20
20
  createMessageStartEvent
21
- } from "./chunk-5M45NHQ2.js";
21
+ } from "./chunk-JR54MDZI.js";
22
22
  import {
23
23
  buildAgentReminder,
24
24
  buildAgentSmallReminder
25
- } from "./chunk-SGJ3LSVA.js";
25
+ } from "./chunk-YBIJI53N.js";
26
26
  import {
27
27
  PathAccessDeniedError
28
- } from "./chunk-X3USQHHK.js";
28
+ } from "./chunk-P7HT6IJW.js";
29
29
  import {
30
30
  getCurrentContextWindowId,
31
31
  getCurrentWindowMessageOptions,
32
32
  getEventStore
33
- } from "./chunk-GXW4CRR5.js";
33
+ } from "./chunk-QDKLJZO4.js";
34
34
  import {
35
35
  buildSnapshotFromSessionState
36
- } from "./chunk-3C73IUUL.js";
36
+ } from "./chunk-JH6SOEQW.js";
37
37
  import {
38
38
  findAgentById,
39
39
  getRuntimeConfig,
40
40
  loadAllAgentsDefault,
41
41
  resolveDefaultAgentId
42
- } from "./chunk-2GM6SUIQ.js";
42
+ } from "./chunk-WFWFRUBU.js";
43
43
  import {
44
44
  logger
45
45
  } from "./chunk-K44MW7JJ.js";
@@ -49,7 +49,7 @@ import {
49
49
 
50
50
  // src/server/chat/orchestrator.ts
51
51
  async function buildRetryPatterns() {
52
- const { getSetting, SETTINGS_KEYS } = await import("./settings-5LG7IB3K.js");
52
+ const { getSetting, SETTINGS_KEYS } = await import("./settings-H2W3SNFE.js");
53
53
  const raw = getSetting(SETTINGS_KEYS.RETRY_PATTERNS);
54
54
  if (!raw) {
55
55
  const oldXmlProtection = getSetting("llm.disableXmlProtection");
@@ -319,4 +319,4 @@ export {
319
319
  runChatTurn,
320
320
  runAgentTurn
321
321
  };
322
- //# sourceMappingURL=chunk-AYUUGKZU.js.map
322
+ //# sourceMappingURL=chunk-7FKSDR7H.js.map
@@ -3,6 +3,15 @@ import {
3
3
  isClientMessage
4
4
  } from "./chunk-4R7G5JB6.js";
5
5
 
6
+ // src/server/session/client-session.ts
7
+ function toClientSession(session) {
8
+ return {
9
+ ...session,
10
+ messageCount: session.messageCount ?? session.messages.length,
11
+ messages: []
12
+ };
13
+ }
14
+
6
15
  // src/server/ws/protocol.ts
7
16
  function enrichMessagesWithToolResults(messages) {
8
17
  const resultMap = /* @__PURE__ */ new Map();
@@ -48,7 +57,7 @@ function createSessionStateMessage(session, messages, pendingConfirmations = [],
48
57
  return createServerMessage(
49
58
  "session.state",
50
59
  {
51
- session,
60
+ session: toClientSession(session),
52
61
  messages: enrichedMessages,
53
62
  pendingConfirmations,
54
63
  ...pendingQuestions ? { pendingQuestions } : {},
@@ -315,6 +324,7 @@ function storedEventToServerMessage(event) {
315
324
  }
316
325
 
317
326
  export {
327
+ toClientSession,
318
328
  parseClientMessage,
319
329
  serializeServerMessage,
320
330
  createErrorMessage,
@@ -352,4 +362,4 @@ export {
352
362
  createQueueStateMessage,
353
363
  storedEventToServerMessage
354
364
  };
355
- //# sourceMappingURL=chunk-27SDWNKL.js.map
365
+ //# sourceMappingURL=chunk-B5MH4HQ6.js.map
@@ -163,7 +163,7 @@ async function runCli(options) {
163
163
  break;
164
164
  }
165
165
  case "provider": {
166
- const { runProviderCommand } = await import("./provider-RQQ5JN34.js");
166
+ const { runProviderCommand } = await import("./provider-U4X7BDDL.js");
167
167
  const [, subcommand] = positionals;
168
168
  await runProviderCommand(mode, subcommand);
169
169
  break;
@@ -200,7 +200,7 @@ async function runCli(options) {
200
200
  break;
201
201
  }
202
202
  case "update": {
203
- const { runUpdate } = await import("./update-QEZIUJHR.js");
203
+ const { runUpdate } = await import("./update-5R3HZD6U.js");
204
204
  const code = await runUpdate();
205
205
  if (code !== 0) {
206
206
  process.exit(code);
@@ -213,7 +213,7 @@ async function runCli(options) {
213
213
  if (!configExists) {
214
214
  await runNetworkSetup(mode);
215
215
  }
216
- const { runServe } = await import("./serve-2O7G2WZF.js");
216
+ const { runServe } = await import("./serve-LK3LQEWW.js");
217
217
  const serveOptions = { mode };
218
218
  if (values.port) serveOptions.port = parseInt(values.port);
219
219
  if (values["no-browser"] === true) serveOptions.openBrowser = false;
@@ -225,4 +225,4 @@ async function runCli(options) {
225
225
  export {
226
226
  runCli
227
227
  };
228
- //# sourceMappingURL=chunk-QBKAW5H4.js.map
228
+ //# sourceMappingURL=chunk-CF2HEP3M.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SETTINGS_KEYS,
3
3
  getSetting
4
- } from "./chunk-KIAKWUZ3.js";
4
+ } from "./chunk-MPWLBKSK.js";
5
5
  import {
6
6
  logger
7
7
  } from "./chunk-K44MW7JJ.js";
@@ -164,4 +164,4 @@ export {
164
164
  WorkspaceInUseError,
165
165
  OpenAIHttpClient
166
166
  };
167
- //# sourceMappingURL=chunk-TB7TTPYQ.js.map
167
+ //# sourceMappingURL=chunk-EYMGV4YA.js.map
@@ -190,6 +190,15 @@ function createBranch(cwd, name, sourceBranch) {
190
190
  const args = sourceBranch ? ["checkout", "-b", name, sourceBranch] : ["checkout", "-b", name];
191
191
  return runGit(cwd, args);
192
192
  }
193
+ async function checkoutBranchFromSharedSource(wsPath, branch) {
194
+ const created = await runGit(wsPath, ["checkout", "-b", branch, `origin/${branch}`]).then(
195
+ () => true,
196
+ () => false
197
+ );
198
+ if (!created) {
199
+ await runGit(wsPath, ["checkout", "-b", branch]);
200
+ }
201
+ }
193
202
  async function workspaceExists(projectName, name, projectDir) {
194
203
  const dir = await getWorkspacesDir(projectName, projectDir);
195
204
  const wsPath = resolve2(dir, name);
@@ -244,7 +253,7 @@ async function ensureWorkspace(projectDir, name, projectName, branch, sourceBran
244
253
  const sb = await resolveAndValidateSourceBranch(wsPath, sourceBranch, projectDir);
245
254
  await runGit(wsPath, ["checkout", "-b", branch, sb]);
246
255
  } else {
247
- await runGit(wsPath, ["checkout", "-b", branch]);
256
+ await checkoutBranchFromSharedSource(wsPath, branch);
248
257
  }
249
258
  } catch (innerErr) {
250
259
  throw new Error(
@@ -313,10 +322,11 @@ export {
313
322
  validateWorkspaceName,
314
323
  checkoutBranch,
315
324
  createBranch,
325
+ checkoutBranchFromSharedSource,
316
326
  workspaceExists,
317
327
  listWorkspaces,
318
328
  ensureWorkspace,
319
329
  deleteWorkspace,
320
330
  isGitRepository
321
331
  };
322
- //# sourceMappingURL=chunk-RRTKVJMF.js.map
332
+ //# sourceMappingURL=chunk-FR5LUTLQ.js.map
@@ -5,13 +5,13 @@ import {
5
5
  deleteItemFromDir,
6
6
  loadItemsFromDir,
7
7
  pathExists
8
- } from "./chunk-2GM6SUIQ.js";
8
+ } from "./chunk-WFWFRUBU.js";
9
9
  import {
10
10
  SETTINGS_KEYS,
11
11
  deleteSetting,
12
12
  getSetting,
13
13
  setSetting
14
- } from "./chunk-KIAKWUZ3.js";
14
+ } from "./chunk-MPWLBKSK.js";
15
15
 
16
16
  // src/server/context/instructions.ts
17
17
  import { readFile, access } from "fs/promises";
@@ -440,4 +440,4 @@ export {
440
440
  deleteSkill,
441
441
  deleteProjectSkill
442
442
  };
443
- //# sourceMappingURL=chunk-LOHVZGCM.js.map
443
+ //# sourceMappingURL=chunk-GWMNR3LC.js.map
@@ -11,11 +11,11 @@ import {
11
11
  } from "./chunk-I72ACQ6R.js";
12
12
  import {
13
13
  getPlatformShell
14
- } from "./chunk-UXQN7FGB.js";
14
+ } from "./chunk-ID4N6PM6.js";
15
15
  import {
16
16
  SETTINGS_KEYS,
17
17
  getSetting
18
- } from "./chunk-KIAKWUZ3.js";
18
+ } from "./chunk-MPWLBKSK.js";
19
19
 
20
20
  // src/server/utils/shell.ts
21
21
  import { spawn } from "child_process";
@@ -163,4 +163,4 @@ export {
163
163
  getSessionProcesses2 as getSessionProcesses,
164
164
  getProcessLogs
165
165
  };
166
- //# sourceMappingURL=chunk-6VNB4L4V.js.map
166
+ //# sourceMappingURL=chunk-HGOEHSVC.js.map