Fix three more merge defects the compile found
ci / secret-sweep (pull_request) Successful in 13s
ci / image (pull_request) Successful in 9s
ci / vectors-head (pull_request) Successful in 4m55s
ci / unit-tests (pull_request) Failing after 8m17s

Session.kt declared `arrived` twice, once per side. Main's filter is the one
to keep: its own comment records that filtering on `isRenderable` here made
the reaction, edit and pin branches unreachable, so everything that arrived
was decrypted and then dropped. The release branch's declaration is gone and
the loop uses the broader list, which is what main's fix intended.

StoryFrame.kt was extracted from StoriesScreens and localized in the same
move, so it calls `stringResource(R.string.social_story_image_desc)` without
importing either name. Both imports added. The key is in values and values-es
already; parity is 860 keys per language.

SilentKindsTest pinned "bridge offer" to `Content.bridgeOffer(...)`, which
returned String on the release branch and String? on main, where a blank or
over-long line is refused (§24.4). That typed the whole map String? and the
two assertions stopped compiling. The test line is neither blank nor long, so
it is unwrapped at the fixture.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Paul Hitt
2026-10-14 10:37:34 -04:00
co-authored by Claude Opus 5
parent d1ddbba3de
commit 52b291ffb2
3 changed files with 8 additions and 2 deletions
@@ -2393,7 +2393,9 @@ class Session(
}
}
val arrived = everything.filter { it.content.isRenderable }
// `arrived` is declared once, above, and deliberately NOT filtered on
// `isRenderable`: see the note there. The loop below files only
// renderable content as a message.
val now = DeviceClock.expirySeconds()
val incomingStories = mutableListOf<Vault.Story>()
@@ -17,6 +17,8 @@ import androidx.compose.ui.graphics.ImageBitmap
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.res.stringResource
import io.flamenet.messenger.R
/**
* How a story's photo sits in its feed card (DESIGN item 27): all of it,
@@ -71,7 +71,9 @@ class SilentKindsTest {
"off the record" to Content.offTheRecord(true),
"off the record, echoed" to Content.offTheRecord(true, echo = true),
"screenshot notice" to Content.screenshot(1),
"bridge offer" to Content.bridgeOffer("bridge line"),
// `bridgeOffer` is nullable since main refused a blank or
// over-long line (§24.4). This line is neither.
"bridge offer" to Content.bridgeOffer("bridge line")!!,
"delivery key" to SealedSender.deliveryKeyEnvelope(ByteArray(32)),
"group delivery key" to SealedSender.deliveryKeyEnvelope(ByteArray(32), groupId = "g-1", groupName = "Saturday"),
)