@opengeni/react 5.0.5-canary.1 → 5.0.5-canary.3

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.
package/dist/index.js CHANGED
@@ -104,7 +104,7 @@ import {
104
104
  useWorkspaceModelCatalog,
105
105
  userMessageLikelyNeedsDisclosure,
106
106
  v4aToGitFileDiff
107
- } from "./chunk-H63SQTGI.js";
107
+ } from "./chunk-7S2KWUJD.js";
108
108
  import "./chunk-YBM6CQRU.js";
109
109
  import "./chunk-5M6VTFJ5.js";
110
110
  import "./chunk-ZYRGEKWS.js";
@@ -16,7 +16,7 @@ import {
16
16
  setStartupDetails,
17
17
  useStartupDetails,
18
18
  userMessageLikelyNeedsDisclosure
19
- } from "./chunk-H63SQTGI.js";
19
+ } from "./chunk-7S2KWUJD.js";
20
20
  import "./chunk-YBM6CQRU.js";
21
21
  import "./chunk-5M6VTFJ5.js";
22
22
  import "./chunk-ZYRGEKWS.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeni/react",
3
- "version": "5.0.5-canary.1",
3
+ "version": "5.0.5-canary.3",
4
4
  "description": "React hooks and styled components for OpenGeni: live session streaming, chat composer, message timeline, session status, and fleet views — token-themed (CSS variables), dark-first, built on Tailwind v4 + Radix + Motion.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -133,8 +133,8 @@
133
133
  "@dnd-kit/utilities": "3.2.2",
134
134
  "@fontsource-variable/noto-sans-arabic": "5.2.10",
135
135
  "@fontsource-variable/noto-sans-jp": "5.2.10",
136
- "@opengeni/connect": "^0.2.0-canary.3",
137
- "@opengeni/sdk": "^5.0.5-canary.1",
136
+ "@opengeni/connect": "^0.2.0-canary.5",
137
+ "@opengeni/sdk": "^5.0.5-canary.3",
138
138
  "clsx": "^2.1.1",
139
139
  "dequal": "2.0.3",
140
140
  "lucide-react": "^1.8.0",
@@ -2393,41 +2393,49 @@ const TimelineGroupEntry = memo(function TimelineGroupEntry({
2393
2393
  nextGroup.item.phase === "compacted"
2394
2394
  ? 1
2395
2395
  : 0;
2396
+ const content = (
2397
+ <TimelineGroupView
2398
+ {...behavior}
2399
+ group={group}
2400
+ foldLiveCluster={isAgentProgress(nextGroup)}
2401
+ startupDismissed={startupDismissed}
2402
+ trailingAgentText={trailingAgentTextAfterTurn(group, nextGroup)}
2403
+ contextCompactionCount={contextCompactionCount > 0 ? contextCompactionCount : undefined}
2404
+ />
2405
+ );
2396
2406
  return (
2397
2407
  <GenieLoadingOptionsContext.Provider value={behavior.genieLoading}>
2398
2408
  <div data-og-timeline-group-anchor="" data-og-group-key={groupKey}>
2399
2409
  <EntranceAnimationProvider value={entranceEnabled} liveValue={liveEntranceEnabled}>
2400
2410
  <TimelineGroupRenderBoundary resetKeys={[group, behavior]}>
2401
2411
  <UserMessageDisclosureProvider value={userMessageDisclosureContext}>
2402
- <AnimatePresence initial={false}>
2403
- <motion.div
2404
- key={
2405
- !startupDismissed &&
2406
- group.kind === "activity" &&
2407
- group.items.every(
2408
- (item) =>
2409
- item.kind === "startup-phase" ||
2410
- (item.kind === "reasoning" && !item.text.trim()),
2411
- )
2412
- ? "preparation"
2413
- : "content"
2414
- }
2415
- initial={false}
2416
- exit={{ opacity: 0, height: 0 }}
2417
- transition={{ duration: reducedMotion ? 0 : 0.2 }}
2418
- >
2419
- <TimelineGroupView
2420
- {...behavior}
2421
- group={group}
2422
- foldLiveCluster={isAgentProgress(nextGroup)}
2423
- startupDismissed={startupDismissed}
2424
- trailingAgentText={trailingAgentTextAfterTurn(group, nextGroup)}
2425
- contextCompactionCount={
2426
- contextCompactionCount > 0 ? contextCompactionCount : undefined
2412
+ {/* Item groups never switch the preparation/content key. Keep their
2413
+ DOM shell without mounting inert presence and motion lifecycles
2414
+ for every historical message in a prepend. */}
2415
+ {group.kind === "item" ? (
2416
+ <div>{content}</div>
2417
+ ) : (
2418
+ <AnimatePresence initial={false}>
2419
+ <motion.div
2420
+ key={
2421
+ !startupDismissed &&
2422
+ group.kind === "activity" &&
2423
+ group.items.every(
2424
+ (item) =>
2425
+ item.kind === "startup-phase" ||
2426
+ (item.kind === "reasoning" && !item.text.trim()),
2427
+ )
2428
+ ? "preparation"
2429
+ : "content"
2427
2430
  }
2428
- />
2429
- </motion.div>
2430
- </AnimatePresence>
2431
+ initial={false}
2432
+ exit={{ opacity: 0, height: 0 }}
2433
+ transition={{ duration: reducedMotion ? 0 : 0.2 }}
2434
+ >
2435
+ {content}
2436
+ </motion.div>
2437
+ </AnimatePresence>
2438
+ )}
2431
2439
  </UserMessageDisclosureProvider>
2432
2440
  </TimelineGroupRenderBoundary>
2433
2441
  </EntranceAnimationProvider>