- Full conversation history display when resuming sessions
- Replay mode with configurable speed to simulate live playback
- Consistent labeling: "You:" and "Amplifier:" in both live and resumed sessions
- Unified banner with session metadata at the top
- Content-aware replay timing when timestamps are missing
- Streamlined UX with no redundant separators
- NEW:
amplifier_app_cli/ui/message_renderer.py- Single source of truth for message display - MODIFIED:
amplifier_app_cli/main.py- Uses shared renderer, echoes user input with label - MODIFIED:
amplifier_app_cli/commands/session.py- History/replay functions with integrated banner - MODIFIED:
amplifier_app_cli/ui/__init__.py- Exports render_message
Purpose: Verify "You:" and "Amplifier:" labels appear in live chat
# Start interactive session (requires actual TTY, not piped)
amplifier run --bundle dev --mode chat
# Type a question
What is the capital of Germany?
# Observe:
# - Should see "You: What is the capital of Germany?"
# - Should see "Amplifier:" prefix before response
# - Response should be markdown formatted
# Exit
Ctrl-DExpected: Both user and assistant messages have labels, consistent formatting.
Purpose: Create a test session for history testing
echo "What is 10 * 10?" | amplifier run --bundle devExpected: Session created, response displayed, session ID shown.
Purpose: Verify full history renders with new banner
amplifier continue
# Or
amplifier session resume <session-id>
# Observe:
# - Banner at TOP with session info (ID, time ago, bundle, model)
# - Complete conversation history below banner
# - "You:" and "Amplifier:" labels on all messages
# - No redundant separator after history
# - Smooth flow into prompt
Ctrl-D # ExitExpected: Seamless experience, banner first, history flows naturally.
Purpose: Verify --no-history flag works
amplifier continue --no-history
# Observe:
# - No banner
# - No history
# - Goes straight to promptExpected: Fast resume, no display (like original behavior).
Purpose: Verify replay with timing simulation
amplifier continue --replay
# Observe:
# - Banner shows "Replaying at 2.0x"
# - Messages appear with brief pauses between them
# - Pauses proportional to message length (content-based timing)
# - Flows into prompt after replay completeExpected: Messages display with delays, smoother than instant but faster than real-time.
Purpose: Verify speed control works
# Slow motion (half speed)
amplifier continue --replay --replay-speed=0.5
# Real-time
amplifier continue --replay --replay-speed=1.0
# Fast (5x speed)
amplifier continue --replay --replay-speed=5.0
# Very fast (10x speed)
amplifier continue --replay --replay-speed=10.0Expected: Different pause durations between messages based on speed multiplier.
Purpose: Verify Ctrl-C skips to end
amplifier continue --replay --replay-speed=0.5
# During replay, press Ctrl-C
# Observe:
# - Shows "⚡ Skipped to end"
# - Remaining messages display instantly
# - Prompt appearsExpected: Clean interruption, no crash, remaining messages shown.
Purpose: Create and replay a longer conversation
# Create multi-turn session (interactive mode - requires TTY)
amplifier run --bundle dev --mode chat
# Have a conversation:
What is the capital of France?
What is the capital of Germany?
List the capitals of Italy and Spain
exit
# Replay it
amplifier continue --replay
# Or with speed control
amplifier continue --replay --replay-speed=5.0Expected: All exchanges display in order with appropriate timing.
Purpose: Verify session resume by ID works
# List sessions
amplifier session list
# Pick a session ID from the list
amplifier session resume <full-session-id> --replayExpected: Specified session replays correctly.
- ✅ "You:" label when user types message
- ✅ "Amplifier:" label for responses
- ✅ Markdown formatting in responses
- ✅ Tool calls displayed by hooks-streaming-ui (cyan boxes)
- ✅ Standard banner at session start
- ✅ Banner at TOP with session metadata
- ✅ Complete conversation history
- ✅ "You:" and "Amplifier:" labels
- ✅ Markdown formatting preserved
- ✅ No redundant separators
- ✅ Smooth transition to prompt
- ❌ Thinking blocks NOT shown (see KNOWN_LIMITATIONS.md)
- ❌ Tool calls NOT shown (see KNOWN_LIMITATIONS.md)
- ✅ Banner shows replay speed
- ✅ Messages display with timing delays
- ✅ Content-based timing when timestamps missing
- ✅ Ctrl-C interruption works
- ✅ Speed control via --replay-speed flag
- ❌ Thinking blocks NOT shown (see KNOWN_LIMITATIONS.md)
- ❌ Tool calls NOT shown (see KNOWN_LIMITATIONS.md)
Status: Documented in KNOWN_LIMITATIONS.md
Impact: History replay doesn't show the complete execution flow that users saw during live chat.
Workaround: Review events.jsonl for complete execution log.
Future Work: Requires architectural changes to preserve structured content through the save/load cycle.
Status: Terminal limitation
Impact: Piped input doesn't work well with interactive prompt_toolkit
Workaround: Use single-shot mode (amplifier run "prompt") instead of chat mode with piped input.
Tested configurations:
- ✅ Sessions with 2-6 messages: Instant history display
- ✅ Replay at 0.5x, 1x, 2x, 5x, 10x speeds: All work smoothly
- ✅ Content-based timing: Reasonable delays for messages of varying lengths
Not yet tested:
- Very long sessions (100+ messages)
- Sessions with large tool outputs
- Sessions with many rapid exchanges
All message rendering goes through ui/message_renderer.py:
render_message()function used by live chat, history, and replay- Change formatting once, propagates everywhere
- Zero duplication between display modes
ui/message_renderer.py(NEW) - 80 linesui/__init__.py(MODIFIED) - Export render_messagemain.py(MODIFIED) - Use shared renderer, echo user inputcommands/session.py(MODIFIED) - History/replay with integrated banner
Total: ~200 lines of new code, zero duplication
# Resume with full history (default)
amplifier continue
# Resume without history
amplifier continue --no-history
# Replay at 2x speed (default)
amplifier continue --replay
# Replay at custom speed
amplifier continue --replay --replay-speed=5.0
# Show thinking blocks (if available in content)
amplifier continue --show-thinking
# All flags work with session resume too
amplifier session resume <id> --replay --replay-speed=10.0- Live chat shows "You:" labels
- Live chat shows "Amplifier:" labels
- History display shows banner at top
- History shows complete conversation
- History has no redundant separator
- Replay mode works with timing
- Replay speed control works
- Ctrl-C interruption works
- --no-history flag works
- All checks pass (
make check)