Backups under .ely-old are numbered in list order, so paths near the
Windows limit still upgrade and uninstall. Uninstall checks the list
file first and puts everything back if it cannot delete it. Five
comments shortened. Round 3 was the last; ticked without review.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The lookup is split from the developer fallback, so the tests
need no built Git and check NoGit explicitly. Shorter stage.sh comment.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
git::own returns git::NoGit when neither the app nor ElyTree has Git;
ElyMark's Git item then reads 'needs ElyTree'. Linux AppImages stand
alone, so ElyMark keeps its Git there (packages share the AppDir).
The bundle fixture now has ElyTree's executable folder.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Windows and Linux no longer stage Git or its licenses for ElyMark.
git::own looks beside the app, then beside ElyTree (sibling install
or macOS registration). R6.5 review round 1 passed; R6.6-R6.10 listed.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
An explicit open checks the session registry by file identity, so a
hard link to a shown file joins the list. Ticked after round 3.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Opening a file a tab already shows only focuses it; the recent list
now learns it too. The restart regression reopens the restored file.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A tab reopened from the session counts as already remembered, so
clearing the list survives a restart; explicit opens still join it.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Open cells keep presses inside their field, finds open the matching
cell, a closing backslash keeps the next pipe, and right presses map
through typed pipes.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
All three findings were in the ignored acceptance driver's backup and
restore, not in product code; each is fixed with a regression.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The copy guard also compares the clipboard's HTML, which gpui omits,
so a later rich copy with the same plain text is not overwritten.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A pending conversion no longer overwrites a later clipboard write; pin
moves to component 2b8bd9f (one-pass drawn lookup, latest press wins).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- ely-ui passes its resolved locale to Windows text layout, so
Chinese UI lays out as Chinese whatever the Windows region.
- Component a4bf696: Find box, sort and filter builders and
password tooltips read the catalog; stricter shipped-copy scan.
- ElyMark deletes the right-clicked picture (delete_image(at)).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
R4.12 (user report). The copy holding the instance lock opens a local
door guarded by a random token in its data folder; a second copy sends
its file paths there, lets it take the foreground, and exits 0 instead
of showing "already running". Files join the ely_ui::on_open queue every
app already uses; the main window comes to the front. Also records the
R4.10 round 1 verdict.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Delete Table in an open block leaves focus on the document; Windows-only
import gated; menu tests run on Windows and Linux only.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Menus act on an open block's selection (component 6d90351), clipboard
keys reach a focused field outside the document, Strike binds per
platform, platform-correct key tests, Delete Table in the table menu
(component 24ffc45), short comments. Pin 6b033f3 -> 24ffc45.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The strip's list sat in a ContextMenu host with no size, so it grew
with its content and never overflowed. The host now fills its column,
as ElyPDF's do; a 24-slide test wheels to the last slide.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The canvas offers Ely's menu by target: slide (layouts, comment), text
(bullets, numbering, comment), shape or text box, picture (replace,
crop), table (insert, delete, merge), each item gated by the kernel's
state for its own command. Impress's table borders read as text and
drag through R5.3's path; patch 0047 reports every edge's bounds and
makes the left edge drag. A line past its bound never moves against
the drag, so a still press sends nothing.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Component 68d33b4..1d03545 (pushed). Round-3 findings fixed with
regressions; rounds spent. Two limits recorded in the task line.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Grid and header menus share ely_office::menu with ElyDoc. Each item's
availability is the kernel's state for the exact command it runs
(patch 0045). Patch 0046 lets a header select its row or column while
a shape is selected or its text is edited: the view shell ends the
drawing edit, keeps the typed text, leaves drawing mode, then marks.
Ely no longer sends Esc first.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Component 5af11fe..c35fdac (pushed): a press opens its block with the
caret on the pressed character; a secondary press moves the caret and
emits DocumentEvent::Pointed. Three review rounds failed; the round-3
findings are fixed with the reviewer's probes as regressions, unreviewed.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
HTML export, plain text and rich copy read each paragraph, heading,
cell and HTML block through the component's MarkdownReader (pin
1251221). Emoji, alerts, the TOC and inline tags match visual mode.
Footnotes sit in place as [n]; link titles are not written.
Three review rounds failed; round 3's one finding (a scan per
footnote over open marks) is fixed with a growth regression, unreviewed.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>