Addedlooks_like_secret() entropy heuristic — vendor regex (AIza…, sk-…, ghp_…, gho_…, Slack xox…, Bearer …) plus length+char-class fallback with a path/whitespace denylist to prevent URL/slug false-positives.
AddedGeneric key-named fields and ?key= URL params are now gated by the entropy heuristic — closes the n8n Google-API-key pattern (queryParameters.parameters[].name = "key") without false-positives on harmless values.
AddedValue-entropy fallback in {name, value} pairs — catches custom-header secrets (X-App-Token etc.) whose names cannot be enumerated.
AddedRedact credentials[].name per node (id retained — it references the n8n DB and is useless without the server).
AddedClear meta.instanceId so workflow exports no longer correlate to the originating n8n instance.
AddedOpt-in tag clearing in wizard step 3. Tags are often harmless but sometimes identifying — the publisher decides per workflow, and the current tag list is shown inline.
AddedReason / Key / Note preview table in wizard step 3 — the existing mask_log is now fully visible before publish (collapsible, scrollable for long logs).
FixedMobile single-finger pan stutter on iOS and Android. Root cause: the browser's default scroll gesture competed with the plugin's pointer listeners. Fixed via touch-action: none on the diagram SVG + a Map-based multi-pointer state machine with { passive: false } listeners.
AddedPinch-to-zoom anchored at the finger midpoint and double-tap-to-zoom (toggle 100 ↔ 200 %) on mobile.
FixedMinimap was mouse-only; now responds to tap and drag via pointer events.
ChangedIntentional trade-off: starting a touch on the diagram SVG blocks page scroll until the finger lifts. Page scroll around the diagram still works as before.
v1.0.3
v1.0.3
2026-04-17
FixedDouble workflow rendering when "Easy Table of Contents" (or any plugin that re-runs the the_content filter) is active.
AddedShortcode re-entry guard via fingerprint (post id + resolved render settings) — silently skips duplicate passes while preserving legitimate multi-embed with different attributes.
ChangedWrapper DOM id is now instance-unique (breznflow-wrap-<POST>-<N>), so multiple embeds of the same workflow in a single post coexist cleanly.
ChangedAnchor span id="breznflow-<POST>" is emitted only for the first instance per post — keeps the DOM valid and preserves existing share links.
ChangedView counter now increments after the dedupe check — re-entrant scans no longer double-count views.
AddedJS renderer tracks mounted containers in a WeakSet — defensive fallback in case server-side dedupe ever misses a case.
Addedreadme.txt: "Learn more" section with links to website, FAQ, and live demo.