Commit Graph
159 Commits
Author SHA1 Message Date
ZacharyZhang-NYandClaude Opus 5.5 fdb8317d24 R6.12, R6.13: the LOK worker has no Dock icon; Show turns slides
R6.12: on macOS the worker sets LibreOffice's own NSApplication to the
accessory policy before the kit starts, so it never shows in the Dock.

R6.13: when the whole slide fits, the wheel and Up/Down (nothing
selected, no text editing) turn slides in the ElyShow editor.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 19:29:10 -04:00
ZacharyZhang-NYandClaude Opus 5.5 53630ce0be R6.11 round 3 fix: numbered backups, checked install list
release / macos (push) Failing after 1s
release / windows (push) Successful in 11m29s
release / linux (push) Successful in 7m29s
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>
2026-10-15 16:32:00 -04:00
ZacharyZhang-NYandClaude Opus 5.5 50d348d4e5 R6.11 round 2 fix: the installer lists every file it installs
The list names each file and folder; upgrades and uninstall move only
listed files and remove a folder only when empty. Every file, nested
ones included, must be writable first. A new file whose place holds a
file this app did not install refuses the install. A copy failing
midway removes what it wrote and puts the old release back.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 16:18:55 -04:00
ZacharyZhang-NYandClaude Opus 5.5 23735aee3c R6.11 round 1 fix: the installer removes only what it installed
Reinstalling deleted files Ely never installed, and a busy file left a
half-removed install. The installer now writes the top-level names it
installs (.ely-files, from packaging/windows/files.sh); upgrades and
uninstall remove only those, and releases before the list only in the
folder the registry names. It checks that every listed file can be
written, moves them all into .ely-old, and on any refusal puts them
back and exits 2. A file that cannot be written fails the install,
which removes what it created and restores the old release.
tests/scripts/windows-installer.sh covers each case.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 15:59:50 -04:00
ZacharyZhang-NYandClaude Opus 5.5 5dafa432f6 R6.11: the Windows installer removes an older install's files first
Upgrades kept ElyMark's old git folder and CEF files. The installer
now runs the uninstaller's file list before copying, only when the
folder already holds this app's exe.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 15:44:03 -04:00
ZacharyZhang-NYandClaude Opus 5.5 157c8985b6 R6.9 round 1 fix: strong keeps a heading's weight; sizes are tested
Component 90bd37b.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 14:57:19 -04:00
ZacharyZhang-NYandClaude Opus 5.5 de586da545 R6.8 done: review round 3 passed
Component acbbe1d shortens one R6.9 test comment.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 14:33:37 -04:00
ZacharyZhang-NYandClaude Opus 5.5 effe92a80a R6.8 round 2 fix: two comments fit ten words
Component 4a8f940.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 14:20:40 -04:00
ZacharyZhang-NYandClaude Opus 5.5 d1c1ce97cd R6.8 round 1 fix: measure with the current text; the line end is a stop
Component cd61653. Round 1 verdict kept in tasks/reviews.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 14:03:54 -04:00
ZacharyZhang-NYandClaude Opus 5.5 16a6390eeb R6.7 round 2 fix: a kept CRLF reads back char for char
Pins component 26af4be.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 13:28:25 -04:00
ZacharyZhang-NYandClaude Opus 5.5 afe3ade415 R6.7 round 1 fix: a drawn CRLF reads back to its start
Pins component c31d092.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 13:05:54 -04:00
ZacharyZhang-NYandClaude Opus 5.5 5214eddf77 R6.9: ElyMark headings step up from the body, all bold
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>
2026-10-15 12:30:14 -04:00
ZacharyZhang-NYandClaude Opus 5.5 8375861903 R6.8: source mode places the caret where the line is laid out
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>
2026-10-15 12:22:53 -04:00
ZacharyZhang-NYandClaude Opus 5.5 8580aed6b0 R6.6 round 1 fix: no Git says to install ElyTree; Linux keeps Mark's Git
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>
2026-10-15 12:21:13 -04:00
ZacharyZhang-NYandClaude Opus 5.5 5958e73ade R6.7: ElyMark keeps a single line break on screen
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>
2026-10-15 12:10:41 -04:00
ZacharyZhang-NYandClaude Opus 5.5 0a5d7ea6dd R6.6: ElyMark uses ElyTree's Git on every platform
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>
2026-10-15 12:02:07 -04:00
ZacharyZhang-NYandClaude Opus 5.5 eb606e961d R6.5: sign the LOK worker with allow-jit under hardened runtime
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>
2026-10-15 10:56:09 -04:00
ZacharyZhang-NYandClaude Opus 5.5 39ff567226 R6.3 done: round 3 fix, hard links join the recent list
release / macos (push) Failing after 1s
release / windows (push) Failing after 2s
release / linux (push) Skipped
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>
2026-10-15 03:36:58 -04:00
ZacharyZhang-NYandClaude Opus 5.5 5760d44956 R6.2 round 1 fixes: component 5a53c08
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 02:56:17 -04:00
ZacharyZhang-NYandClaude Opus 5.5 f7163d10e3 R6.2: cascading menus with hover intent (component d4fdb69)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 02:33:08 -04:00
ZacharyZhang-NYandClaude Opus 5.5 e01e9a4cb5 R6.1 round 3 fixes, ticked: component f1771b3
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 02:12:11 -04:00
ZacharyZhang-NYandClaude Opus 5.5 b973c8d62a R6.1 round 2 fixes: component 2b6bd1d
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 01:41:47 -04:00
ZacharyZhang-NYandClaude Opus 5.5 02b86cd5cd R6.1 round 1 fixes: component 6a3f348
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>
2026-10-15 01:18:39 -04:00
ZacharyZhang-NYandClaude Opus 5.5 587862ed4d ElyMark: a press in a table opens its cell alone (component 2594b3f)
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>
2026-10-15 00:53:12 -04:00
ZacharyZhang-NYandClaude Opus 5.5 4460fd35a6 R4.11: real-window acceptance; shifted keys bind their characters
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>
2026-10-14 22:30:44 -04:00
ZacharyZhang-NYandClaude Opus 5.5 65514599fe ElyMark: R4.10 round 3 fixes; R4.10 marked [~]
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>
2026-10-14 22:16:08 -04:00
ZacharyZhang-NYandClaude Opus 5.5 2c374b23ed ElyMark: R4.10 round 2 fixes (copy guard, component 2b8bd9f)
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>
2026-10-14 21:52:25 -04:00
ZacharyZhang-NYandClaude Opus 5.5 67fa5bfc94 R4.10 round 1 fixes: background copies, menu offer served once
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>
2026-10-14 21:17:10 -04:00
ZacharyZhang-NYandClaude Opus 5.5 45ac9c6ec4 R4.13: round 1 fixes; app language leads Han layout
- 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>
2026-10-14 20:52:17 -04:00
ZacharyZhang-NYandClaude Opus 5.5 b714024d2b Release: sign and notarize macOS builds from repository variables
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>
2026-10-14 20:43:18 -04:00
ZacharyZhang-NYandClaude Opus 5.5 41f3af04cf R4.13: Chinese displays in one font, shipped components in Chinese
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>
2026-10-14 20:05:37 -04:00
ZacharyZhang-NYandClaude Opus 5.5 78a285d124 R4.12: answer the token before paths, one deadline per caller, hand-overs via the main window
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-14 19:30:13 -04:00
ZacharyZhang-NYandClaude Opus 5.5 5bf2056281 All apps: a second launch hands its files to the running copy
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>
2026-10-14 19:02:38 -04:00
ZacharyZhang-NYandClaude Opus 5.5 d5ceaf9aac ElyMark: right-click menu by target; Copy as HTML Code and Plain Text
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>
2026-10-14 18:41:24 -04:00
ZacharyZhang-NYandClaude Opus 5.5 09fcb0b3ed ElyMark: R4.9 round 2 fixes, component pin 6c2d28c
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>
2026-10-14 17:48:39 -04:00
ZacharyZhang-NYandClaude Opus 5.5 f84f990f90 ElyMark: R4.9 round 1 fixes
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>
2026-10-14 17:18:57 -04:00
ZacharyZhang-NYandClaude Opus 5.5 539206297c R4.9: ElyMark menus and keys as Typora's, component pin 6b033f3
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>
2026-10-14 16:38:28 -04:00
ZacharyZhang-NYandClaude Opus 5.5 135002fda9 R5.7: Gitea #1, ElyShow's slide strip scrolls with the wheel; R1 PASS
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>
2026-10-14 14:36:00 -04:00
ZacharyZhang-NYandClaude Opus 5.5 35a7bbb904 R5.6: ElyShow right-click menus, PowerPoint-style; Impress table borders drag; R3 PASS
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>
2026-10-14 14:26:27 -04:00
ZacharyZhang-NYandClaude Opus 5.5 87886c8a8d R5.5: ElyTable right-click menus, Excel-style; three rounds used, last fixes tested
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>
2026-10-14 13:02:10 -04:00
ZacharyZhang-NYandClaude Opus 5.5 293643b8ae R5.4: ElyDoc's right-click and table borders checked in a real Windows window; agents.md records R5; R5.5 splits into ElyTable and ElyShow; R2 PASS
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-14 10:35:44 -04:00
ZacharyZhang-NYandClaude Opus 5.5 256240c365 R4.4: export and copy read as the visual mode reads
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>
2026-10-14 09:11:47 -04:00
ZacharyZhang-NYandClaude Opus 5.5 e3c515b2f4 R4.3: block extensions read as GitHub shows them (component 8e5dad8); three rounds used, last fixes tested
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-14 00:50:00 -04:00
ZacharyZhang-NYandClaude Opus 5.5 b5bfb77ba0 R5.1: in a table, ElyDoc's panel shows the Table group first (component 9ff403d keys folds by title); three rounds, R3 PASS
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-13 23:37:47 -04:00
ZacharyZhang-NYandClaude Opus 5.5 c3f6684a46 R4.2: inline extensions read as GitHub shows them (component 9f39d32); three rounds used, last fixes tested
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-13 22:49:32 -04:00
ZacharyZhang-NYandClaude Opus 5.5 c4cb075ce3 R4.2: where Typora and GitHub read a file apart, ElyMark follows GitHub (user, 2026-10-13)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-13 22:06:00 -04:00
ZacharyZhang-NYandClaude Opus 5.5 0c9e2b0cea R4.0: ElyMark measures against Typora 1.14.10; review on gpt-6-astra max
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-13 20:08:01 -04:00
ZacharyZhang-NYandClaude Opus 5.5 854c360ea1 Site: show downloads across every release [skip ci]
/release.json adds the sum of every release asset's downloads; the
update manifests are the apps' checks, not downloads.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 13:43:38 -04:00
ZacharyZhang-NYandClaude Opus 5.5 87c42fde0e Site: read the newest version from Gitea; links follow releases/latest [skip ci]
A worker answers /release.json from the Gitea API (Gitea sends no
CORS headers, so the page cannot ask it directly).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 13:35:58 -04:00
ZacharyZhang-NYandClaude Opus 5.5 26c0a64665 R3.3: the LOK view's pointer follows the kernel; an arrow over cells
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

[skip ci]
2026-10-12 23:31:28 -04:00