Todo:
- Show loading indicator when GPT is responding
- system message giving bot basic instructions about its tone
- refocus form when response is complete
- add date to Message component
- handle scrolling, make sure we stay scrolled to the bottom
- are there line breaks in the responses?
- persist chats / use auth. use AI to generate a summary
- instruct the GPT to mark parts of the text that should be treated as monospaced, then handle that on the frontend (e.g. draw me a table of data) --> Maybe just use markdown?
- while the bot is typing, show a cursor at the end
- color the agent and user names differently
- abstract away some of the gross logic for mediating the stream to a useChat hook or something
- add a summary, change it whenever 10 messages have passed since the last time
- add boot.ts guards
- could Message persistence be moved server side, during /_/endpoints/chat invocation?
- avatars for bot and user
- idea: Nokkio helper for StreamingResponse, that provided a callback to stream in chunks
- make scrolling elastic-y
- detect image queries and redirect to dall-e - would need to add an optional image field to Message