Download Latest Version v0.4.0_ Gmail + AppFolio Vendor Portal + Google Drive source code.tar.gz (1.6 MB)
Email in envelope

Get an email when there's a new version of Clawbolt

Home / v0.3.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-05-04 2.3 kB
v0.3.0 source code.tar.gz 2026-05-04 2.0 MB
v0.3.0 source code.zip 2026-05-04 2.2 MB
Totals: 3 Items   4.2 MB 0

Highlights

  • feat(llm): per-row cost on llm_usage_logs (#1124). Every row in llm_usage_logs had been writing cost=0.000000 since the file-store -> Postgres migration. Adds a per-model pricing table at backend/app/services/llm_pricing.py covering Sonnet 4.6, Opus 4.7, and Haiku 4.5 (plus dated aliases) and applies Anthropic's 1.25x / 0.10x cache write / cache read multipliers. Existing rollups now show real dollar amounts.
  • feat(calendar): auto-resolve to primary calendar when calendar_id is omitted (#1122). Contractors with crew sub-calendars (Personal + Vinny + Isaac, etc.) used to hit "Multiple calendars available. Please specify calendar_id." every time the agent created an event without naming a calendar, forcing an LLM retry. Adds an is_primary flag mirroring Google's primary: true and falls through to it when the LLM omits calendar_id.
  • fix(ingestion): recover orphan inbound messages on app startup (#1125). The MessageBatcher schedules an in-memory flush timer 1.5 s after persisting an inbound. If the worker died inside that window (deploy, OOM, crash), the timer was lost and the message sat in the DB with no agent reply. Startup now scans for orphan inbounds and re-queues them.
  • fix(companycam): accept JSON-string tags on upload_photo / tag_photo (#1121). The LLM occasionally over-quotes the tags argument as a JSON-encoded string instead of a real JSON array. Mirrors the [#1073] fix for qb_create / qb_update: a field_validator(mode="before") decodes JSON-string tags before Pydantic validation, saving one tool error + retry per occurrence.
  • fix(dashboard): hide LLM provider/model card for premium users (#1127). The dashboard's Settings card linked to /app/settings, where premium hides the Model tab. Premium admins saw the card but the click was a dead end. Hide the card for all premium users; OSS single-tenant deployments still see it.

Other

  • (#1126) chore(deps): bump postcss 8.5.8 -> 8.5.13.
  • (#1120) docs(heartbeat): drop stale quiet-hours / business-hours references.

Operator notes

No new migrations. The pricing table covers Anthropic models we currently invoke; if you point LLM_MODEL at a model not listed in llm_pricing.py, the row writes cost=NULL rather than crashing.

Source: README.md, updated 2026-05-04