Skip to content

Feat/llm vision#8

Merged
Shinitaii merged 7 commits into
mainfrom
feat/llm-vision
Jul 12, 2026
Merged

Feat/llm vision#8
Shinitaii merged 7 commits into
mainfrom
feat/llm-vision

Conversation

@Shinitaii

Copy link
Copy Markdown
Owner

No description provided.

Shinitaii and others added 7 commits July 12, 2026 18:45
src/migrations/ holds ad-hoc historical-data fix scripts run locally
against staging/prod data; they aren't meant to be version-controlled
or re-run via CI.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
resolveVersionsSource/resolveMeterVersion previously only deferred to
Property.meter_groups[entry] for submeters, falling back to the
deprecated MeterGroup.versions/current_version for main meters. Since
version tracking moved to the per-property entry, main-meter readings
could resolve against stale/absent MeterGroup version data.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Apply the endDate in-memory filter whenever endDate is supplied
  instead of only when both startDate and endDate are present, so an
  endDate-only query no longer leaks cycles ending after it.
- Rebuild getConsumption on top of buildJoinedData (the same
  version-aware consumption path used by every other report) instead
  of the raw, non-version-aware number frozen on cycle.billing_ids at
  cycle-creation time.
- Bucket getBillingTrends by cycle start date to match getConsumption's
  grouping, so the same cycle no longer lands in different months
  across the two charts when it spans a month boundary.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds get_billing_reports, wrapping reportsService (summary,
consumption, billing_trends, collection_status) as a chatbot tool so
portfolio-wide questions (total revenue, collection rate, MoM trends,
paid/pending/overdue breakdowns) are answered from the same source as
the Reports page instead of the LLM summing per-property tool calls.
Property identity in the consumption-by-property result is masked the
same way as every other tool output.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Fetch all pages of billing cycles/billings via cursor pagination
instead of a single capped page, so stat totals and the cycles table
don't silently undercount once historical backfill pushes past 100
records. Add a 3/6/12-month range toggle and scope the Billed/
Collected/Outstanding stat boxes to the same range as the cycles
table below them, and show reading units next to consumption.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replace the per-meter-group grouped sections with a single flat table
supporting utility type, meter group, date range, and payment status
filters plus client-side pagination. Cycles/billings/readings are now
fetched via cursor pagination (list endpoints cap limit at 100)
instead of a single page, which previously dropped older cycles' data
from billingMap/readingMap once historical backfill pushed past 100
records. Cycle utility type and meter group now read directly from
BillingCycle.meter_group_id instead of being inferred from its first
billing's reading.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
These were ad-hoc scripts for historical data fixes/backfills and
environment copies, not code meant to be maintained or re-run via CI.
src/migrations/ is now gitignored (see previous commit) to keep future
one-offs out of the repo.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
utilitool Ready Ready Preview, Comment Jul 12, 2026 11:10am

@Shinitaii
Shinitaii merged commit 3d9e190 into main Jul 12, 2026
3 of 5 checks passed
@Shinitaii
Shinitaii deleted the feat/llm-vision branch July 19, 2026 08:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant