Skip to content

[pull] master from gradido:master - #172

Merged
pull[bot] merged 12 commits into
IT4Change:masterfrom
gradido:master
Sep 30, 2026
Merged

pull[bot] merged 12 commits into
IT4Change:masterfrom
gradido:master

Conversation

@pull

@pull pull Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

BerndHueckstaedt and others added 12 commits September 30, 2026 05:44
Bernd, 30.09.2026 (E-055): contact from a group should be quick -- say during
a video call running in the Jitsi app in front. Tapping another member's name
in a group (its member list, or over their message) now opens their contact
window over the group's, and "Hallo <username>" already stands in the field
wherever the two have never written: a first word is one tap on the arrow.

- Somebody who is no contact yet gets the window's first form instead of the
  send form: face, name, community and address, the thread, and only the text
  field -- no Gradido button, no camera, bell or heart, no paperclip. The
  first message goes by mail as every first one does (E-024) and makes them a
  contact, in this community or another; the window then becomes the whole
  one without closing, the page puts the server's contact row in and asks its
  list again. Closing leads back into the group.
- A contact without a conversation yet, opened from a group: the whole window
  as always, with the greeting in the field (Bernd's choice). Opened from
  anywhere else, nothing changes.
- useContactWindow: `open(contact, { fromGroup, known })` sets `greet` and
  `firstContact` for the opening; `fillIn` swaps in the server's contact row.
- ChatThread hands the greeting to an empty field unless a start held words
  for it; ChatComposeBar takes `textOnly`.
- chatThread.firstContactGreeting in ten languages, worded like the mails'
  own greeting (core helloName).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…oved on

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…oup's community

A writer tapped over their message carried what the message says of them --
no community name, which the list of members has --, so the window's first
form had no community line when opened from the thread (measured in the real
bundle). The group names its own community (it lives on its founder's
server, E-008): a writer of that community is handed on with its name, a
writer of another one as they are.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Measured in the real bundle: the meta line's reserved height stood as an empty
band under the head of the window's first form, where no figures can come
before the first message. It comes with the first message, with the row.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
feat(frontend): a first word to a group member in one tap
… agree

Bernd, 30.09.2026: the settings menu said "Aus" beside "Nachrichten" while the
switch for the transfers in the chat and by mail was on. The entry holds two
switches since #4007 -- the information mails and the transfers (on unless
switched off, as the page reads it) --, but the word was taken from the first
alone. Now "Ein" where both are on, "Aus" where both are off, and no word
where they differ (Bernd's choice): a wrong word is worse than none.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix(frontend): one word beside "Nachrichten" only where both switches agree
Bernd, 30.09.2026 (E-057): a full-text search in every conversation, with
one person and in a group. A magnifier by the window's cross opens a search
bar; what is typed is searched on the device -- the words never leave it --
in the messages' words, subjects and captions and in the transfers' memos.

- useChatThreadSearch: loads the thread's older pages for the search, up to
  about a thousand messages (Bernd's choice), the transfers with them; waits
  for each page to land before asking for the next; gives up on a page that
  does not come. Hits are messages; the newest is shown first, and the
  window's arrows step to the older and the newer. Past the limit the bar
  says that only the newest were searched.
- chatSearch (utils): compares without regard to case and accents ("cafe"
  finds "Café"), and cuts a text at its hits in its own indices -- past emoji
  and accents written as marks of their own.
- The hits are marked where they stand (chatSearchMarks): in the words, bold
  runs, a link's text, the subject, a transfer's memo; the bubble the search
  stands on is ringed. MemoText marks only inside a thread; the booking list
  is unchanged.
- ChatSearchBar: field, "3 von 12", ↑ older and ↓ newer; Enter and
  Shift+Enter step, Esc closes the search and leaves the window open.
- The contact window and a group's window: the magnifier beside the cross
  (not in the first form, E-055), the bar under it; closed with the window
  and anew for another conversation (useChatWindowSearch).
- chatSearch.* in ten languages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The note that only the newest messages were searched said, in es, it, pt, tr
and el, that the messages were looked FOR (buscar, cercare, pesquisar,
aramak, αναζητώ take what is sought); now the search went through them. ru
the same sentence clearer, and "Нет совпадений" in the narrow count slot, as
the arrows name their hits "совпадение".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ves the focus back

Two injections got through: an older needle giving way after the pages came
in (the box was shown the same hit twice), and the focus going back to the
magnifier when the search closes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…or nothing

coderabbit (#4025):
- The limit counted the messages alone, while the transfers kept pages
  coming: a pair with few messages and many transfers had no bound. The
  thousand now counts the messages and the transfers together.
- A page that came back without anything new -- a booking page without a
  transfer between the two -- held the search on "Suche …" for the whole
  wait meant for a page that does not come. Now the request itself is given
  15 s, and a page that came back 2 s to be on screen.
- `loadOlder` says whether it asked for a page: false where there is none
  (not reachable while older pages remain, and so a guard), and a call while
  a page is on its way -- "load older" pressed a moment before -- waits for
  that page instead of returning at once.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
feat(frontend): search a conversation's thread
@pull pull Bot locked and limited conversation to collaborators Sep 30, 2026
@pull pull Bot added the ⤵️ pull label Sep 30, 2026
@pull
pull Bot merged commit 559c3a0 into IT4Change:master Sep 30, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant