                 semaRelease()
                 return null
 
+            changedFieldSpecs = []
             watcherMatcher = makeWatcherMatcher instanceId, mutableOldValues, mutableNewValues
+
+            console.log "ResetWatchersHelper: <#{modelName} #{JSON.stringify instanceId}> with changes to
+                #{JSON.stringify changedFieldSpecs}"
 
             watcherMatcherLength = JSON.stringify(watcherMatcher).length
             if watcherMatcherLength > 10000

                                term[sortSpecKey] = $exists: true
                                changedSubfieldSortSpecMatcher.push term

                            term = {}
                            term[projectionKey] = true
                            changedSubfieldAlacarteProjectionMatcher.push term

                            term = {}
                            term[projectionKey] = true
                            if fieldSpecPrefix.length is 0
                                J.assert subfieldName of modelClass.fieldSpecs or subfieldName of modelClass.reactiveSpecs
                                if subfieldName of modelClass.fieldSpecs
                                    if modelClass.fieldSpecs[subfieldName].include ? true
                                        term[projectionKey] = $in: [null, true]
                                else
                                    if modelClass.reactiveSpecs[subfieldName].include ? false
                                        term[projectionKey] = $in: [null, true]
                            changedSubfieldOverrideProjectionMatcher.push term

                        if J.util.isPlainObject(oldValue) or J.util.isPlainObject(newValue)
                            addSelectorClauses(

            mutableOldValues = {}
            mutableNewValues = {}
            for fieldName, fieldSpec of modelClass.fieldSpecs
                mutableOldValues[fieldName] = oldDoc[fieldName]
                mutableNewValues[fieldName] = newDoc[fieldName]
            for reactiveName, reactiveSpec of modelClass.reactiveSpecs
                continue if not reactiveSpec.denorm
                mutableOldValues[reactiveName] = oldDoc._reactives?[reactiveName]?.val
                mutableNewValues[reactiveName] = newDoc._reactives?[reactiveName]?.val

