diff --git a/agentydragon/tasks/22-message-rendering-layout-options.md b/agentydragon/tasks/22-message-rendering-layout-options.md new file mode 100644 index 0000000000..2b2edc3439 --- /dev/null +++ b/agentydragon/tasks/22-message-rendering-layout-options.md @@ -0,0 +1,33 @@ +--- +id: 22 +title: Message Separation and Sender-Content Layout Options +status: Not started # one of: Not started, Started, Needs manual review, Done, Cancelled +summary: Add configurable options for inter-message spacing and sender-content line breaks in chat rendering. +goal: | + Provide users with flexibility in how chat messages are visually separated and how sender labels are displayed relative to message content: + - Control whether an empty line is inserted between consecutive messages. + - Control whether sender and content appear on the same line or on separate lines. + +## Acceptance Criteria + +- Introduce two new config flags under the UI section: + - `message_spacing: true|false` controls inserting a blank line between messages when true. + - `sender_break_line: true|false` controls breaking line after the sender label when true. +- Both flags default to `false` to preserve current compact layout. +- When `message_spacing` is enabled, render an empty line between each message bubble or block. +- When `sender_break_line` is enabled, render the sender label on its own line above the message content; otherwise render `Sender: Content` on a single line. +- Ensure both flags can be toggled independently and work together in any combination. +- Add unit tests to verify the four layout permutations produce the correct sequence of lines. + +## Implementation + +**How it was implemented** +- Extend the chat UI renderer to read `message_spacing` and `sender_break_line` from config. +- In the message rendering routine, after emitting each message block, conditionally insert a blank line if `message_spacing` is true. +- When rendering a message header, split layout based on `sender_break_line`: emit sender label and content either together or in two lines. +- Write unit tests for all combinations of `(message_spacing, sender_break_line)` covering single-line messages, multi-line content, and boundaries. + +## Notes + +- These options improve readability for users who prefer more visual separation or clearer sender labels. +- Keep default settings unchanged to avoid surprising existing users.