DiffDaily Deep & Concise - OSS変更の定点観測
トップに戻る

basecamp/lexxy

https://github.com/basecamp/lexxy

コードブロック切り替え時のネスト選択クラッシュを防止

ネスト選択でコードブロック変換がクラッシュする問題を、外側要素だけを対象にするフィルタ追加で解消し、Invariant #19 のエラーを防止しました。

2026年06月15日 gpt-oss-120b

Ordered List の初期値での番号付与バグ修正

Lexxy の初期 value に含まれる `<ol>` がリスト項目の連番を失うバグを、内部フォーム値取得のタイミングと `#setInternalFormValue` のオプション化で修正し、変換を正しく適用しつつイベント抑制を実現した。

2026年06月11日 gpt-oss-120b

Prevent spurious `lexxy:change` event on initial load

初期ロード時にサニタイズされたエディタ値で内部フォームを初期化し、余計な `lexxy:change` イベント発火を防止した実装変更を解説します。

2026年06月09日 gpt-oss-120b

初期値ロードと内部状態管理を簡素化した Lexical エディタのビルドライフサイクル改修

Lexical エディタは初期値ロードを統合し、冗長な valueLoaded フラグを除去、内部状態管理を二つのプロパティに簡素化、ゲッターで editor.read を使用して更新を確実に取得するよう改修された。

2026年06月09日 gpt-oss-120b

Paste 時にノード挿入コマンドをディスパッチしてフックできるようにした

貼り付け時にノード挿入コマンドがディスパッチされ、プラグインが生成ノードや選択状態をフックできるようになった。

2026年06月09日 gpt-oss-120b

コードハイライト処理をスコープ化・冪等化し、単一要素ハイライトをエクスポート

`highlightCode` がルート限定と冪等性ガードを獲得し、単一要素向け `highlightElement` が公開されたことで、コードハイライトの二乗コストが解消され、パフォーマンスと柔軟性が向上しました。

2026年06月03日 gpt-oss-120b

プレビュー生成のデファード対応:preview_status_url によるポーリングオプション

Lexxy にプレビュー生成の遅延対応として、任意の preview_status_url を利用したステータスポーリングオプションを追加。既存のポーリング方式はオプトインで置き換えられ、後方互換性を保ちつつ負荷が軽減されます。

2026年06月01日 gpt-oss-120b

見出し内での水平線挿入クラッシュを `$insertNodeToNearestRoot` で修正

見出しなど特定ノード内のカーソル位置に `HorizontalDividerNode` を挿入するとエラーが発生していた問題を修正。独自の挿入ロジックを Lexical 標準の `$insertNodeToNearestRoot` に置き換えることで、ルート直下への正しい配置を保証しつつコードも簡潔になりました。

2026年05月29日 Claude Sonnet 4.6

プロンプトメニューの表示方向を強制指定する `vertical-direction` 属性を追加

`lexxy-prompt` 要素に `vertical-direction` 属性が追加され、プロンプトメニューの表示方向を `top`(上向き)または `bottom`(下向き)に強制指定できるようになりました。固定要素やフローティング要素がビューポート内を覆う場合でも、自動計算に頼らず意図した方向にメニューを表示できます。既存の自動判定ロジックはそのまま維持されており、後方互換性も保たれています。

2026年05月29日 Claude Sonnet 4.6

`<lexxy-prompt>`に`only-at`属性とコンテンツタイプゲートの迂回を追加

`<lexxy-prompt>`にトリガーの発火位置を正規表現で制御する`only-at`属性が追加された。ドキュメント全体のテキストを参照する`$textBeforeOffset`関数を新設し、行頭限定や単語途中など多様なユースケースに対応する。あわせて`insert-editable-text`プロンプトがエディタのアタッチメント制限を受けずに常にトリガーリスナーを登録できるよう、コンテンツタイプゲートの短絡処理も追加された。

2026年05月29日 Claude Sonnet 4.6

ImageGalleryNodeの単一子要素アンラップ時に`$makeSafeForRoot`を適用

Trixギャラリーに`&nbsp;`やメンションなど予期しない単一子要素が含まれる場合に発生していたクラッシュを修正。`replaceWithSingularChild()`内の`this.replace(child)`を`this.replace($makeSafeForRoot(child))`に変更する1行の修正で、ルートに追加できない要素を安全に変換するようにしました。

2026年05月29日 Claude Sonnet 4.6

プロンプトのはみ出しをウィンドウではなくエディタ境界で制御する

エディタがモーダル内に表示された際に右端付近のプロンプトポップオーバーがはみ出す問題を修正。クリッピング判定の基準をウィンドウ幅(`window.innerWidth`)からエディタ自身の右端座標(`editorRect.right`)に変更することで、どの埋め込みコンテキストでもプロンプトがエディタ範囲内に収まるようになった。

2026年05月28日 Claude Sonnet 4.6

ギャラリー内での `Shift+Enter` が引き起こす不正なルートノードを修正

ギャラリー内で `Shift+Enter` を押すと `LineBreakNode` がルートノードの直接の子として昇格し `error #99` が発生していた問題を修正。`$makeSafeForRoot` の条件分岐ロジックを `$isSafeForRoot` として独立させ、「安全なノード型」を肯定的に定義する形に整理しました。あわせて Playwright のカスタムマッチャー `toHaveNoErrors` を用いたコンソール監視ヘルパーが追加されています。

2026年05月27日 Claude Sonnet 4.6

サンドボックスの各テンプレートが正常にロードされることを検証するシステムテストを追加

Lexxyのサンドボックス環境に対するシステムテストを新設し、各テンプレートのロード時クラッシュとTurbo Frameを経由したナビゲーション時の問題を自動検出できるようになりました。直前のバグ修正(#1068)を契機に追加されたもので、SandboxController::ALLOWED_TEMPLATESを参照してテストケースを動的生成することで、テンプレート追加時の更新漏れも防止しています。

2026年05月26日 Claude Sonnet 4.6

ツールバーのトップレベルに取り消し線・下線ボタンを移動

lexxyエディタのツールバーで、取り消し線(Strikethrough)と下線(Underline)のボタンがフォーマットドロップダウンの中から外れ、bold・italicと並ぶトップレベルに移動しました。pressed-stateロジックの簡略化と、テストヘルパーのボタン位置非依存化も同時に行われており、今後のツールバー設定機能追加に向けた基盤整備を兼ねた変更です。

2026年05月26日 Claude Sonnet 4.6

ツールバーのオーバーフロー計算が `data-prevent-overflow` 要素を正しく考慮するよう修正

ツールバーのオーバーフロー計算が `data-prevent-overflow` 属性を持つ要素を無視していたバグを修正。エクステンション経由で挿入された「オーバーフロー禁止」ボタンがコンテナ幅をはみ出す問題を、計算順序と参照先の整理によって解消しました。

2026年05月26日 Claude Sonnet 4.6

AndroidのソフトキーボードでプロンプトアイテムをSpaceキーで選択できない問題を修正

AndroidのソフトキーボードはLexicalの `KEY_SPACE_COMMAND` を発火しないため、プロンプトのスペース選択が機能しない問題を修正。`INPUT_COMMAND` を追加リッスンし、`inputType=insertText` かつ `data=" "` の場合に既存の選択ロジックへ委譲することで対応しています。

2026年05月26日 Claude Sonnet 4.6

ソフト改行を段落境界として扱うブロックツールの改善

ツールバーのQuote・Code・Heading・Listなどのブロック変換ツールが、`<br>`によるソフト改行を段落境界として正しく認識するようになりました。Lexical の Caret API を活用した新関数 `$expandSelectionToLineBreaksAndSplitAtEdges` を各ブロック変換処理の前処理として共通適用することで、段落オフセット選択を含む多様な選択状態において「選択行のみを変換し、残りの行を`<br>`付きで保持する」という一貫した動作を実現しています。

2026年05月25日 Claude Sonnet 4.6

Blockquote の `<br>` 境界処理をキャレットネイティブなAPIで再実装

PR #1049 で導入されたソフト改行境界の処理ロジックを、Lexical のキャレット API を直接活用する形に再設計したリファクタリングです。単一の `$splitParagraphsAtLineBreakBoundaries` 関数を「外側の境界で分割する `$expandSelectionToLineBreaksAndSplitAtEdges`」と「内側の `<br>` を爆発させる `$splitSelectedParagraphsAtInnerLineBreaks`」に分割し、責務を明確化しました。キャレットをデータの基本単位として一貫して扱い、変換コストを1箇所に集約することで、コードの保守性が向上しています。

2026年05月25日 Claude Sonnet 4.6

ツールバーのオーバーフロー検出を `clientWidth` ベースに刷新

scrollWidth と独自計算に依存していたツールバーのオーバーフロー判定を、clientWidth / offsetWidth を使うシンプルな実装に刷新。#compactMenu() の責務を #showOverflowMenu()・#getOverflowWidth()・#reclaimWidth() に分割することで可読性を高めつつ、強制レイアウトを防ぐシングルパス設計は維持されています。

2026年05月25日 Claude Sonnet 4.6
前へ 1 2 3 4 5 … 12 次へ

© 2026 DiffDaily - Powered by AI

タケユー・ウェブ