Skip to content

feat(context): always-warm registry — auto re-scan when stale vs git HEAD #237

Description

@Wolfvin

Mengapa

Ditemukan saat brainstorming "dream tool" untuk eksplorasi repo cepat: agent (dan BOS) harus mengingat sendiri kapan harus scan --incremental. history --check git-status SUDAH menghitung apakah registry stale vs HEAD dan sudah punya field "re-scan recommendation" — tapi itu cuma rekomendasi pasif, tidak ada command lain yang otomatis bertindak atasnya. Hasilnya: query bisa diam-diam menjawab dari graph basi tanpa peringatan di titik query itu sendiri.

Konteks

git_aware.py sudah punya infrastruktur diff-based staleness detection (dipakai scan --incremental dan history --check git-status). Yang belum ada: titik query manapun (search/context/audit/dll) TIDAK mengecek staleness ini sebelum menjawab.

Tujuan

Setiap command analisis (bukan hanya history) menyertakan sinyal staleness di response-nya kalau registry lebih dari N commit/file di belakang HEAD — dan idealnya auto-trigger incremental re-scan sebelum menjawab kalau staleness melewati threshold kecil (mis. <20 file berubah = auto-rescan senyap; lebih dari itu = warning saja, jangan blok).

Constraint

  • JANGAN bikin daemon/background-watcher baru — itu scope terpisah jauh lebih besar. Manfaatkan git_aware.py yang sudah ada.
  • Auto-rescan HANYA untuk kasus kecil (di bawah threshold yang bisa dikonfigurasi) — kalau banyak file berubah, cukup kasih warning di response, jangan bikin setiap query jadi lambat karena rescan besar tanpa consent.
  • Threshold harus bisa di-override via flag (mis. --no-auto-rescan).

Definition of Done

  • Field _staleness (atau serupa) muncul di response semua command analisis kalau registry stale vs HEAD
  • Auto-rescan senyap untuk staleness kecil (default threshold masuk akal, terdokumentasi)
  • Test: registry stale 3 file → auto-rescan terjadi, hasil query reflect state terbaru
  • Test: registry stale 500 file → TIDAK auto-rescan, cuma warning di response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions