<feed xmlns='http://www.w3.org/2005/Atom'>
<title>viewer.git/indra/newview/llimview.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>Share stitched history loading between IM sessions and Preview</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:13:35Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=2668047ea5fc8c6a271621510db8eb25a2b24502'/>
<id>urn:sha1:2668047ea5fc8c6a271621510db8eb25a2b24502</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Reconcile live IMs recorded shortly after delivery</title>
<updated>2026-09-16T16:08:40Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-16T16:08:40Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=c9cb3694cce949e7ab4638200646e91814c1cc7b'/>
<id>urn:sha1:c9cb3694cce949e7ab4638200646e91814c1cc7b</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Share the ChatService quiet timer across incoming and outgoing IMs</title>
<updated>2026-09-11T02:52:29Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-11T02:52:29Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=3c9dee368d667beda045bf6d759f0658f80312eb'/>
<id>urn:sha1:3c9dee368d667beda045bf6d759f0658f80312eb</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Consolidate ChatService reconciliation and fix live IM replay</title>
<updated>2026-09-10T21:22:48Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-09-10T16:58:32Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=fe57d2caf1949abcdb54a35cb610b0eb9d783fd1'/>
<id>urn:sha1:fe57d2caf1949abcdb54a35cb610b0eb9d783fd1</id>
<content type='text'>
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.
</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>Avoid redundant IM transcript reconstruction</title>
<updated>2026-08-31T18:04:52Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-08-31T18:04:52Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=cae8a81d8f0e0fd3a74ff5afbc79048701c86ebd'/>
<id>urn:sha1:cae8a81d8f0e0fd3a74ff5afbc79048701c86ebd</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Merge branch 'project/lua_editor' into pepper/pchat-revamp</title>
<updated>2026-08-14T23:08:11Z</updated>
<author>
<name>Jonathan "Geenz" Goodman</name>
<email>geenz@geenzo.com</email>
</author>
<published>2026-08-14T23:08:11Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=66ff4c75bc2d594a41dfe22d85139311567b8e97'/>
<id>urn:sha1:66ff4c75bc2d594a41dfe22d85139311567b8e97</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refresh ChatService history after outbound bursts</title>
<updated>2026-08-14T17:37:34Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-08-14T02:33:09Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=0a32098d4a603bc2a25fc68bbeaa1e980f0c1fe1'/>
<id>urn:sha1:0a32098d4a603bc2a25fc68bbeaa1e980f0c1fe1</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Reconcile stitched history with live messages</title>
<updated>2026-08-14T00:42:21Z</updated>
<author>
<name>pepper</name>
<email>3782201+rohvani@users.noreply.github.com</email>
</author>
<published>2026-08-14T00:42:21Z</published>
<link rel='alternate' type='text/html' href='https://megapahit.org/viewer.git/commit/?id=ae176d7e2aa309435d2f7cb6363b51132c205a50'/>
<id>urn:sha1:ae176d7e2aa309435d2f7cb6363b51132c205a50</id>
<content type='text'>
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.
</content>
</entry>
</feed>
