Repository navigation
v0.3.9 - #250
Closed
karatektus wants to merge 13 commits into
Closed
v0.3.9#250karatektus wants to merge 13 commits into
karatektus wants to merge 13 commits into
Conversation
…ches A release's work is now collected on a milestone branch (milestone/v0.4.0) before it reaches main, and the suite only ran on pull requests into main, so nothing proposed for the milestone was tested. `milestone/**` joins `main`, and `wip/**` comes along from wip/28, where it already runs the suite on the phases of #28 — the same block on both, so they merge without a conflict. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit d009ff7)
This was referenced Oct 20, 2026
… branch (#254) GitHub links an issue from "Closes #N" only in a pull request into the default branch. Into milestone/v0.3.8 or a wip/ branch the closing references stay empty, so the check failed on every such pull request however its description named the issue (#252 was the first). For a pull request into another branch, the description is now read for the same keywords GitHub accepts. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Releasing asked for the E2E workflow to be started by hand on main before a tag. Since main became protected, the Release vX.Y.Z pull request cannot merge until that workflow is green on it, and its commit is what is tagged, so a manual run only ran the same jobs twice. Releasing now says so, and to update the branch if main moved after its checks ran, since the protection does not ask for up-to-date branches. The paragraph in CONTRIBUTING and the header of e2e.yml that said main is not verified commit by commit describe main before it was protected; both now describe it as it is. Closes #251 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…, a live now line (#256) The month chip is its title first, on up to two lines, then its time range and place; a narrower day drops the end and the place for a third line of title, long words are hyphenated, and an unanswered invitation has a dashed bar. Below 39rem, where a day is bars, the grid shrinks and the chosen day is listed in full under it: today at first, any tapped day after, with a + for that day that the toolbar's + follows too. On a wider touch screen the first tap opens a day's card and the second its entry (calendar--month-tap, and a day-open: variant that the hover and the tap share). The calendar toolbar fits below 37rem with icons, a short date label and smaller buttons, and under 22rem today's date in a box for Today. English writes a same-month week as "Oct 20-26" (range_short_month). The top bar tightens below 640px and moves Sync now, What's new and Send feedback into the user menu. Dialogs are the whole screen below 768px, as compose is. calendar--now moves the now line every minute on the view's clock and redraws a view that shows the old day or the new one when the date changes, which also moves the month's circle on today. And a + on a day that has gone opened the editor on today: DefaultEventStart::onDay pulled any past day to the next hour. A past day now keeps its date. Closes #253 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
#260) GitHub acts on "Closes #N" only for merges into the default branch, so issues fixed on a milestone branch stayed open until the release reached main. A workflow on merged pull requests into milestone/** now closes the issues the description names, with a comment linking the pull request. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…isible (#258) The list preview flattened the whole body and skipped short blocks to find the first long one, so a one-line reply previewed as its attribution line or the quoted mail. The quoted history (same seam as the reading view's "···") and a "-- " signature are cut off first now, in HTML and plain text, and the chrome skip only applies to bulk mail. The JMAP preview uses the same code. The composer folded the quote with an inline display: none and its clean-up removed only the toggle, so replies went out with an invisible quote. The fold is removed in the editor and again on the server, and the reading view reveals a folded quote in mail already received. Closes #257 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…#267) EmailPatchApplier wrote seenAt for $seen and left MessageThread::$unreadCount alone, so the web list (which draws bold from that counter) disagreed with the phone app. $seen now goes through ThreadStatusUpdater::markRead(), the web UI's own path, and markRead() counts the whole thread rather than the messages passed in. Closes #266 Co-authored-by: Philippe Delodder <7259755+phdelodder@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…#270) Trashing a conversation with a message already in the bin queued that message as a move from Trash into Trash. webklex's move() then left the connection in EXAMINE and the server refused it ("NO Not permitted in EXAMINE state"), and the row had already lost its UID. ApplyImapFlagsHandler no longer sends a move into the folder a message is in (and gives the row its UID back), and ThreadStatusUpdater's trash(), archive() and restore() leave such messages out of the move. Closes #269 Co-authored-by: Philippe Delodder <7259755+phdelodder@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…272) A thread's labels are the union of its messages', so one deleted message put Trash on the thread and took the whole conversation out of the Inbox, its tab, label lists, All Mail, Unread, the badges and search, along with any reply threaded into it afterwards. The bin rule is now "carries Trash and has no message outside it", written once (binnedThreads()) for every list and badge and spelled out the same way in the search SQL. Option (b) of the issue. Closes #268 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
expandedValueChanged() used closest('div') to reach the editor's wrapper, but closest() starts at the element itself and the editor is a div, so the wrapper never became a flex container and the editor stayed 170px tall, clipped by [contain:paint]. The wrapper is now the flex column and the editor grows (1 0 auto) to fill the window or its content; the plain-text field fills the expanded window too.
Closes #262
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…#275) Every pull request added its paragraph under ## Unreleased in CHANGELOG.md at the same place, so the second of any two conflicted with the first once it merged, and each conflict fix re-ran the whole E2E suite. A pull request now adds changelog.d/<issue>-<words>.md; bin/changelog-release.sh, run in the Release vX.Y.Z pull request, collects the fragments (highlights first) and anything still under ## Unreleased into the release's section and deletes them. CHANGELOG.md stays the one file What's new, bin/release-notes.sh and GitHub read. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Every failure in the enable path (registering the service worker, the browser's push subscription, the server's answer) ended in the same "Something went wrong" and the exception was dropped, so a report from a Pixel 8 could not say which. The pane now names the step and the DOMException name or HTTP status, and logs the exception to the console. Closes #277 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Merged
Owner
Author
|
Continued in #283. Renaming this release from v0.3.8 to v0.3.9 renamed its branch to |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Collects the work for the v0.3.9 milestone on
milestone/v0.3.9and brings it tomaintogether, the same way #182 does for v0.4.0.Draft until the milestone is complete. Each feature and bug fix is reviewed as its own pull request into
milestone/v0.3.9, and shows up here once merged there.Pull requests into the milestone
linked-issuereads the description of a PR into a milestone branchmainas #255Issues in the milestone without a pull request yet: #203, #202, #134.
How this branch works
milestone/v0.3.9, notmain. The first commit on this branch is the one frommilestone/v0.4.0that runs the E2E suite on pull requests intomilestone/**andwip/**. Without it, a pull request into this branch would get no suite. The change is identical on both branches, so whichever reachesmainfirst, the other merges cleanly.mainis merged intomilestone/v0.3.9as it moves, so this PR stays mergeable.## Unreleased. They become the v0.3.9 section at the release.Closes #Nin a PR into this branch closes nothing. The list below gets aCloses #Nfor each issue whose PR has been merged here, and is updated as they land. Thelinked-issuecheck passes because this PR is labelleddeployment.Closes
Closes #251
Closes #253
🤖 Generated with Claude Code