Improve TUI timestamp consistency and formatting

This commit is contained in:
William Valentin
2026-02-21 09:25:14 -08:00
parent e582132ba8
commit c6731c8e20
3 changed files with 39 additions and 21 deletions
+14 -3
View File
@@ -78,10 +78,19 @@ export function App({
onTransfer,
onExit,
}: AppProps): React.ReactElement {
const ensureTimestamp = useCallback((message: Message): Message => ({
...message,
timestamp: message.timestamp ?? Date.now(),
}), []);
const ensureTimestamps = useCallback((history: Message[]): Message[] => (
history.map(ensureTimestamp)
), [ensureTimestamp]);
const ctrlCExitWindowMs = 1_500;
const { exit } = useApp();
const [input, setInput] = useState('');
const [messages, setMessages] = useState<Message[]>(session.getHistory());
const [messages, setMessages] = useState<Message[]>(ensureTimestamps(session.getHistory()));
const [isStreaming, setIsStreaming] = useState(false);
const [streamingContent, setStreamingContent] = useState('');
const [scrollOffset, setScrollOffset] = useState(0);
@@ -682,7 +691,7 @@ export function App({
const messageWithTimestamp = session.addMessage(userMessage);
setMessages(prev => [...prev, messageWithTimestamp]);
} else {
setMessages(prev => [...prev, { ...userMessage, timestamp: Date.now() }]);
setMessages(prev => [...prev, ensureTimestamp(userMessage)]);
}
setScrollOffset(0);
@@ -696,7 +705,7 @@ export function App({
await agent.process(command.content);
const usage = agent.getUsage();
setTokenUsage({ inputTokens: usage.inputTokens, outputTokens: usage.outputTokens });
setMessages(session.getHistory());
setMessages(ensureTimestamps(session.getHistory()));
} else if (modelClient.chatStream) {
let fullContent = '';
@@ -757,6 +766,8 @@ export function App({
exit,
onExit,
isStreaming,
ensureTimestamp,
ensureTimestamps,
messages.length,
tokenUsage.inputTokens,
tokenUsage.outputTokens,