Component 5954132 sizes headings by Typora's steps over the body.
Checked in a real Windows window with R6.7 and R6.8.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Component 9fb607b measures the drawn line, so a caret after a CJK
character sits after it, not mid-glyph.
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>
Component 93efa7f draws soft breaks as lines (Typora's default when
writing); exports and copies read with MarkdownReader::joined, as GFM.
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>
0.1.5's Developer ID signing turned on the hardened runtime. UNO's
bridge maps its vtables with MAP_JIT, which needs allow-jit; without
it the worker aborts on its first request, so ElyDoc, ElyTable and
ElyShow could not start on macOS.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Real footage of the installed 0.1.5 apps, composited in Remotion with
shape morphs between sections; synthesized score and UI sounds. Logs
P3-17 (ElyTable keyboard zoom leaves the grid half-scrolled).
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>
Visual mode opened a pressed table whole, as Markdown source. The
component now opens only the pressed cell, in place, as its source;
Tab, Shift-Tab and the arrows walk the cells, Enter and Escape write
back in one undo step, a typed bare pipe is escaped. Adds the R6
checklist for the 0.1.5 re-release.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A Clear Recent Files button under the list writes an empty recent.json
(ely_files::recent::clear); a failure is shown, not swallowed.
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>
A real keyboard reports Shift plus punctuation as the character on every
platform, so the Windows key-name bindings never fired. Windows also
keeps Ctrl+Shift+0 for Chinese input; Actual Size adds Ctrl+Shift+9.
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>
Copy as Rich Text, HTML Code and Plain Text convert off the window
thread; a newer copy cancels an older one. Offer hands its request to
the menu host once, so a dismissed menu stays shut when its tab returns.
ElyMark Delete Image now targets the pressed picture (component a4bf696).
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>
The macOS job reads ELY_SIGN_IDENTITY and ELY_NOTARY_PROFILE from the
repository's Actions variables; ci.sh fails on macOS when either is missing.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Windows text layout takes the user's first Han language when the
locale is not Han, so simplified characters no longer fall back to
Japanese fonts. Component pin 6df9ab0 routes the remaining English
tooltips, placeholders and samples through i18n.
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>
R4.10. Clipboard row, Copy / Paste As, format and block rows, Table or
Paragraph, Insert, link, image, code and raw-block items; source and
preview menus. Component pin 1b5fb07. Records the user's rule that
ElyMark must work, not match Typora one to one.
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>
Paragraph and Format menus with Typora's items, labels and keys; Table
is a Paragraph submenu with row and column moves and source tidy.
Ctrl+/ toggles source, F8 focus, F9 typewriter, Ctrl+Shift+=/-/0 size,
Ctrl+Shift+C copies as Markdown, Ctrl+Shift+V pastes as plain text.
Refused commands show why, including refusals read in the background.
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>