anentrypoint-design 0.0.231 → 0.0.232

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "anentrypoint-design",
3
- "version": "0.0.231",
3
+ "version": "0.0.232",
4
4
  "description": "247420 design system SDK — webjsx + modified ripple-ui, single-file ESM bundle for reproducible use of the AnEntrypoint design.",
5
5
  "type": "module",
6
6
  "main": "./dist/247420.js",
@@ -261,7 +261,15 @@ export function AgentChat(props = {}) {
261
261
  if (!isStreaming && msgHasBody(m)) {
262
262
  const built = [];
263
263
  if (onCopyMessage) built.push({ label: 'copy', icon: 'copy', title: 'copy message', onClick: () => onCopyMessage(m) });
264
- if (isAssistant && onRetryMessage && i === lastIdx) built.push({ label: 'retry', icon: 'refresh', title: 'retry this turn', onClick: () => onRetryMessage(m) });
264
+ // Mid-thread retry: EVERY settled assistant turn gets a retry action,
265
+ // not only the trailing one - the host truncates from that turn's
266
+ // position and resends (the same mechanism edit-and-resend uses for
267
+ // user messages), so any assistant reply the user was unhappy with can
268
+ // be redone without discarding turns that came after a LATER one.
269
+ if (isAssistant && onRetryMessage) built.push({ label: 'retry', icon: 'refresh', title: 'retry this turn', onClick: () => onRetryMessage(m) });
270
+ // A dangling user message (send failed / no reply arrived) can only be
271
+ // the LAST message when it has no assistant reply - retry here means
272
+ // "resend as-is", not "redo a specific turn", so stays lastIdx-gated.
265
273
  if (!isAssistant && onRetryMessage && i === lastIdx) built.push({ label: 'retry', icon: 'refresh', title: 'retry', onClick: () => onRetryMessage(m) });
266
274
  // With confirmEdit the host arms its own confirm affordance (onArmEdit)
267
275
  // instead of resending immediately; the kit stays stateless either way.