chore(gateway): emit INFO budget reserved/settled logs for proactivity v2 (chip task_2855f4ec)
Maintainers usually reply within 1 day
@ahmedcompk is already working on this.
Since Oct 8, 2026.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 68/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- firebase, python
- Domain
- backend, observability
Research direction
Find the LLM gateway's proactivity budget path and the existing settlement log named in the issue. Read the reserve and _settle(...) flows, then run the relevant tests through BACKEND_UNIT_TEST_FILE_LIST and backend/test.sh. Done means successful reservations and settlements emit the specified INFO logs, while the invariant and held-result logs remain unchanged and no identifying or content fields are logged.
Written by the indexing model from the issue text.
Description
Context
Proactivity v2's Budget Authority reserves a worst-case hold before every model call and settles to actual cost afterward (server-side, per user per UTC day). Today the only cost signal is the Firestore ledger (llm_gateway_attempts) and a rate-limited warning path — there are no INFO log lines for reservation and settlement lifecycle, which makes ramp-gate reads and incident triage slower than they need to be.
This is a follow-up chip from the proactivity-v2 program (run data/run-2026-10-03-proactivity-v2/, handoff item task_2855f4ec). It was flagged as "worth landing early" because it makes every later ramp gate easier to read.
Ask
Emit INFO-level structured log lines from the LLM gateway's proactivity budget path:
proactivity_v2_budget_reserved— on successfulBudgetAuthority.reserve(...): producer, day, worst-case micro-USD reserved (no uid, no item content).proactivity_v2_budget_settled— on_settle(...)success: producer, priced micro-USD, result flag (the existingproactivity_v2_budget_settled producer=%s priced_micro_usd=%s result=%s policy_version=1line already exists at WARNING-adjacent level — normalize it to INFO and keep the shape).- Keep the existing
proactivity_v2_budget_invariant_failed(critical) andproactivity_v2_budget_settled ... result=held(warning) lines unchanged.
Constraints:
- Aggregate-only fields: producer, micro-USD integers, result booleans. Never uid, item_id, call_id, prompt text, or provider response bodies (log-leak rules: [[gcloud-logs-leak-prod-secrets]]).
- A dedicated read of cost stays on Firestore
llm_gateway_attempts(featureproactivity_v2_conversation_mentor_v2, payeromi) — these logs are an operational aid, not the billing source of truth. - Backend PR: register nothing new (no env vars), no flag changes, tests via
BACKEND_UNIT_TEST_FILE_LIST+backend/test.sh.
Failure-Class
Failure-Class: none
🤖 Generated with Claude Code
- Dominant language
- Python
- Stars
- 13.8k
- Forks
- 2.6k
- Avg merge
- 5h 16m
- Merged PRs (30d)
- 616
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from BasedHardware/omi
-
[Bounty proposal] fix(calendar): normalize naive dateTime strings and guard None values in parse_event_times ($50 proposed)Possibly taken @huynhnhatquandongnai-source claimed this 2 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
BasedHardware/omi#22636 · 3 comments ·
Maintainers usually reply within 1 day
-
[Bounty proposal] fix(entity-pages): normalize mixed naive, aware, and ISO conversation timestamps ($50 proposed)Possibly taken @huynhnhatquandongnai-source claimed this 2 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
BasedHardware/omi#22620 · 2 comments ·
Maintainers usually reply within 1 day
-
[Bounty proposal] fix(calendar): normalize naive start timestamps and guard malformed start dicts in multi-window sort ($50 proposed)Possibly taken @huynhnhatquandongnai-source claimed this 2 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
BasedHardware/omi#22614 · 2 comments ·
Maintainers usually reply within 1 day
-
[Bounty proposal] fix(memory): normalize mixed naive and aware evidence timestamps when ordering capture devices ($50 proposed)Possibly taken @huynhnhatquandongnai-source claimed this 2 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
BasedHardware/omi#22611 · 1 comment ·
Maintainers usually reply within 1 day
-
Python CLI: corrupt compressed responses hide an unknown write outcomePossibly taken @pranav440 claimed this 9 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
BasedHardware/omi#21295 · 1 comment ·
Maintainers usually reply within 1 day
All issues in BasedHardware/omi
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
volcengine/OpenViking#6445 ·
Maintainers usually reply within 1 day
-
BUG:Edit Album strips spaces from the password so albums with a leading/trailing space in the password can't be editedPossibly taken @ManyaJain111 claimed this today. Openbug enhancement possible-duplicate
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
AOSSIE-Org/PictoPy#1637 · 4 comments ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
deepspeedai/DeepSpeed#8884 ·
Maintainers usually reply within 3 days
-
Flaky: test_advisor_live_calibrates_an_unmeasured_circuit ranks engines by a 1.8ms sleep marginOpen
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
flagos-ai/FlagQuantum#718 ·
Maintainers usually reply within 1 day
-
bug CI-failure high priority
Difficulty 1/5 Under an hour Newbie friendliness 86/100
vllm-project/afd-plugin#483 ·
Maintainers usually reply within 1 day