<feed xmlns='http://www.w3.org/2005/Atom'>
<title>viewer.git/indra/newview/lllogchat.cpp, branch 26.5</title>
<subtitle>Megapahit's fork of the Second Life viewer.
</subtitle>
<id>https://megapahit.org/viewer.git/atom?h=26.5</id>
<link rel='self' href='https://megapahit.org/viewer.git/atom?h=26.5'/>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/'/>
<updated>2026-10-10T05:02:06Z</updated>
<entry>
<title>Merge tag 'Second_Life_Release#db59a05a-26.5' into 26.5</title>
<updated>2026-10-10T05:02:06Z</updated>
<author>
<name>Erik Kundiman</name>
<email>erik@megapahit.org</email>
</author>
<published>2026-10-10T05:02:06Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=7a75f495974c2d6a6be66614fbc526fa666279b5'/>
<id>urn:sha1:7a75f495974c2d6a6be66614fbc526fa666279b5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use portable file ownership for transcript reads</title>
<updated>2026-09-24T14:20:04Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-24T14:20:04Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=4c681666468f25fa263be05ae73ebd27205ebaa4'/>
<id>urn:sha1:4c681666468f25fa263be05ae73ebd27205ebaa4</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Share the exact-path transcript reader</title>
<updated>2026-09-23T19:24:08Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-21T21:32:06Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=87c1649d2395cc8bb72e890d9f93582266c06f7d'/>
<id>urn:sha1:87c1649d2395cc8bb72e890d9f93582266c06f7d</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Centralize history availability in the transcript query</title>
<updated>2026-09-23T19:24:03Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-21T21:20:34Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=8248b904d4962050b00620fa81e09ec85194b4c8'/>
<id>urn:sha1:8248b904d4962050b00620fa81e09ec85194b4c8</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Simplify transcript worker ownership and publication boundaries</title>
<updated>2026-09-23T19:24:01Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-21T21:15:04Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=e48a615aa0ff9848ce45caef8974313d92a05b2e'/>
<id>urn:sha1:e48a615aa0ff9848ce45caef8974313d92a05b2e</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'secondlife/release/26.4' into 26.4</title>
<updated>2026-09-04T13:58:53Z</updated>
<author>
<name>Erik Kundiman</name>
<email>erik@megapahit.org</email>
</author>
<published>2026-09-01T10:35:23Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=00bb3bb6f07660bd914d29a1389342bb3060d254'/>
<id>urn:sha1:00bb3bb6f07660bd914d29a1389342bb3060d254</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improve ChatService history readability</title>
<updated>2026-08-13T17:54:17Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-08-13T17:40:10Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=e3c57f57c7585c1cf99d4b86fd70b06b1ce2b58d'/>
<id>urn:sha1:e3c57f57c7585c1cf99d4b86fd70b06b1ce2b58d</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Implement ChatService persistent history stitching</title>
<updated>2026-08-13T16:17:40Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-08-12T01:02:47Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=473d6c2558c72a8dbbcf591e387c080baf2f531a'/>
<id>urn:sha1:473d6c2558c72a8dbbcf591e387c080baf2f531a</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Address feedback from copilot</title>
<updated>2026-01-07T00:15:43Z</updated>
<author>
<name>Rye</name>
<email>rye@alchemyviewer.org</email>
</author>
<published>2026-01-05T20:01:23Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=9873abfb94f0d9cbc6df60fef9df622ef51355ec'/>
<id>urn:sha1:9873abfb94f0d9cbc6df60fef9df622ef51355ec</id>
<content type='text'>
Signed-off-by: Rye &lt;rye@alchemyviewer.org&gt;
</content>
</entry>
<entry>
<title>Clean up LLFile and LLFilesystem operations to reduce temporaries allocations and utf8-&gt;utf16 conversions</title>
<updated>2026-01-07T00:15:43Z</updated>
<author>
<name>Rye</name>
<email>rye@alchemyviewer.org</email>
</author>
<published>2025-12-30T16:39:16Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=25dc8660efedecfd9f021142ac1e4ff3639e80d4'/>
<id>urn:sha1:25dc8660efedecfd9f021142ac1e4ff3639e80d4</id>
<content type='text'>
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 &lt;rye@alchemyviewer.org&gt;
</content>
</entry>
</feed>
