Lanjut ke konten
Samkarsa Logbook

Blonjo v1.5.0-011: Resilient Suggestion & Action Tag Parser with Auto-Closer

Pencegahan kebocoran tag komentar HTML SUGGESTIONS & ACTIONS ke gelembung pesan chat melalui parser toleran unclosed tag di frontend dan auto-closer di backend validator.

1mnt baca

Pembaruan ini memperbaiki kendala tampilan di mana tag komentar internal <!-- SUGGESTIONS --> beserta daftar pertanyaan lanjutan sempat bocor dan ter-render sebagai teks biasa di dalam gelembung pesan obrolan pengguna.

  • Tag Tidak Tertutup (Unclosed Tag): Model AI terkadang mencetak tag pembuka <!-- SUGGESTIONS --> dan butir pertanyaan, tetapi langsung mengakhiri respon tanpa mencetak tag penutup <!-- /SUGGESTIONS -->.
  • Regex Kaku di Frontend: Parser extractSuggestions di VibesChat.tsx mewajibkan adanya penutup <!-- /SUGGESTIONS -->. Ketika penutup tidak ditemukan, regex mengembalikan null, menyebabkan seluruh blok komentar dan teks pertanyaan bocor ke teks gelembung chat bukannya dialihkan ke chip interaktif.

  1. Resilient Parser di Frontend (VibesChat.tsx):

    • Memperbarui regex extractSuggestions dan extractActions agar toleran terhadap tag penutup maupun kondisi unclosed hingga akhir pesan ($):
      const match = /<!--\s*SUGGESTIONS\s*-->([\s\S]*?)(?:<!--\s*\/?SUGGESTIONS\s*-->|$)/i.exec(content);
    • Menambahkan pembersihan fallback untuk memastikan tag <!-- ... --> tidak pernah tampil ke antarmuka pengguna.
    • Menjamin butir pertanyaan selalu berhasil diekstrak dan tampil sebagai Suggestion Chips interaktif di bawah pesan.
  2. Backend Auto-Closer (responseValidator.ts):

    • Menambahkan logika pemeriksa di responseValidator.ts: jika LLM menghasilkan tag pembuka <!-- SUGGESTIONS --> atau <!-- ACTIONS --> tanpa tag penutup, sistem backend secara otomatis menambahkan penutup yang valid sebelum dikirim ke UI.

  • Tag komentar <!-- SUGGESTIONS --> dan <!-- ACTIONS --> kini 100% bersih dan tidak pernah bocor ke gelembung obrolan.
  • Komponen Suggestion Chips selalu ter-render dengan rapi dan interaktif di bawah jawaban asisten.