Skip to content

Conversation

github-actions[bot]
Copy link

Automated changes by create-pull-request GitHub action

chrisbobbe and others added 16 commits July 24, 2025 18:40
Thanks Komyyy for this idea, which I took from PR zulip#1363.

Co-authored-by: Komyyy <[email protected]>
Servers can't yet start sending null without breaking clients.
Releasing this will start lowering the number of client installs
that would break, and eventually there will be few enough that the
breakage is acceptable; see discussion (same link as in comment):
  https://chat.zulip.org/#narrow/channel/378-api-design/topic/.60user_settings.2Etwenty_four_hour_time.60/near/2220696
See the doc:
  https://pub.dev/documentation/intl/latest/intl/DateFormat-class.html
> Formatting dates in the default 'en_US' format does not require
> any initialization.

(And we haven't been doing the described initialization for 'en_US'
or any other locale; it's asynchronous, and we have a better plan
for international formatting described in zulip#45, using ffi.)
github-actions bot pushed a commit that referenced this pull request Jul 28, 2025
I happened to notice this message getting printed repeatedly in the
debug logs (reformatted a bit):

    [ERROR:flutter/runtime/dart_vm_initializer.cc(40)] Unhandled Exception:
      NetworkException: HTTP request failed. Client is already closed.
      (ClientException: HTTP request failed. Client is already closed.,
       uri=https://chat.zulip.org/api/v1/users/me/presence)
    #0      ApiConnection.send (package:zulip/api/core.dart:175)
    <asynchronous suspension>
    #1      Presence._maybePingAndRecordResponse (package:zulip/model/presence.dart:93)
    <asynchronous suspension>
    zulip#2      Presence._poll (package:zulip/model/presence.dart:121)
    <asynchronous suspension>

That'd be a symptom of an old Presence continuing to run its polling
loop after the ApiConnection has been closed, which happens when the
PerAccountStore is disposed.  Looks like when we introduced Presence
in 5d43df2 (zulip#1619), we forgot to call its `dispose` method.
Fix that now.

The presence model doesn't currently have any tests.  So rather than
try to add a test for just this, we'll leave it as something to
include when we write those tests, zulip#1620.
@github-actions github-actions bot force-pushed the update-translations/weblate branch from ce7b149 to 54eecd8 Compare July 28, 2025 10:16
chrisbobbe and others added 12 commits July 28, 2025 15:18
Fixes zulip#332.

Really the same optimization as described for zulip-mobile in
  zulip/zulip-mobile#4684
, and makes mark-as-read take 0ms (to the nearest ms) down from 3 or
4, in my testing, and so fixes zulip#332.
This skipped test is a duplicate of the one above it, but
incorrectly has the description of the one below it. Probably a
result of conflict-resolution error in b073c6b which introduced
this duplicate, or another in the chain of cherry-picks that led to
that commit.
With renderKatex flag enabled (and soon to be default behaviour)
being first.
This flag has been enabled since v0.0.29 (beta) release, and we
don't plan to disable it. So remove the flag completely,
simplifying related code.

Fixes: zulip#1728
These changed in a recent upstream PR to look a bit more like
the output of `git describe`:
  flutter/flutter#172141

That causes an upgrade by `tools/upgrade flutter-local` past that
upstream change to break an assumption made by this check; the check
notices that up front, and sensibly fails.

So update the check to accept both ways.
And update Flutter's supporting libraries to match.

In particular this gets us TransitionDurationObserver:
  flutter/flutter#171109

We stop just before a certain Dart SDK roll:
  flutter/flutter@fa80cbcbdbdd
because that commit breaks completion in the IDE, which would be
pretty annoying for doing development.  Thanks to Sayed for
spotting that breakage and bisecting it to that commit:
  zulip#1755 (comment)
  https://chat.zulip.org/#narrow/channel/516-mobile-dev-help/topic/New.20Flutter.20upgrade.20degrades.20code.20autocompletion/near/2230721
…orgot

This should unblock the upstream PR
  flutter/flutter#165832 .
Discussion:
  flutter/flutter#165832 (comment)

(And, for consistency, also use upstream's new
TransitionDurationObserver in a place we were getting a duration
more manually. This weakens the test a bit, by removing checks that
the duration comes from a popped route, with specific details of the
route that was popped. Perhaps we can add a feature to
TransitionDurationObserver to get those checks back, but not a
priority for now.)
In the next commit(s), when creating topic permalinks, we try to use
max message id of the topic, if possible. If we cannot find the max
message id, then I think better to use a message id near to max message id.

Related CZO discussions:
  https://chat.zulip.org/#narrow/channel/101-design/topic/redirects.20from.20near.20links/near/1460694
  https://chat.zulip.org/#narrow/channel/101-design/topic/redirects.20from.20near.20links/near/1774403
@github-actions github-actions bot force-pushed the update-translations/weblate branch from 0d0a7cb to 36d4c74 Compare September 1, 2025 10:15
MTtankkeo and others added 11 commits September 3, 2025 20:38
…nish

These tests scroll a long way, in order to be sure to scroll to the
end of the list.  That means they invoke overscroll.  The details of
how overscroll behaves are changing in an upstream PR:
  flutter/flutter#173849

The new behavior will take more than a single `pump` to reach the
end state where the subsequent checks behave as expected.  These
tests aren't about the overscroll behavior, so just gloss over any
wrinkles by calling `pumpAndSettle`.
Fixes zulip#1523.

Chris reported the issue, debugged, and wrote the core of the fix.
I added the test, found that the left and right insets reappeared,
debugged why, and added removeLeft and removeRight to fix those.

Co-authored-by: Chris Bobbe <[email protected]>
This will result in better organization when more tests are added for
another type of settings (IntGlobalSettings) in the following commits.
This `init` function has only one caller, `prepare` (it could
probably be inlined?); simplify by removing this param and the code
inside that was never being exercised.
Fixes: zulip#524

[chris: rebased atop some notification-test refactors in the last
few commits]

Co-authored-by: Chris Bobbe <[email protected]>
@github-actions github-actions bot force-pushed the update-translations/weblate branch from 36d4c74 to 0598d62 Compare September 8, 2025 10:15
rajveermalviya and others added 14 commits September 8, 2025 14:37
This reflects the condition that's directly encoded by this boolean.
(Through several conditionals in the rest of the function, we end up
confirming that this value is true just if the element does in fact
have two `.vlist-r` children, as the old name suggests.  But that
comes later and more indirectly.)
…t it

Mostly this moves and revises comments.  Also rename one local to
"depthStrut" to match its name in the KaTeX JS, which we also now use
in the explanatory comment.
…t doc

And leave a comment so we remember to keep this order when adding
more fields.
Like HasUserStore for data about users (added in 623bcb4), and
HasRealmStore for data about the realm, this will help make it
convenient for other substores to refer to data about channels.
This way, this substore becomes a valid home for methods that need
to refer to data about both messages and channels.

See also fab85ca, where we provided UserStore to ChannelStore.
@github-actions github-actions bot force-pushed the update-translations/weblate branch from 0598d62 to 30697c0 Compare September 15, 2025 10:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants