Commit graph

4 commits

Author SHA1 Message Date
Yichen Jiang
73792a81b1 fix(ui-conversation): restore the folder glyph on composer folder references
The old backdrop overpainted a folder reference's trigger character with
IconFolderClose16; the Lexical rewrite kept the data-ref-appearance
attribute but nothing consumed it, so the composer showed a bare blue
token while the sent bubble carried the icon. A Lexical text node cannot
split out its trigger character for overpainting, so the glyph renders
as an icon prefix instead: a currentcolor mask of the same asset before
the intact literal token. The Lexical note's behavior line follows.
2026-08-21 17:09:07 +08:00
Yichen Jiang
c8b4ec73a0 fix(ui-conversation): step across chips without a keyboard-selected state
isKeyboardSelectable() defaulted to true, so an arrow key at a chip edge
created a NodeSelection whose DOM projection collapses to an element
point; the plain-text binding's arrow/delete/insert handlers all bail on
non-Range selections, deadlocking arrows, typing, and Backspace at the
chip until a pointer click. False restores the placeholder semantics:
arrows cross the chip in one move and Backspace/Delete remove it whole.
Reproduced and verified with real-key Playwright probes (CDP raw
keydowns carry no engine default and cannot reproduce it); the
reference-composer e2e pins the gesture in the browser lane.
2026-08-20 22:48:56 +08:00
Yichen Jiang
315fc9b16e fix(ui-conversation): address composer review findings
- drop the space-key debug probe from the production keymap
- give pastes their own undo boundary (PASTE_TAG via $addUpdateTag on the
  nested dispatch path), with an input-bar regression test
- claim decoration outranks text-ref entities on the leading-token seat:
  the entity transform skips the active claim token, restoring the warn
  color for lexicon-listed command names (probe-confirmed regression test)
- caret-only commits no longer advance draftRev or re-publish InputState;
  content changes still do (snapshot-built CAS spans stay valid)
- retire stale JSDoc/contract wording (paste-upgrade, set-invalid; the
  invalid bit only promises the render treatment)
- rename the keydown probe spec to keymap-routing and drop test dead code
- reference-composer e2e gains the #2813 type-ahead-of-chip gesture
- archive three superseded composer notes (Safari soft-wrap, text layers,
  decoration keys), rewrite the input-machine note's superseded half in
  place, and record the new behavior decisions in the Lexical note
2026-08-20 22:20:31 +08:00
Yichen Jiang
f6fb66a318 docs+build(ui-conversation): lexical composer collateral
The client-bundle preset pins the production/development exports condition
(lexical's node-condition file selects its flavor with a top-level await a
CJS bundle cannot carry); the composer carries an explicit aria-label (a
div's data-placeholder does not name it the way a textarea placeholder
did); READMEs, the composer.bar slot doc, and the Agent Note record the
editor architecture; web e2e drives the contenteditable surface.
2026-08-20 18:27:55 +08:00