Chat bubbles: render markdown (bold/italic/tables/syntax-highlighted code) for agent + user messages; tap-to-copy inline code with flash, code-block copy button; preserve user newlines; removed stale HANDOFF doc

This commit is contained in:
ARIA committed 2026-08-20 23:29:43 +02:00
1 parent a8920d8d26
commit f8effb4152
6 files changed
+330 -177

No files matched your search

@@ -0,0 +1,42 @@
package iris.util
import kotlin.test.Test
import kotlin.test.assertEquals
class MarkdownTest {
@Test
fun stripsLeadingNewlines() {
assertEquals("Hello", "\n\nHello".prepareForMarkdown())
assertEquals("Hello", "\nHello".prepareForMarkdown())
assertEquals("Hello", "\r\n\r\nHello".prepareForMarkdown())
}
@Test
fun stripsLeadingBlankLines() {
assertEquals("Hello", "\n \n\t\nHello".prepareForMarkdown())
assertEquals("a\nb", "\n\na\nb".prepareForMarkdown())
}
@Test
fun preservesLeadingIndentationOnFirstLine() {
// An indented code block at the very start must still parse as code.
assertEquals(" code", "\n\n code".prepareForMarkdown())
}
@Test
fun leavesInteriorWhitespaceUntouched() {
val md = "Line one\n\nLine two\n\n- item"
assertEquals(md, md.prepareForMarkdown())
}
@Test
fun noLeadingNewlinesIsUnchanged() {
assertEquals("Hello world", "Hello world".prepareForMarkdown())
}
@Test
fun allBlankBecomesEmpty() {
assertEquals("", "\n\n \n".prepareForMarkdown())
}
}