<feed xmlns='http://www.w3.org/2005/Atom'>
<title>viewer.git/indra/newview/llchatservicehistory.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-09-23T19:24:08Z</updated>
<entry>
<title>Use captured account paths for archive filenames</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:33:00Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=d989bfe5d6f29c7c5b45bcb12cf833d176b560a7'/>
<id>urn:sha1:d989bfe5d6f29c7c5b45bcb12cf833d176b560a7</id>
<content type='text'>
Use the trailing separator supplied by LLDir for an expanded directory
with an empty filename. Remove the custom path joiner, duplicate delimiter
state and delimiter parameters passed through workers.

Workers retain their captured account prefix. Native filesystem checks
cover archive, index and cutoff operations under a Unicode directory.
</content>
</entry>
<entry>
<title>Derive conversation identity from validated participants</title>
<updated>2026-09-23T19:24:07Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-21T21:31:12Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=40a7b0866c55196cd1e0dced29c83a3cb0301c1d'/>
<id>urn:sha1:40a7b0866c55196cd1e0dced29c83a3cb0301c1d</id>
<content type='text'>
Derive direct conversation IDs from the account and resident at request
and validation time. Remove their duplicate storage and the validator's
redundant conversation-ID argument.

Remove the first-list flag because empty coverage already schedules first
discovery. Retain strict list/page identity checks and add an assertion
rejecting another conversation's response.
</content>
</entry>
<entry>
<title>Honor the file removal return contract</title>
<updated>2026-09-23T19:24:07Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-21T21:30:17Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=6c8205c204c64edb4ab83fe1d70506cebe1236f6'/>
<id>urn:sha1:6c8205c204c64edb4ab83fe1d70506cebe1236f6</id>
<content type='text'>
Use LLFile::remove's return value as the authoritative result. The current
implementation reports absence as success and errors through
std::error_code without assigning errno; a stale ENOENT must not hide a
real cleanup failure.

Remove repeated removals and post-removal inspections under the storage
lock. Native checks confirm that failed cleanup stays pending regardless
of ambient errno and that a sweep still attempts the remaining targets.
</content>
</entry>
<entry>
<title>Capture manifest archives and names in one snapshot</title>
<updated>2026-09-23T19:24:07Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-21T21:29:23Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=a5271dff03e20aad042ceb0ed9a448605f06fbea'/>
<id>urn:sha1:a5271dff03e20aad042ceb0ed9a448605f06fbea</id>
<content type='text'>
Capture each valid archive with its optional resolved name in one map.
Remove the separate ID/name snapshots, their join and the intermediate
archive collection.

Preserve sorted output, CSV escaping, explicit pending-name labels,
missing-file omission and unsafe-path failure handling.
</content>
</entry>
<entry>
<title>Retain archive scan results as resident storage state</title>
<updated>2026-09-23T19:24:06Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-21T21:28:30Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=ca431e6a03cc5c1206f3f6249add23dd7a4fce49'/>
<id>urn:sha1:ca431e6a03cc5c1206f3f6249add23dd7a4fce49</id>
<content type='text'>
Use ArchiveScan directly for resident archive validity, bounds and file
identity. Remove the duplicate summary enum, structure, converter and
file-existence flag.

Keep the retained scan result coherent after publication by advancing its
bounds, row count, valid prefix and physical stamp. Native checks cover
repair, quarantine, replacement, append and external file changes.
</content>
</entry>
<entry>
<title>Share file publication and truncate torn archive tails</title>
<updated>2026-09-23T19:24:06Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-21T21:26:42Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=a554973fbca928f79fbe2c67ec0621730de0f291'/>
<id>urn:sha1:a554973fbca928f79fbe2c67ec0621730de0f291</id>
<content type='text'>
Use shared write, flush and atomic-replacement helpers for privacy-state
publication and recovery. Preserve durable pending-before-sweep and
sweep-before-completion ordering.

Repair a classified torn tail with filesystem truncation after validating
the file stamp under the storage lock, then rescan. Remove the full-prefix
copy while preserving valid accumulated rows; failed repair stays
unpublished.
</content>
</entry>
<entry>
<title>Centralize manager cancellation at asynchronous waits</title>
<updated>2026-09-23T19:24:05Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-21T21:25:49Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=972ad1bf0bbba6836688023069a83ca8ca3827ff'/>
<id>urn:sha1:972ad1bf0bbba6836688023069a83ca8ca3827ff</id>
<content type='text'>
Defer presentation through the existing non-yielding idle registration.
Check the account epoch after HTTP, worker and timer waits, and terminate
obsolete manager coroutines through LLCoros::Stopped.

Use one scope exit to retire a resident pass, removing repeated lookups,
cancellation branches and cleanup. Run the captured legacy and service
deletion sweeps in one worker job while still awaiting main-loop view
invalidation first.

Checked cancellation, retry, priority and publication outcomes with the
scheduler regressions and the Release viewer build.
</content>
</entry>
<entry>
<title>Discover archives and owned remnants in one directory scan</title>
<updated>2026-09-23T19:24:05Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-21T21:24:55Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=6de10b0368db189e5754f274d948c82a9d95fe57'/>
<id>urn:sha1:6de10b0368db189e5754f274d948c82a9d95fe57</id>
<content type='text'>
Collect canonical archive IDs and leftover owned content during one
startup walk. Use the resident map for ordering and uniqueness, removing
the separate content scan, sort and duplicate elimination.
</content>
</entry>
<entry>
<title>Reuse the shared Chat Service eligibility gate</title>
<updated>2026-09-23T19:24:05Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-21T21:24:02Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=cec406c74f3d69f26baaedb41e957e655b5c7feb'/>
<id>urn:sha1:cec406c74f3d69f26baaedb41e957e655b5c7feb</id>
<content type='text'>
Apply the existing service presentation policy to snapshots, scheduling
and activity deadlines. Remove repeated consent, privacy and rollout
expressions from those callers.

Remove adjacent account checks with no intervening suspension while
retaining checks around asynchronous boundaries.
</content>
</entry>
<entry>
<title>Share archive publication invalidation on success and failure</title>
<updated>2026-09-23T19:24:04Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-21T21:23:08Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=72f9544e8803d5e44e2e378bd532551ea568187c'/>
<id>urn:sha1:72f9544e8803d5e44e2e378bd532551ea568187c</id>
<content type='text'>
Invalidate readers and the manifest after either successful publication
or a write that may have changed canonical bytes. Share transcript
notification and remove the separate publication-failed latch.

Failed writes still require a fresh scan, clear coverage and retain retry
state. Only successful or empty complete passes claim coverage.
</content>
</entry>
</feed>
