Skip to content

Release v0.6.2 — editor UI fixes, bulk paste, validation, polish#15

Merged
dxdc merged 6 commits into
masterfrom
release/v0.6.2-rebased
May 9, 2026
Merged

Release v0.6.2 — editor UI fixes, bulk paste, validation, polish#15
dxdc merged 6 commits into
masterfrom
release/v0.6.2-rebased

Conversation

@dxdc

@dxdc dxdc commented May 9, 2026

Copy link
Copy Markdown
Owner

Editor UI fixes plus bulk paste, cross-list validation, theme-aware polish, expanded test coverage, and a consolidated CHANGELOG.

Commits

  1. fix(editor): make Open example flows button work, fix wait-paths overlap — the two reported bugs.
  2. fix(editor): preview prefix, persist-store admin URL, stale help text — small drift fixes from the audit.
  3. feat(editor): bulk paste, cross-list validation, fractional timeouts — Wait/Reset paths accept newline-separated paste; duplicate Reset paths and Wait/Reset overlap are flagged inline; Timeout accepts decimals; output preview shows repeat counts; Persist store row hides when Preserve queue is off; theme-aware colors; layout cleanup.
  4. test: cover /join-wait/stores admin endpoint and editor HTML drift — 4 new admin-endpoint tests + drift fences in editor_spec.js.
  5. docs(release): consolidate CHANGELOG, backfill 0.3-0.5; bump to 0.6.2 — tightened 0.6.0/0.6.2 entries, new 0.6.1 entry, backfilled 0.3.0 → 0.5.3 from the GitHub release notes; README tip; cspell dictionary; version bump.
  6. refactor(editor): consolidate form-element selectors — pulled stringly-typed #node-input-* / #join-wait-* lookups into a single SEL constants object plus a LIST_ID object; extracted readPathField() and listInputs() helpers. No behaviour change.

Test plan

  • npm run lint clean
  • npm run format:check clean (Prettier)
  • npm run spellcheck clean (cspell)
  • npm test — 112 tests passing (was 102)
  • npm run coverage — 98.47% lines / 95.57% branches / 100% functions, all above the configured thresholds

dxdc added 6 commits May 9, 2026 04:43
The Open example flows button was a no-op: closing the tray first
dropped its callback when the tray stack raced editor teardown. Now
invokes core:show-examples-import-dialog directly; the import dialog
opens as a modal above the edit tray.

Wait paths editableList grew its wrapper to fit (height:'auto'), so a
long list overlapped the form rows below. Switched to a numeric
height plus a oneditresize that mirrors core switch/change/httprequest
— subtract sibling rows, give the rest to the list, 140 px floor, no
upper clamp. Re-flows on the Advanced <details> toggle.
- Output preview now respects pathTopicType — flow/global no longer
  mis-render as msg.<field>.
- /join-wait/stores admin call prefixes RED.settings.apiRootUrl, so
  it resolves under custom httpAdminRoot or behind a reverse proxy.
  The fail handler also preserves a saved persistStore as an explicit
  option so the dropdown doesn't silently overwrite it on save.
- Help text no longer references the {userDir}/join-wait/ persistence
  path removed in 0.6.0; describes the context-store backend.
- Bulk paste in Wait/Reset paths: paste newline-separated text into
  any row to fill it + add one row per remaining line. Single-line
  pastes fall through to default paste behaviour.
- validateAllRows refactor: flags duplicate Reset paths and any path
  appearing in both Wait and Reset (which is ambiguous at runtime)
  inline.
- Timeout spinner accepts decimals (1.5 seconds, 0.25 hours, …); the
  runtime already multiplies by the unit factor.
- Output preview shows repeat counts as path_1 (×2): … so the
  n-of-the-same semantic is visible.
- Persist store row hides when Preserve queue is unchecked.
- Polish: theme-aware colors via Node-RED CSS vars, exclamation-
  triangle icon on the timeout warning, dropped !important width
  hacks and dead margin-right:5px on selects.
- New test/admin_spec.js exercises the admin route (added in 0.6.0,
  previously untested): returns the configured stores by name; returns
  [] when contextStorage is empty; normalises string-form entries
  ('memory') into a module field; emits module:null for malformed
  entries instead of crashing.
- editor_spec.js gains drift fences: help text no longer references
  removed/legacy keys (ignoreUnmatched, {userDir}/join-wait/,
  node-persist); mentions the context store; uses
  RED.settings.apiRootUrl on the admin call; binds a paste handler;
  defines validateAllRows.
- CHANGELOG: tightened 0.6.2 and 0.6.0 entries; collapsed 20+
  duplicated bullets in 0.6.0. New 0.6.1 entry for the inject-format
  fix.
- Backfilled 0.3.0 → 0.5.3 entries from the GitHub release notes
  with issue/PR links.
- README: short tip in Quick start about Enter and bulk paste.
- cspell: added httprequest and oneditresize to the dictionary.
- package.json: bump 0.6.1 → 0.6.2.
Stringly-typed #node-input-* and #join-wait-* selectors were
scattered across 10+ functions in the editor IIFE. Pulled them into
a single SEL constants object plus a LIST_ID object for the
editableList wrapper IDs. Also extracted readPathField() (the typed
pair was read in two places) and a small listInputs() helper.
Renamed v -> value in validateRow.

No behaviour change; lint, prettier, spellcheck, tests, coverage
unchanged.
@dxdc dxdc merged commit 9a2933c into master May 9, 2026
5 checks passed
@dxdc dxdc deleted the release/v0.6.2-rebased branch May 9, 2026 05:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant