Skip to content

Fixes & perfomance enhancements - #49

Merged
aleksandrychev merged 9 commits into
cfengine:mainfrom
aleksandrychev:fixes
Oct 13, 2026
Merged

aleksandrychev merged 9 commits into
cfengine:mainfrom
aleksandrychev:fixes

Conversation

@aleksandrychev

Copy link
Copy Markdown
Collaborator

No description provided.

aleksandrychev and others added 9 commits October 12, 2026 17:22
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ihor Aleksandrychiev <ihor.aleksandrychiev@northern.tech>
Loading the SDK and zod took ~300 ms before the window could be created,
even with the MCP server turned off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ihor Aleksandrychiev <ihor.aleksandrychiev@northern.tech>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ihor Aleksandrychiev <ihor.aleksandrychiev@northern.tech>
Every package is bundled by electron-vite, the MCP SDK and zod into main
too, so all of them are devDependencies now. The asar went from 91.5 MB
to 3.2 MB, and its header Electron parses at launch from 10.9 MB to a
few KB.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ihor Aleksandrychiev <ihor.aleksandrychiev@northern.tech>
A closed MUI Menu still renders a Popover and a Modal: with one per arrow,
a 150-block file re-rendered ~600 of them on every drag move or keystroke.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ihor Aleksandrychiev <ihor.aleksandrychiev@northern.tech>
Every node and edge was rebuilt with new data and callbacks on each
render, and the click handlers React Flow hands to each wrapper were new
too, so a drag move or keystroke re-rendered the whole canvas: ~340 ms
per move with 150 blocks, ~67 ms now. Unchanged items keep their objects,
their callbacks reach the canvas's handlers through a latest-ref, and
duplicateKeys is a new Set only when its keys change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ihor Aleksandrychiev <ihor.aleksandrychiev@northern.tech>
Both are memoized with stable callbacks, the explorer takes block counts
per file instead of every block, and dnd-kit gets stable sensor options
and handlers, whose change re-rendered every palette row.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ihor Aleksandrychiev <ihor.aleksandrychiev@northern.tech>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ihor Aleksandrychiev <ihor.aleksandrychiev@northern.tech>
…n JS

MUI's TextareaAutosize re-measures after every render, which forces a
layout of the whole page: ~200 ms of opening a 150-block file. The file
description, block note, text parameters and data samples now use a plain
textarea with field-sizing: content and the same min/max rows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Ihor Aleksandrychiev <ihor.aleksandrychiev@northern.tech>
@aleksandrychev
aleksandrychev merged commit 26febf7 into cfengine:main Oct 13, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant