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

basecamp/lexxy

https://github.com/basecamp/lexxy

Rollupビルドの外部依存設定に `@rails/activestorage` を追加

`@rails/activestorage` を devDependencies へ移動したことで発生していたRollupビルドの失敗を修正しました。`output.file` 指定時にチャンク分割が試みられエラーになる問題を、`rollup.config.mjs` に `external` 設定を追加することで解消しています。

2026年03月13日 Claude Sonnet 4.6

TrixとLexxyのクロスエディタ互換性テストハーネスを追加

LexxyのテストスイートにTrixエディタとの双方向クロスエディタ互換性テストが追加されました。`to_trix_html`を使った正確なコンテンツシリアライズとJavaScript経由のTrix内部API操作を組み合わせ、リッチテキスト・添付ファイル・ギャラリーの6シナリオでエディタ間のAction Text互換性を検証するハーネスが整備されています。

2026年03月12日 Claude Sonnet 4.6

CapybaraからPlaywrightへ:ブラウザテスト基盤の全面移行

LexxyのブラウザテストをCapybara/SeleniumからPlaywrightへ移行し、ViteをテストホストとしてRails依存を排除しました。テスト実行時間が約20秒超から約6秒に短縮され、Chromium・Firefox・WebKitの3ブラウザでの並列実行が可能になりました。Action TextやActive Storage統合など真にRailsを必要とするテストのみCapybaraシステムテストとして残す関心分離の設計が採用されています。

2026年03月12日 Claude Sonnet 4.6

エディタプロンプトのコードブロック無効化と表示位置の修正

Lexxyエディタのプロンプト(インライン補完メニュー)について、コードブロック内での誤発火を防ぐガード処理の追加、画面右端でのクリッピング対応、`ul`セレクタの過剰適用によるマージンのずれ修正、削除ボタンの位置ずれ修正という4つの改善がまとめて行われました。

2026年03月11日 Claude Sonnet 4.6

アップロード完了時の選択状態維持とDOM構造の簡略化

Lexxyのアップロード処理に複数の改善が加わった。アップロード完了時にノードを置換しても選択状態が維持されるようになり、画像を包んでいた不要なコンテナDIVが除去された。CSSも `display: table` から `display: block` へ移行し、DOM・スタイルの両面でシンプルな構造に整理されている。

2026年03月09日 Claude Sonnet 4.6

テーブルセル内でのプロンプトキーボードナビゲーションの修正

テーブルセル内で@メンションなどのプロンプトを使用中に矢印キーがテーブルナビゲーションに奪われるバグを修正しました。プロンプトのキーハンドラー優先度を `COMMAND_PRIORITY_HIGH` から `COMMAND_PRIORITY_CRITICAL` に引き上げることで、Lexicalのテーブルプラグインより先にイベントを処理できるようになります。プロンプトが表示中のみ最高優先度を占有し、閉じると同時にハンドラーが解除されるため、通常の編集操作への影響はありません。

2026年03月03日 Claude Sonnet 4.6

ファイルアップロードのライフサイクルイベントを追加

lexxy のファイルアップロードに `lexxy:upload-start`・`lexxy:upload-progress`・`lexxy:upload-end` の3つのカスタムイベントが追加されました。これまで開発者が `progress` 要素のDOMクエリで代替していたアップロード状態の検知が、公式イベントAPIで実現できるようになります。イベントは `figure` 要素からバブルアップする設計で、個別ファイルの追跡と一括監視の両方のユースケースに対応しています。

2026年03月03日 Claude Sonnet 4.6

`rich_text_area_tag`でフォーム属性が無視されるバグを修正

`lexxy_rich_textarea_tag`が`form`属性をHTMLオプションから削除してしまうバグを1行の削除で修正しました。これにより、`<input form="myform">`と同様にフォームの外部からLexxyエディタを関連付ける標準的なHTMLの使い方が可能になります。

2026年03月03日 Claude Sonnet 4.6

Trix互換のイメージギャラリー機能をLexicalベースのエディタに実装

LexxyにTrix互換のイメージギャラリー機能が実装されました。新たに追加された `ImageGalleryNode`(ElementNode継承)は `static transform()` で自己整合性を保ち、単一画像ギャラリーの自動unwrapや隣接ギャラリーの統合を実現します。`AttachmentsExtension` への責務集約と `Uploader` のファクトリパターン導入により、添付機能の有無による条件分岐がエディタのコアから分離されています。

2026年03月03日 Claude Sonnet 4.6

マークダウンペースト時に `lexxy:insert-markdown` イベントを発火

Lexxyエディタにマークダウンをペーストした際、HTML挿入前に `lexxy:insert-markdown` カスタムイベントが発火するようになりました。`event.detail.document` に変換後のDOMが公開されており、イベントハンドラから同期的に操作することで画像の除去やブロックスペーシングの追加など、ペースト内容をアプリケーション側で自由に制御できます。設定APIへの依存を排除し、Web標準のイベントモデルに乗ったシンプルな拡張ポイントの追加です。

2026年03月03日 Claude Sonnet 4.6

選択したノードをマウスで削除できるコントロールの追加

Lexxyエディタに、添付ファイルや水平線などのノードをマウスで削除できるコントロールが追加されました。新しいカスタム要素「lexxy-node-delete-button」が各ノードのDOM構造に組み込まれ、ノード選択時にデリートボタンが表示されます。

2026年02月27日 Claude Sonnet 4.5

選択範囲へのURL貼り付けで複数のリンクノードを統合

Lexxyのリンク生成ロジックが改善され、複数の単語にまたがる選択範囲へURLを貼り付けた際に単一のLinkNodeが生成されるようになりました。既存リンクをクリアしてから新規リンクを適用する方式に変更され、同じURLを持つ隣接リンクが複数生成される問題が解決されています。

2026年02月26日 Claude Sonnet 4.5

エディタがフォーカス済みの場合のクリック操作を回避

エディタが既にフォーカスされている場合に不要なクリック操作を回避する修正。`document.activeElement`でフォーカス状態を確認し、テーブルセルなどでの選択範囲の意図しない移動を防止します。

2026年02月26日 Claude Sonnet 4.5

ツールバーのスタイリング改善

LexxyエディタのツールバーアイコンをBasecampスタイルに統一し、関連アクションのグループ化とCSS強化により操作性と保守性を向上。アイコン定義を外部モジュール化し、将来の変更を容易に。

2026年02月25日 Claude Sonnet 4.5

HTML コードブロック内のエンティティがエディタ読み込み時に破損する問題を修正

Rails の content_tag が html_safe な値を属性値として扱う際にエスケープを行わないため、HTML エンティティが実際のタグとして解釈される問題を修正。to_str による html_safe 属性の除去により、エディタ内のコードブロックが正しく表示されるようになりました。

2026年02月25日 Claude Sonnet 4.5

AttachmentNodeキャプション入力のSafariバグ回避策を削除

Provisional Paragraphs機能の導入により、Safari特有のAttachmentNodeキャプション入力バグへの回避策(57行)が削除されました。DecoratorNodeの前後に選択可能なノードが自動保証されることで、ブラウザ固有の処理が不要になり、キャプションのフォーカス管理もシンプル化されています。

2026年02月24日 Claude Sonnet 4.5

Lexicalの更新完了を待つ非同期テスト機構の導入

Lexxyのテストから固定時間待機(sleep)を削除し、Lexicalの`onUpdate`コールバックと`requestAnimationFrame`を組み合わせた非同期待機機構を導入。エディタの更新完了を確実に待つことで、テストの信頼性と効率性を向上。

2026年02月24日 Claude Sonnet 4.5

Lexicalエディタの選択範囲APIに書式判定メソッドとノード検索ヘルパーを追加

Lexicalエディタの選択範囲APIに`selection.getFormat()`と`selection.nearestNodeOfType()`を追加。Webツールバーとネイティブツールバーが統一された書式判定・ノード検索インターフェースを共有できるようになり、カスタムヘルパー関数をLexical標準ユーティリティに置き換えることでコードの一貫性とメンテナンス性を向上。

2026年02月24日 Claude Sonnet 4.5

アップロード中の添付ファイルをDOM出力から除外

LexxyのRich Textエディタで、アップロード中および失敗した添付ファイルがDOM出力から除外されるよう変更。ActionTextAttachmentUploadNodeの`exportDOM()`が`null`を返すことで、未完了のアップロードがフォーム送信時のHTMLに含まれなくなり、データ整合性が向上しました。

2026年02月23日 Claude Sonnet 4.5

DecoratorNodeの選択処理をCLICK_COMMANDベースに移行

Lexxyが、DecoratorNodeの選択処理をカスタムイベントベースからLexical標準の `CLICK_COMMAND` ハンドラベースに移行しました。この変更により、内部イベントシステムが完全に削除され、コードが36行削減されています。

2026年02月23日 Claude Sonnet 4.5
前へ 1 … 6 7 8 9 10 次へ

© 2026 DiffDaily - Powered by AI

タケユー・ウェブ