Commit Graph
6 Commits
Author SHA1 Message Date
proitlab eb4f941b37 T13: klamp last_vote heuristik ke waktu scan (⊥ di masa depan)
Unstake tanpa revote membuat rasio bobot/stake membesar → estimasi
last_vote melewati now. normalize() kini mengklamp ke now; voters.db
dikembalikan (27 baris, MAX(last_vote) ≤ MAX(scanned_at)). Oracle lolos.
2026-08-05 10:21:45 +07:00
proitlab 41990af9af T15: buang voter basi di scan + hapus bobot suara & UI basi di web
get_voters.py kini menyimpan hanya pemilih segar (last_vote tak
diketahui atau > VEX_STALE_DAYS dibuang di normalize, V13). Web
menampilkan kolom RANK/AKUN/STAKE/VOTE TERAKHIR, tanpa BOBOT SUARA,
stat VOTE BASI, penanda/ filter ?stale=1 (V15). voters.db dipangkas
336 → 42. Oracle diperbarui dan lolos.
2026-08-04 17:18:50 +07:00
proitlab b0b3ba8ab3 T14: penanda vote basi (last_vote dari rasio bobot/stake, filter ?stale=1, VEX_STALE_DAYS) 2026-08-04 17:05:16 +07:00
proitlab 2b95be3091 T13: produksi web dengan gunicorn + WAL (gunicorn.conf.py, DASH_WORKERS, V12) 2026-08-04 16:40:16 +07:00
proitlab 205ad35c70 T9-T12: env config + live owner search + responsive (§V11, I.env, I.web)
- config.py: env/.env (python-dotenv), defaults = konstanta lama; get_voters & dashboard pakai config
- dashboard: ?q= server filter + /api/search JSON (substring, LIKE-escape, rank global via correlated count)
- static/app.js: debounced live search; degrades to GET ?q=
- static/style.css: input search + responsive (1024/768/480), list→kartu berlabel di mobile
- test_dashboard: search/API/rank-global/config tests; .env.example; .env gitignored
2026-08-04 16:23:26 +07:00
proitlab c5e30a4785 T1-T5: Python voter fetcher (§V1-9)
- get_voters.py: scan Vexanium voters table (vexcore), retry/paginate,
  filter databisnisid single-vote + stake ≥1000 VEX, store weight verbatim,
  daily-replace SQLite snapshot (owner PK, scanned_at)
- V8/V9 + test_get_voters.py (oracle, §V1-9)
- SPEC.md, AGENTS.md, requirements.txt
2026-08-04 15:56:19 +07:00