@parhelia/core 0.3.12816 → 0.3.12822

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 (83) hide show
  1. package/dist/config/config.js +2 -12
  2. package/dist/config/config.js.map +1 -1
  3. package/dist/editor/ContentTree.d.ts +1 -1
  4. package/dist/editor/ContentTree.js +25 -3
  5. package/dist/editor/ContentTree.js.map +1 -1
  6. package/dist/editor/ai/terminal/components/AgentSettingsSections.js +4 -4
  7. package/dist/editor/ai/terminal/components/AgentSettingsSections.js.map +1 -1
  8. package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js +1 -1
  9. package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js.map +1 -1
  10. package/dist/editor/ai/terminal/components/AiResponseMessage.js +1 -1
  11. package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
  12. package/dist/editor/ai/terminal/useAgentStopCommand.js +16 -14
  13. package/dist/editor/ai/terminal/useAgentStopCommand.js.map +1 -1
  14. package/dist/editor/client/EditorShell.js +20 -4
  15. package/dist/editor/client/EditorShell.js.map +1 -1
  16. package/dist/editor/client/hooks/activeSessionSnapshots.js +0 -2
  17. package/dist/editor/client/hooks/activeSessionSnapshots.js.map +1 -1
  18. package/dist/editor/client/hooks/useSocketMessageHandler.d.ts +2 -2
  19. package/dist/editor/client/hooks/useSocketMessageHandler.js +43 -29
  20. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  21. package/dist/editor/client/operations.js +12 -3
  22. package/dist/editor/client/operations.js.map +1 -1
  23. package/dist/editor/media-selector/Thumbnails.js +23 -10
  24. package/dist/editor/media-selector/Thumbnails.js.map +1 -1
  25. package/dist/editor/media-selector/mediaItemDrag.d.ts +22 -5
  26. package/dist/editor/media-selector/mediaItemDrag.js +108 -10
  27. package/dist/editor/media-selector/mediaItemDrag.js.map +1 -1
  28. package/dist/editor/page-viewer/PageViewerFrame.js +13 -0
  29. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  30. package/dist/editor/page-viewer/bridgeInsertModeExit.d.ts +22 -0
  31. package/dist/editor/page-viewer/bridgeInsertModeExit.js +20 -0
  32. package/dist/editor/page-viewer/bridgeInsertModeExit.js.map +1 -0
  33. package/dist/editor/reviews/DecisionsMatrix.js +8 -75
  34. package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
  35. package/dist/editor/settings/QuotaInfo.js +3 -2
  36. package/dist/editor/settings/QuotaInfo.js.map +1 -1
  37. package/dist/editor/settings/SettingsView.js +6 -5
  38. package/dist/editor/settings/SettingsView.js.map +1 -1
  39. package/dist/editor/settings/UsageLeaderboard.js +12 -12
  40. package/dist/editor/settings/UsageLeaderboard.js.map +1 -1
  41. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +45 -1
  42. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  43. package/dist/editor/sidebar/ComponentTree.js +12 -1
  44. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  45. package/dist/editor/tree-indicators/GutterContext.js +14 -8
  46. package/dist/editor/tree-indicators/GutterContext.js.map +1 -1
  47. package/dist/lib/sanitize.js +1 -1
  48. package/dist/lib/sanitize.js.map +1 -1
  49. package/dist/revision.d.ts +2 -2
  50. package/dist/revision.js +2 -2
  51. package/dist/task-board/TaskBoardWorkspace.js +186 -7
  52. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  53. package/dist/task-board/components/CreateTaskDialog.d.ts +2 -0
  54. package/dist/task-board/components/CreateTaskDialog.js +6 -3
  55. package/dist/task-board/components/CreateTaskDialog.js.map +1 -1
  56. package/dist/task-board/components/GoalCoverageBar.d.ts +4 -0
  57. package/dist/task-board/components/GoalCoverageBar.js +22 -0
  58. package/dist/task-board/components/GoalCoverageBar.js.map +1 -0
  59. package/dist/task-board/components/GoalDataView.d.ts +39 -0
  60. package/dist/task-board/components/GoalDataView.js +385 -0
  61. package/dist/task-board/components/GoalDataView.js.map +1 -0
  62. package/dist/task-board/components/GoalsMatrix.d.ts +16 -0
  63. package/dist/task-board/components/GoalsMatrix.js +129 -0
  64. package/dist/task-board/components/GoalsMatrix.js.map +1 -0
  65. package/dist/task-board/components/ProjectDashboard.d.ts +1 -1
  66. package/dist/task-board/components/ProjectGoalsPanel.d.ts +16 -0
  67. package/dist/task-board/components/ProjectGoalsPanel.js +74 -113
  68. package/dist/task-board/components/ProjectGoalsPanel.js.map +1 -1
  69. package/dist/task-board/components/SubgoalStatusIcon.d.ts +4 -0
  70. package/dist/task-board/components/SubgoalStatusIcon.js +19 -0
  71. package/dist/task-board/components/SubgoalStatusIcon.js.map +1 -0
  72. package/dist/task-board/components/goalDisplaySpec.d.ts +19 -0
  73. package/dist/task-board/components/goalDisplaySpec.js +72 -0
  74. package/dist/task-board/components/goalDisplaySpec.js.map +1 -0
  75. package/dist/task-board/goalRefreshState.d.ts +6 -0
  76. package/dist/task-board/goalRefreshState.js +11 -0
  77. package/dist/task-board/goalRefreshState.js.map +1 -0
  78. package/dist/task-board/goalTaskNavigationState.d.ts +43 -0
  79. package/dist/task-board/goalTaskNavigationState.js +65 -0
  80. package/dist/task-board/goalTaskNavigationState.js.map +1 -0
  81. package/dist/task-board/types.d.ts +6 -0
  82. package/dist/types.d.ts +0 -2
  83. package/package.json +2 -1
@@ -744,6 +744,13 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
744
744
  const modeTransitionChainRef = useRef(Promise.resolve());
745
745
  const modeChangeParticipantsRef = useRef(new Set());
746
746
  const loadSuggestedEditsRef = useRef(async () => undefined);
747
+ const commentsLoadRequestRef = useRef(0);
748
+ const commentsAppliedRequestRef = useRef(0);
749
+ const commentsItemKey = currentItemDescriptor
750
+ ? `${currentItemDescriptor.id}:${currentItemDescriptor.language}:${currentItemDescriptor.version}`
751
+ : undefined;
752
+ const commentsItemKeyRef = useRef(commentsItemKey);
753
+ commentsItemKeyRef.current = commentsItemKey;
747
754
  const suggestedEditsLoadRequestRef = useRef(0);
748
755
  const suggestedEditsAppliedRequestRef = useRef(0);
749
756
  const suggestedEditsItemKey = item
@@ -1292,11 +1299,11 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1292
1299
  }, [currentWorkspace]);
1293
1300
  const sendClientInfoImmediate = useCallback(async () => {
1294
1301
  const itemAtSend = currentItemRef.current;
1302
+ const pageAtSend = activePageViewContextRef.current?.page?.item;
1295
1303
  const clientInfoMessage = {
1296
1304
  type: "client-info",
1297
1305
  sessionId: sessionId,
1298
- url: window.location.href,
1299
- userAgent: navigator.userAgent,
1306
+ page: pageAtSend?.descriptor ?? null,
1300
1307
  item: itemAtSend
1301
1308
  ? {
1302
1309
  ...itemAtSend.descriptor,
@@ -2051,12 +2058,21 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2051
2058
  catch { }
2052
2059
  }, [activeSessions, sessionId]);
2053
2060
  const loadComments = useCallback(async () => {
2061
+ const requestId = ++commentsLoadRequestRef.current;
2054
2062
  if (!currentItemDescriptor)
2055
2063
  return;
2064
+ const requestedItemKey = `${currentItemDescriptor.id}:${currentItemDescriptor.language}:${currentItemDescriptor.version}`;
2056
2065
  const reviewId = searchParams.get("reviewId");
2057
2066
  const result = await getComments(currentItemDescriptor.id, currentItemDescriptor.language, currentItemDescriptor.version, reviewId ?? undefined);
2067
+ // Navigation and realtime invalidations can overlap. Ignore responses for
2068
+ // an old item and older snapshots that arrive after a newer request.
2069
+ if (requestedItemKey !== commentsItemKeyRef.current)
2070
+ return;
2071
+ if (requestId < commentsAppliedRequestRef.current)
2072
+ return;
2058
2073
  if (handleErrorResult(result, ui, state))
2059
2074
  return;
2075
+ commentsAppliedRequestRef.current = requestId;
2060
2076
  setComments((x) => {
2061
2077
  const loadedComments = filterRemovedComments(result.data);
2062
2078
  const newComments = x.filter((c) => c.isNew &&
@@ -3532,8 +3548,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3532
3548
  currentItemDescriptor,
3533
3549
  loadItem,
3534
3550
  loadItemVersions,
3535
- setComments,
3536
- setSuggestedEdits,
3551
+ loadComments,
3552
+ loadSuggestedEdits,
3537
3553
  setActiveFieldActions,
3538
3554
  setQuotaInfo,
3539
3555
  requestRefresh,