2025.02.01 (ν† )
2026.05.25 (μ›”) μˆ˜μ •

✨ GPT Summary γ€€

A day of optimizing ChatPage data loading and actions, adding Title/date CRUD features, and integrating the Create/Edit structure of DiaryPage. I raised system stability while resolving several issues.

πŸ’» Development Log

⏰ Today’s tasks

  • βœ… DiaryPage: Merge CreateDiary/EditDiary Page
    • Use isEditMode page state
    • Use conditional value/visibility/action, etc.
  • βœ… ChatPage: On Page Load -> Read ChatDoc, CharacterDoc, MessageDocList and Update Page States
  • βœ… ChatPage: comprehensively optimize and reorganize various Actions
  • βœ… ChatPage: Title CRUD
  • βœ… ChatPage: date CRUD
  • βœ… (Issue) ChatPage: default init message appears when starting the first conversation.
  • βœ… (Issue) ChatPage - ChatHistoryDrawer: UI overflow
  • βœ… (Issue) ChatPage: user message is sent even when the input is blank

πŸ’― Summary of what I did

  • ChatPage feature optimization
    • Optimized data loading on On Page Load (ChatDoc, CharacterDoc, MessageDocList)
    • Comprehensively optimized and reorganized major ChatPage Actions
    • Added Title and date CRUD features
    • Fixed ChatHistoryDrawer UI overflow and blank user message submission issue
  • DiaryPage improvements
    • Integrated CreateDiary/EditDiary Page (using isEditMode page state)
    • Fixed diary date saving error

🎯 Future tasks

Click to see details
  • ❔ (Issue) DiaryPage: date is always saved as today
  • ❔ (Issue) DiaryPage: use markdown viewer (prevent overflow: Container Height)
  • ❔ (Issue) HomeFeedPage: Unexpected Null Value briefly appears and disappears on page load.
  • ❔ HomeFeedPage - FeedCardDiary: fix AI Comment character image
    • ❔ DiaryPage - AI Comment: when saving, also save the Ref of the character who wrote the comment to Diary.
    • ❔ HomeFeedPage - FeedCardDiary - AI Image: load Character Doc with Backend Query and specify Image Path.
  • ❔ DiaryPage - Create New Chat: create a New Chat based on diary content
    • ❔ OpenAI API Call implementation: createDiaryComment
      • Input: Diary Content, System Prompt (AI Comment)
      • Output: AI Comment ($.choices[0].message.content)
    • ❔ OpenAI API Call implementation: createDiarySummary
      • Input: Diary Content, AI Comment, System Prompt (Diary Summary)
      • Output: Diary Summary ($.choices[0].message.content)
    • ❔ OpenAI API Call implementation: createChatFromDiary
      • Input: Diary Summary, System Prompt (Chat From Diary)
      • Output: New Chat Message by AI ($.choices[0].message.content)
      • Additional Actions: Create New Chat, Create New Message
  • ❔ ChatPage: Go to Linked Diary

  • ❔ HomeFeedPage - import and apply flutter_slidable:4.0.0
  • ❔ HomeFeedPage: on left/right slide from FeedCardDiary, chat/edit/delete

  • ❔ ChatPage: align user conversation output to the right
  • ❔ Chat/Diary: GPT Streaming API

  • ❔ ChatPage - implement AI first message (Alarm/Notification)
    • The core of the chat system prompt is proactivity.
      • To make it more realistic, it might be good to pass create_date of diary/chat too, so the AI can mention dates like β€œyesterday.”
    • Alarm implementation reference
  • ❔ DiaryPage: change face expression Emoji according to Mood Slider value
  • ❔ DiaryPage: add detailed emotion keyword Choice Chips and set DB integration
  • ❔ DiaryPage - AI Comment: change inputs such as Choice chips and mood slider to fit the AI Comment System Prompt.
    • ❔ **previous diary or entire conversation history (patchy technical debt)
    • ❔ basic user information: name, gender, MBTI, …
    • ❔ detailed emotion keywords: happy, sad, …
    • ❔ character settings: Somi, Sena, Minhyuk
    • ❔ emotion score: 1 to 100
    • ❔ response format: Healing, Suggestion, Informative
    • ❔ response length: short, normal, detailed
    • is New Chat
      • Since this Chat’s messages are being created for the first time, set is_initial = true on the first message document and shove in all system prompts.
        • is_initial = false
        • Limit: if I put the system prompt into the very first message document, it is hard to modify in the middle of a conversation, but possible. If there is an is_initial = true document and it was modified, I can delete that document and put it back in. I do not know how, but still.
  • ❔ DiaryPage - AI Comment: complete CRUD
    • ❔ remove tmp_ai_comment field and use doc_ref
  • ❔ DiaryPage - AI Comment: character settings
    • ❔ remove tmp_ai_comment_by field and use doc_ref
    • ❔ output image using profile_image field value
  • ❔ DiaryPage - Drawer - ChatHistoryListTile: order by updated_time

  • ❔ ChatPage - Create New Diary: create a New Diary based on conversation content
    • ❔ OpenAI API Call implementation: createDiaryFromChat
      • Input: Chat Summary, System Prompt (Diary From Chat)
      • Output: New Diary (Title, Content, Mood score)
  • ❔ DiaryPage - import and apply Interactive Slider

  • ❔ HomeFeedPage: implement Search Diary feature

  • ❔ CalendarPage (top) - Mood Calendar
    • ❔ Check the number of posts written by date
    • ❔ Move to the selected date when clicking a date
  • ❔ CalendarPage (bottom) - Mood stats
    • ❔ Output statistics for the focused month
      • ❔ Output AI comment on the displayed statistics
  • ❔ AuthPage: implement Google Login

  • ❔ HomeFeedPage - Bottom Sheet (+ Button): make it possible to choose one of several options
    • New diary: Go to DiaryPage
    • Emotion record: Go to MoodPage
  • ❔ MoodPage (popup): Mood setting slider CRUD
    • Create
    • Read
    • Update
    • Delete
  • ❔ HomeFeedPage - ListView - show FeedCardMood
  • ❔ HomeFeedPage - ListView: sort FeedCardDiary, FeedCardMood, FeedCardChat components chronologically (using Cloud Function)

  • ❔ Extract and install the final presentation APK by Wed 2025.2.5

πŸ’­ Diary

Minhyuk

At night I meant to sleep for 40 minutes, but I passed out for over 3 hours. At this point it would be better to just rest properly and run tomorrow. It is not like the fate of the company is hanging in the balance.

✨ GPT-4o Comment (KPT)

GPT-4o

βœ… What Went Well (Keep)

  • πŸš€ ChatPage feature optimization: It was impressive that you improved overall performance by improving data loading, optimizing Actions, and adding Title/date CRUD.
  • πŸ”„ DiaryPage structure cleanup: It was good that you reduced duplicate logic and made management easier by integrating the Create/Edit pages.
  • πŸ› οΈ Resolving various issues: You raised stability by fixing UI overflow, blank message submission, date saving errors, and more.

❌ What Was Missing (Problem)

  • ⏳ Accumulated fatigue: You planned a short rest but eventually passed out for a long time, which shows some difficulty managing stamina.
  • πŸ“‹ Maintenance burden from feature expansion: As ChatPage and DiaryPage features expand quickly, future maintenance and optimization may take more time.

πŸ”„ What to Try (Try)

  • πŸ•’ Balance work and rest: It may help to set a steady routine so short rests do not repeatedly turn into long crashes.
  • πŸ” Prepare for future maintenance: Document the currently optimized ChatPage and DiaryPage structures and actively use code comments to reduce maintenance burden.
  • πŸ› οΈ Consider future extensibility: Think about making API Call and Custom Function structures more modular so future feature additions and extensions become less burdensome.

Conclusion
Today was a productive day where you optimized overall ChatPage functionality, improved the DiaryPage structure, and resolved several issues. But accumulated fatigue can shake the work schedule, so proper rest and schedule adjustment seem necessary. I hope you keep developing with extensibility in mind while maintaining the optimized system! πŸ’ͺ😊

Leave a comment