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

basecamp/lexxy

https://github.com/basecamp/lexxy

リスト項目のバックスペースがアタッチメントを選択してしまう問題を修正

アタッチメント直後の空リスト項目でバックスペースを押すと、アタッチメントが選択されてしまう問題が修正されました。`selectDecoratorNodeBeforeDeletion` ハンドラ内に `#collapseListItemToParagraph()` メソッドを追加し、カーソルがリスト項目内にある場合はデコレータ選択をスキップしてリスト→段落変換を直接実行するよう変更されています。

2026年03月16日 Claude Sonnet 4.6

ブロッククォート内へのペーストで改行後のテキストが外に逃げる問題を修正

ブロッククォート内に改行を含むプレーンテキストをペーストすると、改行以降のテキストがクォートの外へ逃げてしまう不具合を修正。LexicalのinsertNodes()がParagraphNodeをQuoteNodeの外側に分離するデフォルト挙動を回避するため、選択位置がQuoteNode内かどうかを検出して専用の挿入パスに切り替える#insertNodesIntoQuote()メソッドを追加しています。

2026年03月16日 Claude Sonnet 4.6

HTML出力から冗長なbold/italicタグを除去するカスタムexportDOMを追加

LexicalのTextNode.exportDOM()が生成する`<b><strong>text</strong></b>`や`<i><em>text</em></i>`という二重タグ問題を、カスタムexport関数`exportTextNodeDOM`で解消しました。Lexicalのhtml.export設定を使いコアを変更せずに差し替え、`<strong>`や`<em>`が既に存在する場合は`<b>`や`<i>`のラップをスキップする設計で、セマンティクス的に正しいHTML出力を実現しています。

2026年03月16日 Claude Sonnet 4.6

Playwrightブラウザテストをセマンティックなフォルダ構成へ再編

19本のPlaywrightテストファイルを `attachments/`、`editor/`、`formatting/`、`modes/`、`paste/`、`tables/` の6つのサブディレクトリに再編し、共通ヘルパーを `helpers/toolbar.js` に集約した変更です。フォルダ構成のルールを `AGENTS.md` に明文化することで、新規テスト追加時の配置判断を明確化しています。

2026年03月15日 Claude Sonnet 4.6

環境変数 `VITE_PORT` によるPlaywright並列実行のサポート

`playwright.config.js` と `vite.config.js` にハードコードされていたViteサーバーのポート番号(5173)を、`VITE_PORT` 環境変数で上書きできるようにしました。これにより、`VITE_PORT=5174 yarn test:browser` のように異なるポートを指定することで、複数のGit Worktreeで並列にPlaywrightテストを実行できるようになります。`reuseExistingServer` による誤ったWorktreeのサーバーへの接続という問題も同時に解消されます。

2026年03月15日 Claude Sonnet 4.6

クリップボードに画像ファイルとHTMLが共存するとき、アップロードパスを優先する

クリップボードに画像ファイルとHTMLの<img>タグが同時に含まれる場合、LexxyはHTML挿入よりもファイルアップロードパスを優先するように修正されました。#isCopiedImageHTMLメソッドでDOM構造を検査し、コピー由来の<img>スニペットを検出した場合のみアップロードパスに切り替える設計で、既存のHTMLペーストパスへの影響を最小限に抑えています。あわせて、ブラウザの制約を回避してファイル付き混合クリップボードペイロードをテストできるよう、Playwrightのエディタヘルパーも拡張されています。

2026年03月15日 Claude Sonnet 4.6

Shift+Enter で挿入したソフト改行の選択行のみにブロック引用を適用する修正

`Shift+Enter` で挿入したソフト改行を含む段落でブロック引用を適用すると、選択行に関わらず段落全体が引用ブロックになるバグを修正しました。新たに追加された `wrapSelectedSoftBreakLines` メソッドが選択行のみを段落から分割して引用ノードでラップし、それ以外のケースは既存の汎用処理に委ねる2段階設計で、既存ロジックへの影響を最小限に抑えています。

2026年03月15日 Claude Sonnet 4.6

テーブルをまたぐ選択範囲での削除操作クラッシュを修正

テーブルの anchor とテーブル外の focus にまたがる選択範囲で Backspace を押すと発生していた Lexical error 148 のクラッシュを修正。`isTableCellSelected` ゲッターに `$isRangeSelection` チェックと `anchor.key !== focus.key` のガード節を追加し、非対称な選択範囲ではテーブルセル専用ロジックをスキップするようにした。

2026年03月15日 Claude Sonnet 4.6

メンション挿入時にインラインフォーマットが失われるバグを修正

プロンプトメニューからメンションを挿入する際、周囲のボールドなどのインライン書式が失われていたバグを修正。テキストノード再構築時に選択状態・anchorNode・親ノードの3段階フォールバックで書式を引き継ぐ `#cloneTextNodeFormatting` メソッドを新設し、クリック・キーボード両操作のシステムテストも追加されました。

2026年03月14日 Claude Sonnet 4.6

インラインコードからのキャレット脱出時にフォーマットが引き継がれるバグを修正

`<code>` スパンの末尾から `ArrowRight` でキャレットを移動した後、次の文字入力がコードフォーマットのまま挿入されるバグを修正。`CommandDispatcher` に `KEY_ARROW_RIGHT_COMMAND` ハンドラを追加し、キャレットがインラインコードノードを抜けるタイミングで明示的に `code` フォーマットをトグルオフする。

2026年03月14日 Claude Sonnet 4.6

OSドラッグ&ドロップのファイル挿入位置がズレる問題を修正

OSのファイルマネージャーからのドラッグ&ドロップ時、ブラウザがDOMセレクションを更新しないという仕様により、添付ファイルがドロップ位置ではなく古いカーソル位置に挿入されるバグを修正。`document.caretRangeFromPoint()` を用いてドロップ座標からDOMセレクションを更新する `dropFiles()` メソッドと `#moveSelectionToPoint()` ヘルパーを追加し、`#handleDrop` の呼び出し先を変更することで解決しています。

2026年03月14日 Claude Sonnet 4.6

ツールバーボタンクリック後にCtrl+Zが効かない問題の修正

ツールバーをマウスでクリックしたあとCtrl+Zが効かないバグを修正。フォーカスがツールバーボタンに残ることでキーイベントがブラウザへ送られる問題と、`dispatchInsertCodeBlock` における不要な `editor.update()` ネストの2つの原因を解消しました。

2026年03月14日 Claude Sonnet 4.6

Trix生成の `@mention` ペーストによるエディタークラッシュを修正

Trix/ActionTextのメンションHTMLをLexxyにペーストするとエディターがクラッシュする問題を修正。`importDOM()` 内の無条件 `JSON.parse()` を、失敗時に生文字列へフォールバックする `parseAttachmentContent()` ヘルパーに置き換えることで、LexxyのJSON形式とTrixの生HTML形式の両方を安全に処理できるようになった。

2026年03月14日 Claude Sonnet 4.6

コードブロックからの脱出操作を修正

LexicalのCodeNodeを抜けるために3回のEnterが必要だった問題を修正。FormatEscaperクラスにKEY_ENTER_COMMANDとKEY_ARROW_DOWN_COMMANDのハンドラーを追加し、「空行でのEnter1回」または「ArrowDownキー」でコードブロックを脱出できるようにした。ChromiumとFirefoxのカーソルオフセット表現の差異にも対応している。

2026年03月14日 Claude Sonnet 4.6

画像キャプションのキーボードショートカット(Ctrl+C/A/X)を修正

Lexicalエディタの contenteditable ルート内に配置されたキャプション用 `<textarea>` からのイベントバブリングにより、Ctrl+A/C/X がLexicalのコマンドに横取りされていた問題を修正。`stopPropagation()` をすべての `keydown` イベントとクリップボードイベント(copy/cut/paste)に適用することで、標準的なテキスト編集操作を正しく動作させています。

2026年03月14日 Claude Sonnet 4.6

プレーンテキスト貼り付け時の改行消失バグを修正

iA Writer などの外部エディタからテキストを貼り付けると単一改行が失われる問題を修正。`marked()` に `breaks: true` を渡す1行の変更で、CommonMark のデフォルト動作(単一 `\n` をスペース扱い)を上書きし、`<br>` タグへ変換するようになりました。段落区切り(`\n\n`)の動作は従来通り維持されます。

2026年03月14日 Claude Sonnet 4.6

Service Workerでファイルアップロードをモックし、デモページに添付ファイル機能を追加

GitHub Pages上のLexxyデモページに、Service WorkerでActive StorageのDirect Uploadエンドポイントをモックすることで、サーバーなしにファイルアップロードの完全なライフサイクルを実現しました。あわせて`:`トリガーの絵文字ピッカーも追加され、`attachments="false"`制限と「not supported」の注記が削除されています。

2026年03月14日 Claude Sonnet 4.6

`bin/dev` でRailsサーバーとJSウォッチャーを一括起動

`foreman` と `bin/dev` スクリプトを導入し、ローカル開発時に必要なRailsサーバーと JSウォッチャーを1コマンドで起動できるようになりました。`bin/dev` はstale PIDのクリーンアップも担い、前回のサーバープロセスが残留している場合でも安全に再起動できます。

2026年03月13日 Claude Sonnet 4.6

サンドボックスの@メンションにアバター画像を追加し、スタイルリグレッションを防止

サンドボックスの@メンションにアバター画像(user-1.jpg〜user-5.jpg)を追加し、メンション付き画像のスタイルリグレッションを早期検出できる体制を整備。合わせて `.person--avatar` のサイズ基準をフォント行高(`1lh`)に統一し、`&:not(img)` セレクタで画像とイニシャル表示の共存を実現。`lexxy-editor.css` のメンションチップ削除ボタンも円形(`border-radius: 50%`)に統一された。

2026年03月13日 Claude Sonnet 4.6

アップロードノードのキャプション表示を優先するよう変更

アップロード中のノードにキャプションが設定されている場合、ファイル名の代わりにそのキャプションを優先表示するよう変更されました。`this.caption || this.file.name || ""` というフォールバックチェーンを1行追加するだけで、拡張機能が事前にキャプションを知っている場合のちらつきを抑制できます。

2026年03月13日 Claude Sonnet 4.6
前へ 1 … 5 6 7 8 9 10 次へ

© 2026 DiffDaily - Powered by AI

タケユー・ウェブ