diff --git a/.jules/bolt.md b/.jules/bolt.md index b08b203a..8f1e5402 100644 --- a/.jules/bolt.md +++ b/.jules/bolt.md @@ -4,3 +4,6 @@ ## 2026-07-12 - Optimize renderTaskRow DOM allocations **Learning:** Caching unattached template nodes and instantiating them via `.cloneNode(false)` reduces DOM instantiation overhead in O(N) render loops significantly. **Action:** Apply this optimization to other hot-path rendering elements such as rows, cells, and stack containers. +## 2026-07-19 - Redundant resource hints and missing modulepreloads +**Learning:** Placing a `` for a stylesheet immediately before its actual `` tag is redundant and provides no benefit, as modern browser preload scanners will detect both simultaneously. Valid resource hinting optimizations include using `` for scripts located at the bottom of the `
`. +**Action:** Remove redundant CSS preloads when the stylesheet is in the `` and use `` for ES modules at the end of the body to start fetching them early. diff --git a/cloud-sync.js b/cloud-sync.js index 7e44932b..eb3fd71f 100644 --- a/cloud-sync.js +++ b/cloud-sync.js @@ -740,8 +740,16 @@ function openReportModal() { // hand-edited files ever matter. export function parseMsProjectXml(xml) { const tag = (block, name) => { - const m = block.match(new RegExp(`<${name}>([^<]*)${name}>`)); - return m ? m[1].trim() : ''; + const openTag = `<${name}>`; + const closeTag = `${name}>`; + const openIdx = block.indexOf(openTag); + if (openIdx === -1) return ''; + const start = openIdx + openTag.length; + const closeIdx = block.indexOf(closeTag, start); + if (closeIdx === -1) return ''; + const content = block.substring(start, closeIdx); + const innerLT = content.indexOf('<'); + return innerLT === -1 ? content.trim() : content.substring(0, innerLT).trim(); }; const unescape = (s) => s .replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"') diff --git a/index.html b/index.html index a7f4b49c..39b9eb18 100644 --- a/index.html +++ b/index.html @@ -5,7 +5,8 @@