Commit Graph
447 Commits
Author SHA1 Message Date
雷电芽衣 72bec20a60 R9.3, R9.4: AutoFilter without the header query (GitHub #4); paste on Windows
Patch 0053: under LOK, Calc takes the first row as header instead of
asking asynchronously; the worker closed the query and crashed.
Patch 0049 includes doc.hxx (gcc on Linux did not build it).
arboard read a missing HTML clipboard format as an error on Windows;
the clipboard checks the format first, and paste errors show the
whole chain. ElyTable tests compare CSV and selection text the
platform's way (P3-09).
2026-10-20 02:23:17 -04:00
雷电芽衣 ba358c7de6 C12.9: three-pane mailbox view, filters, virtualized list; ids never reused 2026-10-20 00:25:57 -04:00
雷电芽衣 7f70ab6df7 R9.1: ElyShow master view reads each master's own part info (GitHub #2) 2026-10-19 23:05:29 -04:00
雷电芽衣 6c972163b1 Merge branch 'main' of https://github.com/ELY-Open-Source/ElyOffice 2026-10-19 22:55:13 -04:00
雷电芽衣 bddf765f77 Merge pull request #1 from OmarGonD/fix/readable-text-selection
[BUG REPORT] Keep selected document text readable
2026-10-19 22:54:48 -04:00
雷电芽衣 22d913d45e C12.8: sync now, timed sync, pause, offline folders 2026-10-19 22:29:27 -04:00
雷电芽衣 4d0d64ff54 C12.7: POP3 fetch by UIDL 2026-10-19 21:40:25 -04:00
OmarGonD e42f580510 Keep selected document text readable 2026-10-19 20:32:44 -05:00
雷电芽衣 d4c59706d8 Issue templates: [FEATURE REQUEST], [BUG REPORT] and [Other] 2026-10-19 21:21:27 -04:00
雷电芽衣 890bd80d4d C12.6: IMAP sync 2026-10-19 21:21:27 -04:00
雷电芽衣 5c5ebf5e93 PR template: titles start with [FEATURE REQUEST], [BUG REPORT] or [Other] 2026-10-19 21:18:20 -04:00
雷电芽衣 1c225f6812 C12.5: mail accounts, add and remove
ElyMail's window lists accounts and adds Gmail, Microsoft, iCloud
(app-specific password), IMAP and POP3 ones; a check logs in to both
servers and reports each. Accounts live in the store as JSON with a
case-insensitive unique address; secrets go to the keychain. Removal
names the cache it deletes, takes the secret first and puts it back
when local removal fails. Originals are set aside until commit and
restored after a crash. Requests are numbered so late results stay
with their own dialog. The account list is keyboard-navigable.
2026-10-19 20:17:19 -04:00
ZacharyZhang-NY 5068bc07ca Merge branch 'main' of https://github.com/ELY-Open-Source/ElyOffice
# Conflicts:
#	agents.md
#	scripts/fetch-references.sh
2026-10-19 19:53:11 -04:00
ZacharyZhang-NYandClaude 0e0415fdbe Site: the download count adds Gitea's history to GitHub's
Gitea holds the downloads made before the move, so the worker sums
both hosts' asset download counts (update manifests excluded). Gitea is
read with the same five-minute cache and a five-second limit; when it
is down or answers oddly, the count is GitHub's alone. Downloads stay
on GitHub only.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 19:37:59 -04:00
ZacharyZhang-NYandClaude 271468d0e5 Relicense Ely Office's own code from AGPL-3.0 to MIT
LICENSE is the MIT text, copyright Yang Zhang; the workspace crates,
the docs and the site say MIT. Bundled engines keep their licences:
LibreOffice (MPL-2.0), Git (GPL-2.0) and MuPDF (AGPL-3.0), which ElyPDF
links, so the Linux packages name both, e.g. "MIT AND AGPL-3.0-or-later".

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 19:31:09 -04:00
ZacharyZhang-NYandClaude 1d74bbc417 Updates and the component library come from GitHub
The update check reads the latest release from GitHub's API; its JSON
has the same tag_name and assets[].browser_download_url the reader
expects. Ely-GPUI-Components is fetched from ELY-Open-Source at the same
pinned commits.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 19:22:39 -04:00
ZacharyZhang-NYandClaude a06c9b299d Docs: the code lives on GitHub under ELY-Open-Source
CONTRIBUTING opens pull requests from a GitHub fork; the Linux
packages' homepage is the GitHub repository; agents.md records the move.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 19:22:12 -04:00
ZacharyZhang-NYandClaude 6b28c54e33 Site: releases and source on GitHub; the Mac build is notarized
The worker reads the newest release and download counts from GitHub's
API, with an optional GITHUB_TOKEN secret for the rate limit. Download
links go to GitHub's latest release, and the source link wears the
GitHub mark. The "not notarized" notice goes: macOS builds are signed
and notarized now.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 19:21:30 -04:00
ZacharyZhang-NYandClaude 41321fd05f CI: release from GitHub Actions to GitHub releases
The release workflow moves from .gitea to .github: macOS on the
macos-signing runner, Windows and Linux (WSL) on ely-windows. The
persistent clones fetch from GitHub. ci.sh creates or reuses the tag's
release through GitHub's API and replaces a rerun's assets of the same
name; the update manifests point at GitHub's download URLs.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 19:19:04 -04:00
ZacharyZhang-NYandClaude bd68382921 C12.4: mail credentials and OAuth sign-in
Passwords and refresh tokens go only to the system keychain; a refused
keychain keeps them in memory until exit and says why. Gmail and
Microsoft sign in by authorization code with S256 PKCE on a loopback
redirect; refresh tokens are kept, and revoked grants ask to sign in
again. Client IDs come from the build (env or oauth.env). ureq trace
records never reach the log.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 18:59:56 -04:00
ZacharyZhang-NYandClaude Opus 5.5 7c5bf48589 C12.3: ElyMail local store
SQLite index, content-addressed originals, rebuildable FTS5 search,
schema versions with a backup before each upgrade and read-only on
failure, and size reporting. Three review rounds; the round 3 fixes
are checked by tests, not reviewed again.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-19 18:14:09 -04:00
ZacharyZhang-NYandClaude Opus 5.5 fe90221c11 C12.2: read and write MIME by the tree
The reader walks the MIME tree with its container context: alternative
picks versions, related finds its root by start, attached multiparts
stay whole, digest children are messages. Nesting deeper than 64
levels, counting enclosed messages, is refused, and over-deep parse
results are taken apart iteratively so dropping them cannot overflow
the stack. Composite parts with a Content-ID are cid targets.

The writer keeps attachment parameters and Content-IDs, writes
multipart and message attachments unencoded, and makes its own
Message-ID. SMTP adds BODY=8BITMIME for 8-bit bodies and SMTPUTF8
when any header block at any depth is 8-bit.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-19 17:35:05 -04:00
ZacharyZhang-NYandClaude Opus 5.5 9f47b94714 C12.1: ely-mail-engine connects over IMAP, POP3 and SMTP
TLS or STARTTLS with the system trust store; password and XOAUTH2
logins keep the server's words on refusal. IMAP and POP3 are written
in the engine (imap-proto parses IMAP replies): async-imap dropped
NO/BAD on LIST and FETCH and lost BYE text, async-pop kept dot
stuffing and logged passwords. SMTP runs its own transaction with
RFC 5321 mailbox checks, full dot transparency, SMTPUTF8 and RSET.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-19 16:53:53 -04:00
ZacharyZhang-NYandClaude Opus 5.5 d7de5619a7 C12.0: ElyMail backend moves to Rust crates; iCloud by app password
async-imap, async-pop, mail-send, mail-parser and mail-builder replace
MailCore 2. The MailCore 2 and libetpan fetch, build and probe scripts
go. HTML bodies render as a sanitized block subset in GPUI; compose uses
the Markdown document component. OAuth client IDs come from oauth.env
(ignored) or CI secrets. The task list for C12 is rewritten in order.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-19 16:02:34 -04:00
ZacharyZhang-NYandClaude 0d991e1c71 R8.5, R8.6: 0.1.8 released; #8 and #9 closed
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 02:06:20 -04:00
ZacharyZhang-NYandClaude 0dfb4bb720 CI: macOS job runs on the GUI-session signing runner
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 02:05:55 -04:00
ZacharyZhang-NY c8d7e6f3cc Merge remote-tracking branch 'origin/main' 2026-10-19 00:27:17 -04:00
ZacharyZhang-NYandClaude 2754b2e3dc 0.1.8
release / windows (push) Failing after 9m38s
release / linux (push) Skipped
release / macos (push) Failing after 21m8s
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 00:27:04 -04:00
ZacharyZhang-NYandClaude 4ef7c96916 R8.4: ElyMark typesets inline formulas; \( and \[ read as math
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-19 00:26:23 -04:00
ZacharyZhang-NY 05b205f629 Update README.md 2026-10-19 04:20:14 +00:00
ZacharyZhang-NYandClaude 1e6147ae77 R8.3: sheet tab strip scrolls the chosen sheet in (Gitea #8)
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-18 22:41:28 -04:00
ZacharyZhang-NYandClaude 2ca53ef585 R8.2: Word EQ fields open as formulas; inline objects follow their run
Gitea #9. Patch 0049 moves inline pictures and OLE objects with
their run's w:position. Patches 0050 and 0051 turn EQ fields into
Math objects; unreadable fields show their code. Round 3 findings
(lowercase \s\do tail, split subscripts, \ai/\di, italics through
OMML) fixed and covered by word.rs; no fourth review.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-18 21:39:17 -04:00
ZacharyZhang-NYandClaude 6f1eebb4b5 R8.1: document content keeps the file's colours in a dark app
Pages, cells, slides and PDF pages paint as the file says in any
appearance; only the chrome around them follows dark mode. The
kernel keeps Ely's one light scheme, sent once a view, and MuPDF
no longer inverts. Reviews now run gpt-6.1-sol at xhigh.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-18 19:42:13 -04:00
ZacharyZhang-NYandClaude Opus 5.5 d4cb274749 0.1.7
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-17 00:33:01 -04:00
ZacharyZhang-NYandClaude Opus 5.5 632a66eb46 R7.9: Explorer's New makes docx, xlsx, pptx and md on Windows
Each app installs a blank file and points ShellNew at it. Explorer
lists a type only through its default class, so a type no program
handles (no default, or one naming no class) gets the app's class;
an installed handler is never replaced. Uninstall removes only what
this install wrote.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-17 00:32:48 -04:00
ZacharyZhang-NYandClaude Opus 5.5 2f971c646f R7.3: Linux and Windows kernels lay out 宋体 the same
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 18:53:41 -04:00
ZacharyZhang-NYandClaude Opus 5.5 21394b40a2 R7.8: replies on #3-#6, feature request #7
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 18:48:24 -04:00
ZacharyZhang-NYandClaude Opus 5.5 aae000247d R7.7: one source archive pair per release
Windows checks out symlinks as files, so only Linux (CI) and macOS
(release.sh) write source archives. ci.sh skips names already on
the release; the first platform's copy stays.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 18:34:27 -04:00
ZacharyZhang-NYandClaude Opus 5.5 a1b8c18ffd R7.7: crates.py lists what cargo links on this target
The walk over cargo metadata ignored an edge's target, so lopdf (Linux
only, a test dependency elsewhere) counted on Windows. Linux needs the
BSD-3-Clause text for alloc-stdlib, which ships no licence file.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 17:08:30 -04:00
ZacharyZhang-NYandClaude Opus 5.5 3846041f17 0.1.6
release / linux (push) Skipped
release / windows (push) Failing after 3s
release / macos (push) Failing after 2s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 17:00:33 -04:00
ZacharyZhang-NYandClaude Opus 5.5 13546ea899 R7.6: Windows and Linux print (#3)
Windows prints through the system dialog at the document's paper;
Linux through the desktop portal, the dialog's choices laid out by Ely.
Round 3 findings fixed without a further review, as the rules say.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 16:59:46 -04:00
ZacharyZhang-NYandClaude Opus 5.5 de4a38e814 R7.5: an open ElyMark block keeps its look (component 2e65b05)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 15:01:22 -04:00
ZacharyZhang-NYandClaude Opus 5.5 6b676e06e6 R7.4: an unembedded font is no damage (#5)
The warning watch skips MuPDF's non-embedded font notice and its
repeat counts. Text and search reads are watched too: damage they meet
is kept on the document, told by the next draw or picture check, and
fails image and text exports until then.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 13:44:17 -04:00
ZacharyZhang-NYandClaude Opus 5.5 969cb67c96 R7.3: a font the lookup finds is not reported missing (patch 0048)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 12:48:59 -04:00
ZacharyZhang-NYandClaude Opus 5.5 03e8e9bcb3 R7.2: the settings window draws no app menus or update banner
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 11:43:20 -04:00
ZacharyZhang-NYandClaude Opus 5.5 b12858c7f0 R7.1: bundled installers, one dmg and one setup.exe for all six apps
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 11:17:47 -04:00
ZacharyZhang-NYandClaude Opus 5.5 e22f276c1d R6.14 done: 0.1.5 rebuilt on aa419fd and uploaded
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 21:26:38 -04:00
ZacharyZhang-NYandClaude Opus 5.5 aa419fdfc9 R6.13 round 3 fix: each wheel notch turns; drop the unused part()
release / macos (push) Failing after 1s
release / windows (push) Successful in 12m14s
release / linux (push) Successful in 9m30s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 20:43:11 -04:00
ZacharyZhang-NYandClaude Opus 5.5 407ce00ab9 R6.13 round 2 fix: the worker turns in input order; scrolls by gesture
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 20:35:43 -04:00
ZacharyZhang-NYandClaude Opus 5.5 d427d05b96 R6.13 round 1 fix: notches per platform, the worker decides arrows
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 20:22:23 -04:00