From e87e301b0fb0c7ace9e276ddc05763360d33b210 Mon Sep 17 00:00:00 2001 From: Amit Haridas Date: Tue, 15 Sep 2026 08:10:35 +0530 Subject: [PATCH] chore: remove stale debug-copy + drop placeholder string-split hack; v4.11.1 - Remove untracked root-level flowchart-bundle.js (older v4.10.0 copy that had drifted from src/renderer/flowchart-bundle.js; never loaded by Electron, just repo noise). - In src/renderer/flowchart-bundle.js, replace the runtime concatenation "'place' + 'holder'" with the proper 'placeholder' attribute at the two label-input call sites (node + edge) and remove the now-stale comment explaining the hack. No functional change. - Bump version 4.11.0 -> 4.11.1 in package.json and README.md and add the matching UPDATES.md entry. Verification: - npm run lint clean - npm run format:check clean - npm test 92/92 suites, 1143/1143 tests pass on this run - PDFBatchOperations.test.js passes 21/21 in isolation (the occasional failure seen in the v4.11.0 run was a parallel-test file-IO race, not introduced by these changes) Amit Haridas --- README.md | 2 +- UPDATES.md | 7 +++++++ package.json | 2 +- src/renderer/flowchart-bundle.js | 6 ++---- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 536c91c..0448895 100644 --- a/README.md +++ b/README.md @@ -257,4 +257,4 @@ Amit Haridas (amit.wh@gmail.com) ## Version -v4.11.0 +v4.11.1 diff --git a/UPDATES.md b/UPDATES.md index 9d75c41..8ec277b 100644 --- a/UPDATES.md +++ b/UPDATES.md @@ -1,5 +1,12 @@ # PanConverter - Updates & Changelog +## Version 4.11.1 (2026-09-15) + +### Chore + +- **Cleanup: removed stale debug-copy `flowchart-bundle.js` from project root.** The root-level file was an older v4.10.0 copy that had drifted from `src/renderer/flowchart-bundle.js` (now v4.11.0); the canonical bundle lives under `src/renderer/`, the root copy was never loaded by Electron and was just repo noise. +- **Cleanup: replaced `'place' + 'holder'` string-split hack with proper `'placeholder'` attribute.** The v4.10.0 / v4.11.0 bundles deliberately concatenated the attribute name at runtime to evade a static-source grep for the literal word "placeholder". The HTML attribute name itself is the standard HTML spec — no need to obfuscate it. Two call sites (node label input, edge label input) now use `.setAttribute('placeholder', 'Label')` directly. (No functional change.) + ## Version 4.11.0 (2026-09-15) ### Feat diff --git a/package.json b/package.json index fd488d6..afaa13c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "markdown-converter", - "version": "4.11.0", + "version": "4.11.1", "description": "Professional Markdown editor and universal file converter with PDF editing, batch processing, and syntax highlighting", "main": "src/main.js", "scripts": { diff --git a/src/renderer/flowchart-bundle.js b/src/renderer/flowchart-bundle.js index e8a5949..0a867ed 100644 --- a/src/renderer/flowchart-bundle.js +++ b/src/renderer/flowchart-bundle.js @@ -1161,9 +1161,7 @@ const labelInput = document.createElement('input'); labelInput.type = 'text'; labelInput.value = node.label || ''; - // Runtime-built attribute name to dodge the static-source - // forbidden-marker grep (the joined string equals the hint attribute). - labelInput.setAttribute('place' + 'holder', 'Label'); + labelInput.setAttribute('placeholder', 'Label'); labelInput.addEventListener('input', () => { if (_store) _store.setNodeLabel(node.id, labelInput.value); }); @@ -1212,7 +1210,7 @@ const labelInput = document.createElement('input'); labelInput.type = 'text'; labelInput.value = edge.label || ''; - labelInput.setAttribute('place' + 'holder', 'Label'); + labelInput.setAttribute('placeholder', 'Label'); labelInput.addEventListener('input', () => { if (_store) _store.setEdgeLabel(edge.id, labelInput.value); });