Selaa lähdekoodia

Only record error log deltas for the same rootDocId (#19251)

GitOrigin-RevId: acc05831701e3be0cc0bc96ed0bd495e7cb6745c
Alf Eaton 2 vuotta sitten
vanhempi
sitoutus
a587d63f15

+ 14 - 5
services/web/frontend/js/shared/context/local-compile-context.tsx

@@ -355,7 +355,10 @@ export const LocalCompileProvider: FC = ({ children }) => {
 
   // compare log entry counts with the previous compile, and record actions between compiles
   // these are refs rather than state so they don't trigger the effect to run
-  const previousRuleCountsRef = useRef<Record<string, number> | null>(null)
+  const previousRuleCountsRef = useRef<{
+    ruleCounts: Record<string, number>
+    rootDocId: string
+  } | null>(null)
   const recordedActionsRef = useRef<Record<string, boolean>>({})
   const recordAction = useCallback((action: string) => {
     recordedActionsRef.current[action] = true
@@ -431,18 +434,23 @@ export const LocalCompileProvider: FC = ({ children }) => {
                   result.logEntries.all
                 ) as Record<string, number>
 
+                const rootDocId = data.rootDocId || compiler.projectRootDocId
+
                 const previousRuleCounts = previousRuleCountsRef.current
-                previousRuleCountsRef.current = ruleCounts
+                previousRuleCountsRef.current = { ruleCounts, rootDocId }
 
-                const ruleDeltas = previousRuleCounts
-                  ? buildRuleDeltas(ruleCounts, previousRuleCounts)
-                  : {}
+                const ruleDeltas =
+                  previousRuleCounts &&
+                  previousRuleCounts.rootDocId === rootDocId
+                    ? buildRuleDeltas(ruleCounts, previousRuleCounts.ruleCounts)
+                    : {}
 
                 sendMB('compile-log-entries', {
                   status: data.status,
                   stopOnFirstError: data.options.stopOnFirstError,
                   isAutoCompileOnLoad: !!data.options.isAutoCompileOnLoad,
                   isAutoCompileOnChange: !!data.options.isAutoCompileOnChange,
+                  rootDocId,
                   ...recordedActions,
                   ...ruleCounts,
                   ...ruleDeltas,
@@ -529,6 +537,7 @@ export const LocalCompileProvider: FC = ({ children }) => {
     setLogEntries,
     setLogEntryAnnotations,
     setPdfFile,
+    compiler,
   ])
 
   // switch to logs if there's an error