Repository navigation
v0.3.0 — Lexical 0.49, defined --liminis-editor-* aliases
One breaking change, one addition, one fix — bundled deliberately so consumers take a single coordinated upgrade.
Breaking: Lexical peer range is now ^0.49.0
lexical and all eleven @lexical/* packages move from ^0.44.0 to ^0.49.0. The ranges do not overlap — a host on Lexical 0.44–0.48 must move its own Lexical family to 0.49 to install this version.
Lexical is a 0.x package, so ^0.44.0 resolved to >=0.44.0 <0.45.0 and excluded every 0.45+ release regardless of whether it was actually breaking. That pinned every host five minors behind with no published path forward.
The devDependencies move with the peers, so the version CI tests and the version the package promises are now the same thing. Whether to widen this into a band was considered and rejected: a 0.x range claiming six minors would assert compatibility nothing tests. The policy — bump the peer range with each adopted Lexical minor — is recorded in ADR-92. (#92)
Added: --liminis-editor-* names are now defined
Previously the package consumed --liminis-editor-* but defined only the legacy --vscode-* / --slashmd-* / --color-* / --checkbox-* names, so a host could override the new vocabulary but could not read it.
All 65 are now declared as aliases of their legacy counterparts:
:root { --liminis-editor-foreground: var(--vscode-foreground); }Declaring them with literal values instead would have silently disabled the fallback layer from ADR-087 — every consumption chain would resolve at its first arm and stop honouring hosts that supply legacy names. Aliasing avoids that: hosts on legacy names keep working, hosts setting the new names win, and hosts reading the new names now get a value.
One documented limitation: because aliases are declared at the document root, a legacy override applied to a descendant element is not reflected through them. Both behaviours are pinned by e2e tests. See ADR-93. (#93)
Fixed: the editor no longer steals focus on every reload
CursorRestorePlugin called rootElement.focus() unconditionally on any contentVersion bump, so a reload the user did not initiate — an agent writing the file underneath them, for instance — pulled the caret into the editor. Focus is now restored only if the editor already had it. (#96)
Upgrading
pnpm add @liminis/editor@^0.3.0
pnpm add lexical@^0.49.0 @lexical/react@^0.49.0 # …and the rest of the familyTheming needs no change. If you want to migrate reads onto --liminis-editor-*, that is now possible for the first time.