@stigmer/react 3.0.8-dev.20260612122433 → 3.0.8-dev.20260613051837

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 (88) hide show
  1. package/execution/ExecutionProgress.d.ts.map +1 -1
  2. package/execution/ExecutionProgress.js +5 -1
  3. package/execution/ExecutionProgress.js.map +1 -1
  4. package/execution/MessageThread.d.ts +32 -3
  5. package/execution/MessageThread.d.ts.map +1 -1
  6. package/execution/MessageThread.js +59 -10
  7. package/execution/MessageThread.js.map +1 -1
  8. package/execution/useExecutionStream.d.ts +76 -5
  9. package/execution/useExecutionStream.d.ts.map +1 -1
  10. package/execution/useExecutionStream.js +166 -23
  11. package/execution/useExecutionStream.js.map +1 -1
  12. package/internal/VirtualizedThread.d.ts +3 -1
  13. package/internal/VirtualizedThread.d.ts.map +1 -1
  14. package/internal/VirtualizedThread.js +4 -2
  15. package/internal/VirtualizedThread.js.map +1 -1
  16. package/internal/backoff.d.ts +61 -0
  17. package/internal/backoff.d.ts.map +1 -0
  18. package/internal/backoff.js +79 -0
  19. package/internal/backoff.js.map +1 -0
  20. package/internal/store/conversation-store.d.ts +34 -0
  21. package/internal/store/conversation-store.d.ts.map +1 -1
  22. package/internal/store/conversation-store.js +50 -2
  23. package/internal/store/conversation-store.js.map +1 -1
  24. package/internal/store/workflow-execution-event-store.d.ts +12 -0
  25. package/internal/store/workflow-execution-event-store.d.ts.map +1 -1
  26. package/internal/store/workflow-execution-event-store.js +7 -0
  27. package/internal/store/workflow-execution-event-store.js.map +1 -1
  28. package/internal/stream-controller.d.ts +57 -21
  29. package/internal/stream-controller.d.ts.map +1 -1
  30. package/internal/stream-controller.js +117 -3
  31. package/internal/stream-controller.js.map +1 -1
  32. package/internal/useFetch.d.ts +7 -0
  33. package/internal/useFetch.d.ts.map +1 -1
  34. package/internal/useFetch.js +21 -0
  35. package/internal/useFetch.js.map +1 -1
  36. package/package.json +4 -4
  37. package/session/SessionViewer.js +26 -1
  38. package/session/SessionViewer.js.map +1 -1
  39. package/session/useSessionConversation.d.ts +41 -4
  40. package/session/useSessionConversation.d.ts.map +1 -1
  41. package/session/useSessionConversation.js +74 -10
  42. package/session/useSessionConversation.js.map +1 -1
  43. package/session/useSessionExecutions.d.ts +17 -1
  44. package/session/useSessionExecutions.d.ts.map +1 -1
  45. package/session/useSessionExecutions.js +6 -2
  46. package/session/useSessionExecutions.js.map +1 -1
  47. package/src/execution/ExecutionProgress.tsx +12 -0
  48. package/src/execution/MessageThread.tsx +174 -5
  49. package/src/execution/__tests__/MessageThread.test.tsx +64 -0
  50. package/src/execution/__tests__/useExecutionStream.test.tsx +279 -0
  51. package/src/execution/useExecutionStream.ts +254 -34
  52. package/src/internal/VirtualizedThread.tsx +7 -1
  53. package/src/internal/__tests__/backoff.test.ts +99 -0
  54. package/src/internal/__tests__/stream-controller.test.ts +165 -10
  55. package/src/internal/__tests__/useFetch.test.tsx +59 -0
  56. package/src/internal/backoff.ts +100 -0
  57. package/src/internal/store/__tests__/conversation-store.test.ts +61 -0
  58. package/src/internal/store/conversation-store.ts +68 -3
  59. package/src/internal/store/workflow-execution-event-store.ts +22 -0
  60. package/src/internal/stream-controller.ts +151 -26
  61. package/src/internal/useFetch.ts +26 -0
  62. package/src/session/SessionViewer.tsx +89 -0
  63. package/src/session/__tests__/useSessionConversation.test.tsx +53 -0
  64. package/src/session/useSessionConversation.ts +121 -15
  65. package/src/session/useSessionExecutions.ts +23 -1
  66. package/src/workflow/WorkflowExecutionHeader.tsx +4 -1
  67. package/src/workflow/WorkflowExecutionTimeline.tsx +2 -1
  68. package/src/workflow/__tests__/useWorkflowExecutionEventStream.test.tsx +117 -1
  69. package/src/workflow/execution/useWaterfallEntries.ts +2 -1
  70. package/src/workflow/useWorkflowExecutionEventStream.ts +122 -41
  71. package/src/workflow/waterfall/WaterfallTimeline.tsx +2 -1
  72. package/styles.css +1 -1
  73. package/workflow/WorkflowExecutionHeader.d.ts.map +1 -1
  74. package/workflow/WorkflowExecutionHeader.js +3 -1
  75. package/workflow/WorkflowExecutionHeader.js.map +1 -1
  76. package/workflow/WorkflowExecutionTimeline.d.ts.map +1 -1
  77. package/workflow/WorkflowExecutionTimeline.js +1 -1
  78. package/workflow/WorkflowExecutionTimeline.js.map +1 -1
  79. package/workflow/execution/useWaterfallEntries.d.ts.map +1 -1
  80. package/workflow/execution/useWaterfallEntries.js +1 -1
  81. package/workflow/execution/useWaterfallEntries.js.map +1 -1
  82. package/workflow/useWorkflowExecutionEventStream.d.ts +32 -4
  83. package/workflow/useWorkflowExecutionEventStream.d.ts.map +1 -1
  84. package/workflow/useWorkflowExecutionEventStream.js +75 -32
  85. package/workflow/useWorkflowExecutionEventStream.js.map +1 -1
  86. package/workflow/waterfall/WaterfallTimeline.d.ts.map +1 -1
  87. package/workflow/waterfall/WaterfallTimeline.js +1 -1
  88. package/workflow/waterfall/WaterfallTimeline.js.map +1 -1
@@ -14,6 +14,8 @@ const IDLE_STATE = { stage: "idle" };
14
14
  export class ConversationStore {
15
15
  _execution = null;
16
16
  _streamState = IDLE_STATE;
17
+ _connectTimedOut = false;
18
+ _isSlow = false;
17
19
  _listeners = new Set();
18
20
  // -- Ingestion -----------------------------------------------------------
19
21
  /**
@@ -38,15 +40,46 @@ export class ConversationStore {
38
40
  this._streamState = state;
39
41
  this._notify();
40
42
  }
43
+ /**
44
+ * Set the hard connect-timeout signal — the stream opened but no first
45
+ * snapshot arrived within the watchdog window even after a silent retry.
46
+ *
47
+ * Orthogonal to {@link setStreamState}: the stream may still be live, so
48
+ * this is **not** a lifecycle stage and deliberately does not touch the
49
+ * `error` stage (that is auto-reconnect's domain). Booleans are stable by
50
+ * value, so no snapshot caching is needed; listeners fire only on change.
51
+ */
52
+ setConnectTimedOut(value) {
53
+ if (this._connectTimedOut === value)
54
+ return;
55
+ this._connectTimedOut = value;
56
+ this._notify();
57
+ }
58
+ /**
59
+ * Set the soft slow-stall hint — the stream is non-terminal but has gone
60
+ * silent past the watchdog window. Purely informational ("still working,
61
+ * taking longer than usual"); cleared by the next snapshot. Never aborts.
62
+ */
63
+ setSlow(value) {
64
+ if (this._isSlow === value)
65
+ return;
66
+ this._isSlow = value;
67
+ this._notify();
68
+ }
41
69
  /**
42
70
  * Reset to initial state. Used when the session identity changes
43
71
  * or the hook unmounts.
44
72
  */
45
73
  reset() {
46
- const wasIdle = this._execution === null && this._streamState.stage === "idle";
74
+ const wasClean = this._execution === null &&
75
+ this._streamState.stage === "idle" &&
76
+ !this._connectTimedOut &&
77
+ !this._isSlow;
47
78
  this._execution = null;
48
79
  this._streamState = IDLE_STATE;
49
- if (!wasIdle)
80
+ this._connectTimedOut = false;
81
+ this._isSlow = false;
82
+ if (!wasClean)
50
83
  this._notify();
51
84
  }
52
85
  // -- useSyncExternalStore contract ---------------------------------------
@@ -68,6 +101,14 @@ export class ConversationStore {
68
101
  getStreamState = () => {
69
102
  return this._streamState;
70
103
  };
104
+ /** Stable snapshot selector for the hard connect-timeout signal. */
105
+ getConnectTimedOut = () => {
106
+ return this._connectTimedOut;
107
+ };
108
+ /** Stable snapshot selector for the soft slow-stall hint. */
109
+ getSlow = () => {
110
+ return this._isSlow;
111
+ };
71
112
  // -- Internal ------------------------------------------------------------
72
113
  _notify() {
73
114
  for (const listener of this._listeners) {
@@ -88,6 +129,13 @@ function streamStateEqual(a, b) {
88
129
  a.executionId === b.executionId &&
89
130
  a.error === b.error)
90
131
  return true;
132
+ // Each retry bumps `attempt`, so two reconnecting states are only equal
133
+ // when the attempt matches — every attempt must re-notify subscribers.
134
+ if (a.stage === "reconnecting" &&
135
+ b.stage === "reconnecting" &&
136
+ a.executionId === b.executionId &&
137
+ a.attempt === b.attempt)
138
+ return true;
91
139
  if ("executionId" in a && "executionId" in b)
92
140
  return a.executionId === b.executionId;
93
141
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-store.js","sourceRoot":"","sources":["../../../src/internal/store/conversation-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAiBrD,MAAM,UAAU,GAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAQlD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,iBAAiB;IACpB,UAAU,GAA0B,IAAI,CAAC;IACzC,YAAY,GAAgB,UAAU,CAAC;IACvC,UAAU,GAAG,IAAI,GAAG,EAAY,CAAC;IAEzC,2EAA2E;IAE3E;;;;OAIG;IACH,cAAc,CAAC,QAAwB;QACrC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU;YAAE,OAAO;QACvC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,KAAkB;QAC/B,IAAI,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;YAAE,OAAO;QACvD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,MAAM,OAAO,GACX,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,MAAM,CAAC;QACjE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;QAC/B,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,2EAA2E;IAE3E;;;OAGG;IACH,SAAS,GAAG,CAAC,QAAkB,EAAgB,EAAE;QAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,0DAA0D;IAC1D,YAAY,GAAG,GAA0B,EAAE;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC,CAAC;IAEF,+DAA+D;IAC/D,cAAc,GAAG,GAAgB,EAAE;QACjC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC,CAAC;IAEF,2EAA2E;IAEnE,OAAO;QACb,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;CACF;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,gBAAgB,CAAC,CAAc,EAAE,CAAc;IACtD,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpC,IACE,CAAC,CAAC,KAAK,KAAK,OAAO;QACnB,CAAC,CAAC,KAAK,KAAK,OAAO;QACnB,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;QAC/B,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAEnB,OAAO,IAAI,CAAC;IACd,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC;QAC1C,OAAO,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,CAAC;IACzC,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"conversation-store.js","sourceRoot":"","sources":["../../../src/internal/store/conversation-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA8BrD,MAAM,UAAU,GAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAQlD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,iBAAiB;IACpB,UAAU,GAA0B,IAAI,CAAC;IACzC,YAAY,GAAgB,UAAU,CAAC;IACvC,gBAAgB,GAAG,KAAK,CAAC;IACzB,OAAO,GAAG,KAAK,CAAC;IAChB,UAAU,GAAG,IAAI,GAAG,EAAY,CAAC;IAEzC,2EAA2E;IAE3E;;;;OAIG;IACH,cAAc,CAAC,QAAwB;QACrC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC1D,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU;YAAE,OAAO;QACvC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,KAAkB;QAC/B,IAAI,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;YAAE,OAAO;QACvD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;;;;;;OAQG;IACH,kBAAkB,CAAC,KAAc;QAC/B,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK;YAAE,OAAO;QAC5C,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,KAAc;QACpB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK;YAAE,OAAO;QACnC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,MAAM,QAAQ,GACZ,IAAI,CAAC,UAAU,KAAK,IAAI;YACxB,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,MAAM;YAClC,CAAC,IAAI,CAAC,gBAAgB;YACtB,CAAC,IAAI,CAAC,OAAO,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC;IAED,2EAA2E;IAE3E;;;OAGG;IACH,SAAS,GAAG,CAAC,QAAkB,EAAgB,EAAE;QAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,0DAA0D;IAC1D,YAAY,GAAG,GAA0B,EAAE;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC,CAAC;IAEF,+DAA+D;IAC/D,cAAc,GAAG,GAAgB,EAAE;QACjC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC,CAAC;IAEF,oEAAoE;IACpE,kBAAkB,GAAG,GAAY,EAAE;QACjC,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC,CAAC;IAEF,6DAA6D;IAC7D,OAAO,GAAG,GAAY,EAAE;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC,CAAC;IAEF,2EAA2E;IAEnE,OAAO;QACb,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;CACF;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,gBAAgB,CAAC,CAAc,EAAE,CAAc;IACtD,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpC,IACE,CAAC,CAAC,KAAK,KAAK,OAAO;QACnB,CAAC,CAAC,KAAK,KAAK,OAAO;QACnB,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;QAC/B,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAEnB,OAAO,IAAI,CAAC;IACd,wEAAwE;IACxE,uEAAuE;IACvE,IACE,CAAC,CAAC,KAAK,KAAK,cAAc;QAC1B,CAAC,CAAC,KAAK,KAAK,cAAc;QAC1B,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;QAC/B,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO;QAEvB,OAAO,IAAI,CAAC;IACd,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC;QAC1C,OAAO,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,CAAC;IACzC,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -8,6 +8,18 @@ export type WorkflowEventStreamState = {
8
8
  } | {
9
9
  readonly stage: "streaming";
10
10
  readonly executionId: string;
11
+ } | {
12
+ /**
13
+ * A non-terminal event stream drop is being retried in the background.
14
+ * Accumulated events stay visible and no error is surfaced until retries
15
+ * are exhausted. On reconnect the subscription resumes from the last
16
+ * received `sequence_number`, so no events are lost. `attempt` is the
17
+ * 1-based retry count; `error` is the transient cause (diagnostic only).
18
+ */
19
+ readonly stage: "reconnecting";
20
+ readonly executionId: string;
21
+ readonly attempt: number;
22
+ readonly error: Error;
11
23
  } | {
12
24
  readonly stage: "complete";
13
25
  readonly executionId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-execution-event-store.d.ts","sourceRoot":"","sources":["../../../src/internal/store/workflow-execution-event-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAC;AAE/G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAC;AAM/F,MAAM,MAAM,wBAAwB,GAChC;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC5D;IACE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB,GACD;IAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAQpE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,kBAAkB,CAAC;IAC9G,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;CACrC;AAiBD,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B;;;;;;;;;;GAUG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,UAAU,CAAuB;IAEzC,OAAO,CAAC,gBAAgB,CAAsD;IAC9E,OAAO,CAAC,iBAAiB,CAAmC;IAC5D,OAAO,CAAC,WAAW,CAAK;IAIxB;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,SAAS,sBAAsB,EAAE,GAAG,IAAI;IAgC7D;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,wBAAwB,GAAG,IAAI;IAMrD;;OAEG;IACH,KAAK,IAAI,IAAI;IAab,SAAS,GAAI,UAAU,QAAQ,KAAG,CAAC,MAAM,IAAI,CAAC,CAK5C;IAEF,SAAS,QAAO,SAAS,sBAAsB,EAAE,CAE/C;IAEF,cAAc,QAAO,wBAAwB,CAE3C;IAEF,iBAAiB,QAAO,MAAM,CAG5B;IAEF,aAAa,QAAO,MAAM,CAExB;IAEF;;;;OAIG;IACH,aAAa,QAAO,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAIvD;IAEF;;;OAGG;IACH,cAAc,QAAO,kBAAkB,CAIrC;IAIF,OAAO,CAAC,OAAO;CAKhB"}
1
+ {"version":3,"file":"workflow-execution-event-store.d.ts","sourceRoot":"","sources":["../../../src/internal/store/workflow-execution-event-store.ts"],"names":[],"mappings":"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"}
@@ -323,6 +323,13 @@ function streamStateEqual(a, b) {
323
323
  a.executionId === b.executionId &&
324
324
  a.error === b.error)
325
325
  return true;
326
+ // Each retry bumps `attempt`, so two reconnecting states are only equal
327
+ // when the attempt matches — every attempt must re-notify subscribers.
328
+ if (a.stage === "reconnecting" &&
329
+ b.stage === "reconnecting" &&
330
+ a.executionId === b.executionId &&
331
+ a.attempt === b.attempt)
332
+ return true;
326
333
  if ("executionId" in a && "executionId" in b)
327
334
  return a.executionId === b.executionId;
328
335
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-execution-event-store.js","sourceRoot":"","sources":["../../../src/internal/store/workflow-execution-event-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-execution-event-store.js","sourceRoot":"","sources":["../../../src/internal/store/workflow-execution-event-store.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,18 @@
1
1
  import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
2
- export type ControllerStage = "idle" | "connecting" | "streaming" | "complete" | "error";
3
- export type ControllerState = {
4
- readonly stage: "idle";
5
- } | {
6
- readonly stage: "connecting";
7
- readonly executionId: string;
8
- } | {
9
- readonly stage: "streaming";
10
- readonly executionId: string;
11
- } | {
12
- readonly stage: "complete";
13
- readonly executionId: string;
14
- } | {
15
- readonly stage: "error";
16
- readonly executionId: string;
17
- readonly error: Error;
18
- };
2
+ import type { StreamState } from "./store/conversation-store";
3
+ /**
4
+ * Hard connect-timeout: time the stream may stay `connecting` (no first
5
+ * snapshot) before the watchdog acts. Sized well above a healthy connect
6
+ * (the server sends the initial snapshot in ~1 RTT) yet short enough that a
7
+ * silent hang surfaces an affordance within a few seconds, not minutes.
8
+ */
9
+ export declare const DEFAULT_CONNECT_TIMEOUT_MS = 10000;
10
+ /**
11
+ * Soft slow-stall threshold: a non-terminal stream that produces no new
12
+ * snapshot for this long flips an informational "still working" hint. Long
13
+ * enough that ordinary model thinking-time never trips it.
14
+ */
15
+ export declare const DEFAULT_SLOW_THRESHOLD_MS = 60000;
19
16
  /**
20
17
  * Callback interface for the stream controller to communicate with
21
18
  * its host (the React hook). All mutations to external state go
@@ -25,7 +22,27 @@ export interface StreamControllerSink {
25
22
  /** Ingest a snapshot into the store (applies structural sharing). */
26
23
  ingestSnapshot(snapshot: AgentExecution): void;
27
24
  /** Transition the store's stream lifecycle state. */
28
- setStreamState(state: ControllerState): void;
25
+ setStreamState(state: StreamState): void;
26
+ /**
27
+ * The hard connect-timeout elapsed while still `connecting`. The host owns
28
+ * the self-heal-once-then-surface policy (it holds the `connectKey` reconnect
29
+ * counter and the per-subscription guard that survives a reconnect, which
30
+ * the controller — reset on every teardown — cannot).
31
+ */
32
+ onConnectTimeout(): void;
33
+ /** Set or clear the soft slow-stall hint signal. */
34
+ setSlow(value: boolean): void;
35
+ }
36
+ /**
37
+ * Injectable watchdog configuration. Timers default to `setTimeout`/
38
+ * `clearTimeout`; tests pass fakes so the watchdog is exercised without real
39
+ * time. Mirrors the existing `scheduleFlush`/`cancelFlush` injection idiom.
40
+ */
41
+ export interface StreamControllerWatchdog {
42
+ readonly setTimer?: (cb: () => void, ms: number) => number;
43
+ readonly clearTimer?: (id: number) => void;
44
+ readonly connectTimeoutMs?: number;
45
+ readonly slowThresholdMs?: number;
29
46
  }
30
47
  /**
31
48
  * Framework-agnostic finite state machine that manages the lifecycle
@@ -48,9 +65,15 @@ export declare class StreamController {
48
65
  private _sink;
49
66
  private _scheduleFlush;
50
67
  private _cancelFlush;
51
- constructor(sink: StreamControllerSink, scheduleFlush?: (cb: () => void) => number, cancelFlush?: (id: number) => void);
68
+ private _setTimer;
69
+ private _clearTimer;
70
+ private _connectTimeoutMs;
71
+ private _slowThresholdMs;
72
+ private _connectTimerId;
73
+ private _slowTimerId;
74
+ constructor(sink: StreamControllerSink, scheduleFlush?: (cb: () => void) => number, cancelFlush?: (id: number) => void, watchdog?: StreamControllerWatchdog);
52
75
  /** Current FSM state (read-only). */
53
- get state(): ControllerState;
76
+ get state(): StreamState;
54
77
  /**
55
78
  * Transition to `connecting` for the given execution ID.
56
79
  * If already active for a different ID, resets first.
@@ -62,6 +85,14 @@ export declare class StreamController {
62
85
  * Terminal snapshots flush immediately.
63
86
  */
64
87
  handleSnapshot(snapshot: AgentExecution): void;
88
+ /**
89
+ * Enter the `reconnecting` stage after a transient drop. Unlike
90
+ * {@link start}, this preserves the buffered snapshot and never resets the
91
+ * store, so the last-known-good conversation stays on screen while the
92
+ * background retry is in flight. No-op once idle (the subscription is
93
+ * already torn down).
94
+ */
95
+ handleReconnecting(attempt: number, error: Error): void;
65
96
  /**
66
97
  * Handle stream completion (iterator exhausted without error).
67
98
  * If we still have a buffered snapshot, flush it first.
@@ -72,7 +103,7 @@ export declare class StreamController {
72
103
  * so the UI shows the last known good state alongside the error.
73
104
  */
74
105
  handleError(error: Error): void;
75
- /** Reset to idle. Cancels any pending flush. */
106
+ /** Reset to idle. Cancels any pending flush and watchdog timers. */
76
107
  reset(): void;
77
108
  /** Whether the controller has a buffered snapshot awaiting flush. */
78
109
  get hasPendingFlush(): boolean;
@@ -81,5 +112,10 @@ export declare class StreamController {
81
112
  private _scheduleFlushOnce;
82
113
  private _flushBuffer;
83
114
  private _cancelPendingFlush;
115
+ private _armConnectTimer;
116
+ private _armSlowTimer;
117
+ private _cancelConnectTimer;
118
+ private _cancelSlowTimer;
119
+ private _cancelWatchdogs;
84
120
  }
85
121
  //# sourceMappingURL=stream-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream-controller.d.ts","sourceRoot":"","sources":["../../src/internal/stream-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AASlG,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,YAAY,GACZ,WAAW,GACX,UAAU,GACV,OAAO,CAAC;AAEZ,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC5D;IACE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB,CAAC;AAIN;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/C,qDAAqD;IACrD,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;CAC9C;AAMD;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,YAAY,CAAuB;gBAGzC,IAAI,EAAE,oBAAoB,EAC1B,aAAa,GAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,MAE4B,EAC/D,WAAW,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAEO;IAOtC,qCAAqC;IACrC,IAAI,KAAK,IAAI,eAAe,CAE3B;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAMhC;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAsB9C;;;OAGG;IACH,eAAe,IAAI,IAAI;IAUvB;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAS/B,gDAAgD;IAChD,KAAK,IAAI,IAAI;IAQb,qEAAqE;IACrE,IAAI,eAAe,IAAI,OAAO,CAE7B;IAMD,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,mBAAmB;CAM5B"}
1
+ {"version":3,"file":"stream-controller.d.ts","sourceRoot":"","sources":["../../src/internal/stream-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAe9D;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/C,qDAAqD;IACrD,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IACzC;;;;;OAKG;IACH,gBAAgB,IAAI,IAAI,CAAC;IACzB,oDAAoD;IACpD,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAMD;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,YAAY,CAAuB;IAG3C,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,YAAY,CAAuB;gBAGzC,IAAI,EAAE,oBAAoB,EAC1B,aAAa,GAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,MAE4B,EAC/D,WAAW,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAEO,EACpC,QAAQ,CAAC,EAAE,wBAAwB;IAerC,qCAAqC;IACrC,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAWhC;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAiC9C;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAYvD;;;OAGG;IACH,eAAe,IAAI,IAAI;IAYvB;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAW/B,oEAAoE;IACpE,KAAK,IAAI,IAAI;IAUb,qEAAqE;IACrE,IAAI,eAAe,IAAI,OAAO,CAE7B;IAMD,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,gBAAgB;CAIzB"}
@@ -1,6 +1,26 @@
1
1
  import { isTerminalPhase } from "../execution/execution-phases";
2
2
  import { ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
3
+ // ---------------------------------------------------------------------------
4
+ // Types
5
+ // ---------------------------------------------------------------------------
6
+ // The controller's FSM state is exactly the store's `StreamState` — they
7
+ // were once duplicated unions kept in lock-step by hand. The controller
8
+ // reuses the store's type so the lifecycle (including the `reconnecting`
9
+ // stage) is defined in one place and can never drift.
3
10
  const IDLE = { stage: "idle" };
11
+ /**
12
+ * Hard connect-timeout: time the stream may stay `connecting` (no first
13
+ * snapshot) before the watchdog acts. Sized well above a healthy connect
14
+ * (the server sends the initial snapshot in ~1 RTT) yet short enough that a
15
+ * silent hang surfaces an affordance within a few seconds, not minutes.
16
+ */
17
+ export const DEFAULT_CONNECT_TIMEOUT_MS = 10_000;
18
+ /**
19
+ * Soft slow-stall threshold: a non-terminal stream that produces no new
20
+ * snapshot for this long flips an informational "still working" hint. Long
21
+ * enough that ordinary model thinking-time never trips it.
22
+ */
23
+ export const DEFAULT_SLOW_THRESHOLD_MS = 60_000;
4
24
  // ---------------------------------------------------------------------------
5
25
  // StreamController
6
26
  // ---------------------------------------------------------------------------
@@ -25,14 +45,29 @@ export class StreamController {
25
45
  _sink;
26
46
  _scheduleFlush;
27
47
  _cancelFlush;
48
+ // -- Watchdog ------------------------------------------------------------
49
+ _setTimer;
50
+ _clearTimer;
51
+ _connectTimeoutMs;
52
+ _slowThresholdMs;
53
+ _connectTimerId = null;
54
+ _slowTimerId = null;
28
55
  constructor(sink, scheduleFlush = typeof requestAnimationFrame !== "undefined"
29
56
  ? (cb) => requestAnimationFrame(cb)
30
57
  : (cb) => setTimeout(cb, 16), cancelFlush = typeof cancelAnimationFrame !== "undefined"
31
58
  ? (id) => cancelAnimationFrame(id)
32
- : (id) => clearTimeout(id)) {
59
+ : (id) => clearTimeout(id), watchdog) {
33
60
  this._sink = sink;
34
61
  this._scheduleFlush = scheduleFlush;
35
62
  this._cancelFlush = cancelFlush;
63
+ this._setTimer =
64
+ watchdog?.setTimer ??
65
+ ((cb, ms) => setTimeout(cb, ms));
66
+ this._clearTimer = watchdog?.clearTimer ?? ((id) => clearTimeout(id));
67
+ this._connectTimeoutMs =
68
+ watchdog?.connectTimeoutMs ?? DEFAULT_CONNECT_TIMEOUT_MS;
69
+ this._slowThresholdMs =
70
+ watchdog?.slowThresholdMs ?? DEFAULT_SLOW_THRESHOLD_MS;
36
71
  }
37
72
  /** Current FSM state (read-only). */
38
73
  get state() {
@@ -45,6 +80,11 @@ export class StreamController {
45
80
  start(executionId) {
46
81
  this._cancelPendingFlush();
47
82
  this._bufferedSnapshot = null;
83
+ // Arm both watchdogs the moment we begin connecting. The connect-timeout
84
+ // guards the first snapshot; the slow-stall hint guards every quiet stretch
85
+ // thereafter. Both are reset by the next snapshot and cleared on any exit.
86
+ this._armConnectTimer();
87
+ this._armSlowTimer();
48
88
  this._transition({ stage: "connecting", executionId });
49
89
  }
50
90
  /**
@@ -59,19 +99,47 @@ export class StreamController {
59
99
  const phase = snapshot.status?.phase ?? ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED;
60
100
  const terminal = isTerminalPhase(phase);
61
101
  if (terminal) {
102
+ this._cancelWatchdogs();
103
+ this._sink.setSlow(false);
62
104
  this._cancelPendingFlush();
63
105
  this._bufferedSnapshot = null;
64
106
  this._sink.ingestSnapshot(snapshot);
65
107
  this._transition({ stage: "complete", executionId });
66
108
  }
67
109
  else {
68
- if (this._state.stage === "connecting") {
110
+ // A snapshot proves the (re)connection is healthy: the connect-timeout no
111
+ // longer applies, and the slow-stall window restarts from now.
112
+ this._cancelConnectTimer();
113
+ this._armSlowTimer();
114
+ // Advance from either the initial `connecting` or a `reconnecting` retry
115
+ // into `streaming`.
116
+ if (this._state.stage === "connecting" ||
117
+ this._state.stage === "reconnecting") {
69
118
  this._transition({ stage: "streaming", executionId });
70
119
  }
71
120
  this._bufferedSnapshot = snapshot;
72
121
  this._scheduleFlushOnce();
73
122
  }
74
123
  }
124
+ /**
125
+ * Enter the `reconnecting` stage after a transient drop. Unlike
126
+ * {@link start}, this preserves the buffered snapshot and never resets the
127
+ * store, so the last-known-good conversation stays on screen while the
128
+ * background retry is in flight. No-op once idle (the subscription is
129
+ * already torn down).
130
+ */
131
+ handleReconnecting(attempt, error) {
132
+ const executionId = this._activeExecutionId();
133
+ if (!executionId)
134
+ return;
135
+ // Auto-reconnect (#174) has taken over with its own visible affordance and
136
+ // bounded attempt budget, so the silence watchdogs stand down — they exist
137
+ // for the case where the stream stalls *without* a drop. The slow hint is
138
+ // cleared so "reconnecting" and "slow" never show at once.
139
+ this._cancelWatchdogs();
140
+ this._sink.setSlow(false);
141
+ this._transition({ stage: "reconnecting", executionId, attempt, error });
142
+ }
75
143
  /**
76
144
  * Handle stream completion (iterator exhausted without error).
77
145
  * If we still have a buffered snapshot, flush it first.
@@ -80,6 +148,8 @@ export class StreamController {
80
148
  const executionId = this._activeExecutionId();
81
149
  if (!executionId)
82
150
  return;
151
+ this._cancelWatchdogs();
152
+ this._sink.setSlow(false);
83
153
  this._flushBuffer();
84
154
  if (this._state.stage !== "complete") {
85
155
  this._transition({ stage: "complete", executionId });
@@ -93,12 +163,16 @@ export class StreamController {
93
163
  const executionId = this._activeExecutionId();
94
164
  if (!executionId)
95
165
  return;
166
+ this._cancelWatchdogs();
167
+ this._sink.setSlow(false);
96
168
  this._cancelPendingFlush();
97
169
  this._flushBuffer();
98
170
  this._transition({ stage: "error", executionId, error });
99
171
  }
100
- /** Reset to idle. Cancels any pending flush. */
172
+ /** Reset to idle. Cancels any pending flush and watchdog timers. */
101
173
  reset() {
174
+ this._cancelWatchdogs();
175
+ this._sink.setSlow(false);
102
176
  this._cancelPendingFlush();
103
177
  this._bufferedSnapshot = null;
104
178
  if (this._state.stage !== "idle") {
@@ -142,5 +216,45 @@ export class StreamController {
142
216
  this._rafId = null;
143
217
  }
144
218
  }
219
+ // -- Watchdog timers ------------------------------------------------------
220
+ _armConnectTimer() {
221
+ this._cancelConnectTimer();
222
+ this._connectTimerId = this._setTimer(() => {
223
+ this._connectTimerId = null;
224
+ // Only meaningful while still awaiting the first snapshot; any later
225
+ // stage has its own handling and has already cleared this timer.
226
+ if (this._state.stage !== "connecting")
227
+ return;
228
+ this._sink.onConnectTimeout();
229
+ }, this._connectTimeoutMs);
230
+ }
231
+ _armSlowTimer() {
232
+ this._cancelSlowTimer();
233
+ // Re-arming means activity just resumed (or is starting), so a prior slow
234
+ // hint no longer holds — clear it before counting the next quiet stretch.
235
+ this._sink.setSlow(false);
236
+ this._slowTimerId = this._setTimer(() => {
237
+ this._slowTimerId = null;
238
+ if (this._state.stage !== "connecting" && this._state.stage !== "streaming")
239
+ return;
240
+ this._sink.setSlow(true);
241
+ }, this._slowThresholdMs);
242
+ }
243
+ _cancelConnectTimer() {
244
+ if (this._connectTimerId !== null) {
245
+ this._clearTimer(this._connectTimerId);
246
+ this._connectTimerId = null;
247
+ }
248
+ }
249
+ _cancelSlowTimer() {
250
+ if (this._slowTimerId !== null) {
251
+ this._clearTimer(this._slowTimerId);
252
+ this._slowTimerId = null;
253
+ }
254
+ }
255
+ _cancelWatchdogs() {
256
+ this._cancelConnectTimer();
257
+ this._cancelSlowTimer();
258
+ }
145
259
  }
146
260
  //# sourceMappingURL=stream-controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream-controller.js","sourceRoot":"","sources":["../../src/internal/stream-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-controller.js","sourceRoot":"","sources":["../../src/internal/stream-controller.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,13 @@ export interface UseFetchOptions {
9
9
  * request piling on slow connections.
10
10
  */
11
11
  readonly refetchInterval?: number | false;
12
+ /**
13
+ * Re-fetch when the window regains focus or the tab becomes visible
14
+ * again. Covers the app-relaunch / tab-switch case where data may have
15
+ * gone stale while the app was backgrounded. A focus refetch is skipped
16
+ * while a fetch is already in flight. Defaults to `false`.
17
+ */
18
+ readonly refetchOnWindowFocus?: boolean;
12
19
  /**
13
20
  * Stable string key for cross-mount caching.
14
21
  *
@@ -1 +1 @@
1
- {"version":3,"file":"useFetch.d.ts","sourceRoot":"","sources":["../../src/internal/useFetch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAA4C,MAAM,OAAO,CAAC;AAItF,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE1C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,OAAO,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAClC,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,CAAC,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,cAAc,CAAC,CAAC,CAAC,CAiHnB"}
1
+ {"version":3,"file":"useFetch.d.ts","sourceRoot":"","sources":["../../src/internal/useFetch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAA4C,MAAM,OAAO,CAAC;AAItF,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE1C;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAExC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,OAAO,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAClC,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,CAAC,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,cAAc,CAAC,CAAC,CAAC,CAmInB"}
@@ -117,6 +117,27 @@ export function useFetch(fetchFn, deps, initialData, options) {
117
117
  }, refetchInterval);
118
118
  return () => clearInterval(id);
119
119
  }, [refetchInterval, fetchFn, refetch]);
120
+ const refetchOnWindowFocus = options?.refetchOnWindowFocus;
121
+ useEffect(() => {
122
+ if (!refetchOnWindowFocus || !fetchFn)
123
+ return;
124
+ if (typeof window === "undefined")
125
+ return;
126
+ const onActive = () => {
127
+ if (!isFetchingRef.current)
128
+ refetch();
129
+ };
130
+ const onVisible = () => {
131
+ if (document.visibilityState === "visible")
132
+ onActive();
133
+ };
134
+ window.addEventListener("focus", onActive);
135
+ document.addEventListener("visibilitychange", onVisible);
136
+ return () => {
137
+ window.removeEventListener("focus", onActive);
138
+ document.removeEventListener("visibilitychange", onVisible);
139
+ };
140
+ }, [refetchOnWindowFocus, fetchFn, refetch]);
120
141
  const isLoading = isFetching && !hasDataRef.current;
121
142
  const isRefetching = isFetching && hasDataRef.current;
122
143
  return { data, isLoading, isRefetching, error, refetch };
@@ -1 +1 @@
1
- {"version":3,"file":"useFetch.js","sourceRoot":"","sources":["../../src/internal/useFetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useFetch.js","sourceRoot":"","sources":["../../src/internal/useFetch.ts"],"names":[],"mappings":"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"}