# Execution Log: Task 1 - Foundation

**Tanggal Eksekusi:** Rabu, 6 Mei 2026
**Fase:** Foundation (Research Policy & History Setup)

## Aktivitas yang Dilakukan

1. **Pembuatan Direktori:**
   - Direktori `app/services/chatbot` berhasil dibuat menggunakan perintah shell `mkdir -p`.

2. **Define Research Policy (Task 1A):**
   - Membuat file `app/services/chatbot/__init__.py` untuk mendefinisikan modul.
   - Membuat file `app/services/chatbot/research_policy.py`.
   - Mengimplementasikan class `ResearchPolicy` yang mendefinisikan persona AI, aturan ketat *groundedness*, format sitasi *inline*, dan instruksi resolusi konflik menggunakan tipe data terstruktur dari `pydantic`. Ini menggantikan konsep "Master Prompt" yang ambigu.

3. **History Setup (Task 1B & 1C):**
   - Membuat skrip SQL `scripts/setup_chat_history.sql` untuk membuat tabel `chat_messages` di Supabase. Skrip ini disiapkan untuk dieksekusi secara manual oleh developer di Supabase SQL Editor.
   - Membuat file `app/services/chatbot/chat_history.py`.
   - Mengimplementasikan class `ChatHistoryManager` dengan metode `save_message` dan `get_history`. 
   - Metode `get_history` menerapkan mekanisme *sliding window* dengan membatasi jumlah percakapan yang diambil (default: 5 pasang pesan terakhir) dan memastikannya dikembalikan dalam urutan kronologis yang benar.

## Status Task
- [x] Task 1A: Define Research Policy
- [x] Task 1B: Create Supabase Table (SQL script ready)
- [x] Task 1C: History Logic

## Keputusan & Asumsi
- Penggunaan library `google-genai` direkomendasikan untuk konsistensi.
- Koneksi PostgreSQL untuk history chat dikonfigurasi menggunakan variabel environment `DIRECT_URL` atau `DATABASE_URL`.

**Selanjutnya:** Menunggu validasi sebelum melanjutkan ke Task 2 (Retrieval).
