summaryrefslogtreecommitdiff
path: root/indra/newview/lllogchat.cpp
AgeCommit message (Collapse)Author
8 daysMerge tag 'Second_Life_Release#db59a05a-26.5' into 26.5Erik Kundiman
2026-09-24Use portable file ownership for transcript readspepper
Replace the Windows-only LLUniqueFile with std::unique_ptr and the existing LLFile::close deleter. This fixes the macOS compile failure while retaining automatic file closure on every exit. Windows Release build, 41 history tests, and repository hooks passed. macOS CI still needs to be rerun.
2026-09-23Share the exact-path transcript readerpepper
Delegate ordinary transcript reads to the same exact-path reader used by stitching. Let that reader own parsing and its file handle, removing the separate parser layer and duplicated open/close path. Keep ordinary privacy, filename and group fallback at the existing entry point. Require explicit read parameters and preserve full/bounded reads, EOF handling, BOM, newline, multiline and mention behavior. Compared 28 full/bounded read inputs and checked retained message contents.
2026-09-23Centralize history availability in the transcript querypepper
Make LLLogChat::isTranscriptExist apply the deletion gate and check both plaintext and direct service history. Restore its menu and profile callers to that existing query, removing their repeated policy and extra includes. Keep group history on the ordinary transcript path.
2026-09-23Simplify transcript worker ownership and publication boundariespepper
Let the legacy worker own its filename and completion signal. Remove manual signal deletion and the unused thread accessor together with Preview's mutex; both loaders publish pages on the main loop. Keep save/delete exclusion and release it before notifying observers. Expose the captured-path reader directly, with account and privacy checks at main-loop dispatch and publication, and remove the redundant bridge.
2026-09-04Merge remote-tracking branch 'secondlife/release/26.4' into 26.4Erik Kundiman
2026-08-13Improve ChatService history readabilitypepper
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.
2026-08-13Implement ChatService persistent history stitchingpepper
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.
2026-01-07Address feedback from copilotRye
Signed-off-by: Rye <rye@alchemyviewer.org>
2026-01-07Clean up LLFile and LLFilesystem operations to reduce temporaries ↵Rye
allocations and utf8->utf16 conversions Fix LLFile::tmpdir failing when temp directory is located in a unicode path on windows Add Tracy profiler tagging to LLFile that's disabled by default Replace LLFile::utf8StringToWstring with our fsyspath std::filesystem::path adapter Introduce std::filesystem::path to llifstream/llofstream wrappers Add move operators to fsyspath to match copy operator Restore LLUniqueFile RAII class for direct c file io wrapping and reducing merge conflicts with downstream code that may depend upon it Signed-off-by: Rye <rye@alchemyviewer.org>
2025-10-25Merge tag 'Second_Life_Release#01823996-2025.08' into 2025.08Erik Kundiman
2025-09-10viewer#2172 AM/PM selectorAndrey Kleshchev
2025-08-15Merge tag 'Second_Life_Release#23083286-2025.06' into 2025.06Erik Kundiman
2025-08-11#4420 Fix chat log reading issue with certain charactersMaxim Nikolenko
2025-08-08Merge tag 'Second_Life_Release#55f1c8b9-2025.06' into 2025.06Erik Kundiman
2025-07-29#4385 show agent name next to @ mention url in chat logsMaxim Nikolenko
2025-06-20Fix chat history (with seconds) parsed wrongErik Kundiman
https://megapahit.com/show_bug.cgi?id=163
2025-03-21Merge tag 'Second_Life_Release#895a6739-2025.03' into 2025.03Erik Kundiman
2025-03-05#3051 fix for Group notices get logged into wrong fileMaxim Nikolenko
2024-11-13Fix previous commitErik Kundiman
2024-11-12Add seconds to IM and group chat timestampsErik Kundiman
2024-08-14Enable /permissive- on MSVC for better standards conformance (#2251)Rye Mutt
* Enable /permissive- on MSVC for better C++ conformance and fix related errors * Clean up left over warning suppressions from old library or msvc versions
2024-06-01Re-enable a lot of compiler warnings for MSVC and address the C4267 ↵Ansariel
"possible loss of precision" warnings
2024-05-22Fix line endlingsAnsariel
2024-05-22Merge remote-tracking branch 'origin/main' into DRTVWR-600-maint-AAnsariel
# Conflicts: # autobuild.xml # indra/cmake/CMakeLists.txt # indra/cmake/GoogleMock.cmake # indra/llaudio/llaudioengine_fmodstudio.cpp # indra/llaudio/llaudioengine_fmodstudio.h # indra/llaudio/lllistener_fmodstudio.cpp # indra/llaudio/lllistener_fmodstudio.h # indra/llaudio/llstreamingaudio_fmodstudio.cpp # indra/llaudio/llstreamingaudio_fmodstudio.h # indra/llcharacter/llmultigesture.cpp # indra/llcharacter/llmultigesture.h # indra/llimage/llimage.cpp # indra/llimage/llimagepng.cpp # indra/llimage/llimageworker.cpp # indra/llimage/tests/llimageworker_test.cpp # indra/llmessage/tests/llmockhttpclient.h # indra/llprimitive/llgltfmaterial.h # indra/llrender/llfontfreetype.cpp # indra/llui/llcombobox.cpp # indra/llui/llfolderview.cpp # indra/llui/llfolderviewmodel.h # indra/llui/lllineeditor.cpp # indra/llui/lllineeditor.h # indra/llui/lltextbase.cpp # indra/llui/lltextbase.h # indra/llui/lltexteditor.cpp # indra/llui/lltextvalidate.cpp # indra/llui/lltextvalidate.h # indra/llui/lluictrl.h # indra/llui/llview.cpp # indra/llwindow/llwindowmacosx.cpp # indra/newview/app_settings/settings.xml # indra/newview/llappearancemgr.cpp # indra/newview/llappearancemgr.h # indra/newview/llavatarpropertiesprocessor.cpp # indra/newview/llavatarpropertiesprocessor.h # indra/newview/llbreadcrumbview.cpp # indra/newview/llbreadcrumbview.h # indra/newview/llbreastmotion.cpp # indra/newview/llbreastmotion.h # indra/newview/llconversationmodel.h # indra/newview/lldensityctrl.cpp # indra/newview/lldensityctrl.h # indra/newview/llface.inl # indra/newview/llfloatereditsky.cpp # indra/newview/llfloatereditwater.cpp # indra/newview/llfloateremojipicker.h # indra/newview/llfloaterimsessiontab.cpp # indra/newview/llfloaterprofiletexture.cpp # indra/newview/llfloaterprofiletexture.h # indra/newview/llgesturemgr.cpp # indra/newview/llgesturemgr.h # indra/newview/llimpanel.cpp # indra/newview/llimpanel.h # indra/newview/llinventorybridge.cpp # indra/newview/llinventorybridge.h # indra/newview/llinventoryclipboard.cpp # indra/newview/llinventoryclipboard.h # indra/newview/llinventoryfunctions.cpp # indra/newview/llinventoryfunctions.h # indra/newview/llinventorygallery.cpp # indra/newview/lllistbrowser.cpp # indra/newview/lllistbrowser.h # indra/newview/llpanelobjectinventory.cpp # indra/newview/llpanelprofile.cpp # indra/newview/llpanelprofile.h # indra/newview/llpreviewgesture.cpp # indra/newview/llsavedsettingsglue.cpp # indra/newview/llsavedsettingsglue.h # indra/newview/lltooldraganddrop.cpp # indra/newview/llurllineeditorctrl.cpp # indra/newview/llvectorperfoptions.cpp # indra/newview/llvectorperfoptions.h # indra/newview/llviewerparceloverlay.cpp # indra/newview/llviewertexlayer.cpp # indra/newview/llviewertexturelist.cpp # indra/newview/macmain.h # indra/test/test.cpp
2024-05-01Merge branch 'marchcat/w-whitespace' into marchcat/x-ws-mergeAndrey Lihatskiy
2024-04-29#824 Process source files in bulk: replace tabs with spaces, convert CRLF to ↵Andrey Lihatskiy
LF, and trim trailing whitespaces as needed
2024-04-24Merge branch 'main' into marchcat/a-mergeAndrey Lihatskiy
# Conflicts: # autobuild.xml # indra/llimage/llimage.cpp # indra/llui/llsearcheditor.cpp # indra/llui/llview.cpp # indra/newview/llagent.cpp # indra/newview/llappviewer.cpp # indra/newview/llfloatercamera.cpp # indra/newview/llfloatereditsky.cpp # indra/newview/llfloatereditwater.cpp # indra/newview/llinventoryfunctions.cpp # indra/newview/lloutfitgallery.cpp # indra/newview/lloutfitslist.cpp # indra/newview/llpanelgroupbulkban.cpp # indra/newview/llsidepanelappearance.cpp # indra/newview/llvovolume.cpp
2024-04-24Merge branch 'main' into marchcat/x-mergeAndrey Lihatskiy
2024-02-21Convert remaining BOOL to boolAnsariel
2024-01-09Replace BOOST_FOREACH with standard C++ range-based for-loopsAnsariel
2024-01-08replace boost library to standardAiraYumi
2023-10-25Merge remote-tracking branch 'origin/main' into DRTVWR-559Brad Linden
2023-10-25Merge branch 'main' into DRTVWR-591-maint-XAndrey Lihatskiy
# Conflicts: # indra/newview/llinventorygallery.cpp
2023-10-06SL-20420 Emoji - Increase nearby chat history buffer sizeAlexander Gavriliuk
2023-10-06SL-20420 Emoji - Increase nearby chat history buffer sizeAlexander Gavriliuk
2023-09-25SL-20188 Size of friend list affects time to open Preferences floaterAndrey Kleshchev
Don't check every file when it's enough to know if there are any.
2023-06-02SL-18837: Don't include a version-specific Boost.Regex header.Nat Goodspeed
Let the umbrella <regex.hpp> header make that decision.
2023-02-13SL-18268 - Viewer update to read group chat history.simon
Feature described at https://community.secondlife.com/blogs/entry/12652-coming-soon-to-a-viewer-near-you-group-chat-history/
2021-04-30Merge branch 'master' into DRTVWR-522-maintAndrey Lihatskiy
# Conflicts: # doc/contributions.txt
2021-01-11SL-2202 Add exception handling around boost::regex_match() calls in the viewerMnikolenko Productengine
2020-11-13Merge branch 'master' into DRTVWR-515-maintAndrey Lihatskiy
# Conflicts: # indra/newview/llfloatereditextdaycycle.cpp # indra/newview/llfloaterfixedenvironment.cpp
2020-09-28Merge branch 'master' into DRTVWR-515-maintAndrey Lihatskiy
# Conflicts: # indra/newview/llpanelprimmediacontrols.cpp
2020-09-22Merge branch 'master' into DRTVWR-507-maintAndrey Lihatskiy
# Conflicts: # doc/contributions.txt # indra/newview/llfloaterconversationpreview.cpp # indra/newview/llinventorypanel.h # indra/newview/llmeshrepository.h # indra/newview/llvoicevivox.cpp
2020-08-01SL-12795 Fix existance of multiple chatlog files after name changeAndrey Kleshchev
2020-04-27SL-13018 FIXED Chat Transcripts not showing on right click when encoding of ↵Mnikolenko Productengine
text file is UTF-8 with BOM
2020-03-06SL-12805 FIXED The Group Chat history can't be opened from the conversations ↵maxim_productengine
floater
2019-11-27Upstream merge from viewer-nekoAndreyL ProductEngine
2019-11-12Downstream merge from 494-maint-wassailAndreyL ProductEngine
2019-09-16DRTVWR-493 LLLogChat to singletonandreykproductengine