| Age | Commit message (Collapse) | Author |
|
|
|
Give both consumers one history owner for subscriptions, asynchronous reads
and publication. Retain weak handles, request tokens, account epochs,
archive serials, consent changes and delayed-name reloads while removing
the duplicated consumer state machines.
Check LogShowHistory before model publication and stop the IM owner before
voice teardown. Preserve plaintext fallback when dispatch is unavailable.
|
|
Allow ChatService timestamps up to five seconds after online receipt
while retaining the existing 60-second delivery-delay limit. Forwarding
can finish before the service records a message, so requiring receipt to
follow created_at left a historical copy beside the live reply.
Keep newest-first one-for-one matching and cover delayed recording,
calendar boundaries, translations, and partial repeated-message histories.
Validated with the Windows Release ChatService core target: six regression
cases failed before the fix and all 38 cases pass afterward.
|
|
Apply the existing per-resident 15-second quiet deadline to accepted
incoming direct IMs as well as sends. This prevents each received IM from
immediately starting history reconciliation during an active exchange.
Keep live delivery, conversation opens and first-contact discovery
immediate. Rename outbound scheduler terms to activity terms while reusing
the existing queue, cooldown and cancellation paths.
Validated with the Windows Release viewer build, all 116 configured
Windows tests and an 80-check native scheduler fixture. The scheduler
fixture also compiles with GCC warnings treated as errors.
|
|
Merge archives, plaintext and head previews by service ID and occurrence
before applying history limits. Keep loaded history and visible context in
ChatService so IM sessions and previews share one composer, with ordinary
live appends remaining independent of history replay.
Preserve original bodies and send-versus-receipt timing through offline
delivery and translation. Match known send times exactly and online receipt
times within a rolling 60-second window. Consume eligible occurrences once
in chronological order so repeated messages survive reconciliation across
minute boundaries.
Link offer fallback text to its notification ID and advance the replay
cursor for each actual row. Missing or delayed fallback rows can no longer
cause the following live IM to be skipped.
Dispatch ChatService presentation through the main-loop queue with runtime
and current-state checks. This prevents login deadlocks from reentering
font initialization in another coroutine. Await deletion invalidation
before continuing cleanup so a delayed clear cannot erase later messages.
Validated with the Release viewer build, all 34 LLChatServiceHistoryCore
cases, and native delivery, archive, offer replay and coroutine-deadlock
fixtures. The deadlock fixtures reproduce the original hangs and pass with
deferred presentation.
|
|
|
|
Compare normalized historical overlays before replacing the visible transcript, and retain the current bounded history when durable live rows only roll the oldest entries out of the 200-message window.
Let an active history read observe newer archive generations and restart itself instead of scheduling overlapping reads from snapshot callbacks.
Validated with the RelWithDebInfo secondlife-bin build and the LLChatServiceHistoryCore test suite.
|
|
|
|
Track one resettable quiet deadline for each direct-message resident so multiple outgoing messages coalesce into one head refresh after the last send. Preserve immediate bounded discovery for new conversations and reuse the existing priority and follow-up path at pacing, response, and archive-preparation boundaries.
Retire deadlines when consent, blocking, or deletion makes work ineligible, preventing a failed deletion from leaving a rapid wake loop. Leave inbound priority and tab switching unchanged.
Validated with the RelWithDebInfo secondlife-bin build and the LLChatServiceHistoryCore test suite.
|
|
Replace exact legacy transcript occurrences with canonical ChatService rows while preserving local ordering and consuming repeated messages one-for-one. Carry service timestamps into normalized IM history and keep system sender identity null.
Filter authoritative P2P history refreshes against same-minute live rows so open sessions do not display duplicate messages after asynchronous reloads.
|
|
Recover missing sender UUIDs for plaintext transcript rows from existing name caches while normalizing stitched history. Preserve explicit ChatService and system IDs so resident headers regain icons and profile actions without scheduling name lookups.
Validated with the RelWithDebInfo secondlife-bin build and the LLChatServiceHistoryCore test suite (11 tests).
|
|
Arm a bounded discovery confirmation when the first direct IM is sent to a resident absent from the validated conversation list. Preserve the existing priority placeholder across the first validated miss, then retry the shared list path after the manager-wide delay.
Leave listed conversations and inbound priority behavior unchanged, and retire the unresolved candidate after a second miss so no general live-message debounce or parallel scheduler is introduced.
Validated with the RelWithDebInfo secondlife-bin build and the LLChatServiceHistoryCore test suite.
|
|
Add phase-oriented comments around history synchronization, archive validation, asynchronous view updates, and transcript deletion.
Expand dense control flow and restore readable spacing throughout the ChatService implementation and its integration points without changing behavior. Restore unrelated end-of-file formatting so it drops out of the overall PR diff.
|
|
Synchronize eligible direct IM conversations through the ChatService
capabilities into durable per-resident CSV archives. Validate deterministic
conversation IDs, UUIDv1 ordering, complete discovery and history payloads,
and the account-wide deletion cutoff before a bounded pass can append or
rebuild an archive.
Run discovery, pacing, retries, metadata resolution, and participant paging
through one account-scoped manager. Immediately prioritize new Direct
sessions, P2P previews, and accepted inbound IMs while honoring transcript
consent, authoritative mute state, capability changes, and fail-closed
account state.
Stitch ordinary and monthly legacy plaintext before the oldest accumulated
service row, keep normal plaintext logging active, and merge the first
validated service page in memory while older backfill continues. Drive
Direct and Preview reloads and their nonmodal loading status from shared
resident snapshots.
Maintain the human-readable chat_service_index.csv manifest and protect
archive updates with strict validation, torn-tail repair, corrupt-file
preservation, private file stamps, and atomic replacement. Extend Delete
Transcripts with a durable TimeUUID boundary and an asynchronous sweep that
suppresses every historical source until cleanup completes safely.
Add core coverage for deterministic IDs, UUIDv1 and timestamp validation,
strict page and list contracts, RFC 4180 CSV quoting, archive scanning, torn
tails, and corrupt records.
|
|
|
|
|
|
Remove the Vivox-related code altogether, including SLVoice.
|
|
* #5690 fix viewer trying to fetch group chat history for p2p IM
* #5690 cache "FetchGroupChatHistory" setting
|
|
|
|
|
|
|
|
|
|
|
|
# Conflicts:
# .github/workflows/qatest.yaml
# indra/llcommon/llsdutil.h
# indra/llui/llflatlistview.h
# indra/newview/llinventorybridge.cpp
# indra/newview/lloutfitgallery.cpp
# indra/newview/lloutfitgallery.h
|
|
into 2025.04
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Conflicts:
# indra/llcommon/lldate.h
# indra/newview/llappviewer.cpp
# indra/newview/llinventorybridge.cpp
# indra/newview/llmaterialeditor.cpp
# indra/newview/llviewerparceloverlay.cpp
# indra/newview/llvoavatar.cpp
|
|
Merge 2025.03 release into develop.
|
|
# Conflicts:
# indra/llmath/v2math.cpp
# indra/llmath/v2math.h
# indra/llmath/v3math.h
# indra/llmath/v4math.h
# indra/llui/llfolderviewitem.cpp
# indra/llui/llfolderviewitem.h
# indra/llui/llfolderviewmodel.h
# indra/llui/llmodaldialog.cpp
# indra/llui/lltexteditor.cpp
# indra/llui/lltexteditor.h
# indra/llwindow/llwindowwin32.cpp
# indra/newview/llagent.cpp
# indra/newview/llagentcamera.h
# indra/newview/llavatarrenderinfoaccountant.cpp
# indra/newview/llconversationmodel.h
# indra/newview/llfloaterinventorysettings.cpp
# indra/newview/llfloaternamedesc.cpp
# indra/newview/llfloaternamedesc.h
# indra/newview/llfloaterobjectweights.cpp
# indra/newview/llfloaterobjectweights.h
# indra/newview/llfolderviewmodelinventory.h
# indra/newview/llinspecttexture.cpp
# indra/newview/llinventorybridge.cpp
# indra/newview/llinventorybridge.h
# indra/newview/llinventoryfunctions.cpp
# indra/newview/llinventorygallery.h
# indra/newview/llinventorygallerymenu.cpp
# indra/newview/llinventorymodel.cpp
# indra/newview/llinventorypanel.cpp
# indra/newview/llinventorypanel.h
# indra/newview/llmaterialeditor.cpp
# indra/newview/lloutfitgallery.cpp
# indra/newview/lloutfitgallery.h
# indra/newview/lloutfitslist.cpp
# indra/newview/lloutfitslist.h
# indra/newview/llpanelgroupcreate.cpp
# indra/newview/llpanelgroupgeneral.cpp
# indra/newview/llpanelobjectinventory.cpp
# indra/newview/llpaneloutfitsinventory.h
# indra/newview/llpanelprofile.cpp
# indra/newview/llpanelwearing.cpp
# indra/newview/llreflectionmap.cpp
# indra/newview/llselectmgr.cpp
# indra/newview/llsidepanelappearance.cpp
# indra/newview/llsidepaneliteminfo.cpp
# indra/newview/llteleporthistorystorage.cpp
# indra/newview/lltexturectrl.cpp
# indra/newview/lltexturectrl.h
# indra/newview/lltexturefetch.cpp
# indra/newview/lltexturefetch.h
# indra/newview/llviewerassetupload.cpp
# indra/newview/llviewercamera.cpp
# indra/newview/llviewercamera.h
# indra/newview/llviewermenufile.cpp
# indra/newview/llviewerobject.h
# indra/newview/llviewertexture.cpp
# indra/newview/llviewerwindow.cpp
# indra/newview/llvoavatar.cpp
# indra/newview/llvoavatar.h
# indra/newview/llvoavatarself.cpp
# indra/newview/llvovolume.cpp
# indra/newview/llvovolume.h
# indra/newview/tests/llviewerassetstats_test.cpp
|
|
|
|
|
|
on behalf of the system, optionally specify the agent id and name that should be used.
(cherry picked from commit 7ff297ec3fc5f878cc9a916678987c0033b7eb8a)
|
|
IM_NOTHING_SPECIAL, The metadata can contain information about the bot status of the sender. It may also contain a system-injected notification that is displayed to the agent as part of the 1:1 chat window.
|
|
|
|
to avoid incoming sound & flashing toolbar button.
|
|
https://megapahit.com/show_bug.cgi?id=9
At first I was trying to implement it without any peeking, but I got
stuck at making the group IM blocking state synced across logins and
user accounts, and found that there wasn't any data block reserved for
it in SL group-related message protocols.
I took a peek at Kokua's code, and the feature seemed to have been
imported from Exodus viewer. There were exogroupmutelist files, which
had some implementation of saving to a list named muted_groups.xml,
which was also how I thought the information was stored at first,
locally, meaning would have to be synced manually across user accounts.
I tested the feature on Kokua, and found it didn't generate any file
that lists the muted groups locally, instead it was indeed synced across
devices, which meant that there must have been a way to store such
information in SL servers.
After looking carefully at the logs, only then I noticed a call from
llmutelist, which I then realised it was wrapped by exogroupmutelist.
So, this implementation forwards Exodus' way of using llmutelist to
llpanelgroupgeneral, for saving and loading the states to and from SL
server without using the exogroupmutelist files which contained more,
but unused, code. Exodus' way is to use legacy mute, and construct the
name by prepending "Group:" to the group ID (I had tried setting
LLMute's enum to GROUP, instead of BY_NAME, and it didn't work).
This implementation also differs in how the chat gets blocked in
llimview.cpp, I just tried some few lines and it worked, though I don't
know yet whether this implementation is good/better or not, so I leave
it to others to improve it if they want.
|
|
2024.09-ExtraFPS
|
|
Crash points at enableDisableCallBtn, but button's floater was cleaned
earlier and has a removeObserver call so an observer record should be
long gone. Likely something else is going on.
Went over various callbacks and made sure they are cleaned. But in case
floater somehow remained, added mSession = nullptr.
|
|
2024.09-ExtraFPS
|
|
call.
For #2532, callback button was remaining disabled after hanging up on a group call.
Also, fix an issue where user was automatically added to a group call after the
initiator of the group call hangs up and re-calls the group.
|
|
2024.08-DeltaFPS
|
|
# Conflicts:
# autobuild.xml
# indra/newview/llvoicewebrtc.cpp
|
|
2024.06-atlasaurus
|
|
release/2024.06-atlasaurus
# Conflicts:
# indra/newview/llpanelpeople.cpp
|