Per-Job Cost Tracking – and Notifications That Finally Arrive
Last week we wrote about the big rename from Boards to Projects -- and about the analytics dashboard that shows how well agents perform. This week is about the next logical question: What do they cost?
Cost Tracking & Budgets for Runners
The analytics dashboard has shown total costs and token consumption since last week. But totals aren't enough when you want to understand why one job cost $4 and another cost $0.40.
What Changes
Every runner job now tracks costs per stage in real time. You see:
- Total cost per job in USD
- Token consumption broken down by input, output, and cache
- Cost per pipeline stage (planner, implementation, review)
- Turns -- how many interaction rounds the agent needed
In the streaming view, costs update live. You see progress events and cost updates while the agent works.
Setting Budgets
Under Settings → Runners → Runner Teams, you can now configure a budget per team:
- Maximum cost per job (in USD)
- Maximum turns per job
- Warning threshold (percentage of budget)
- Token limits per job
The budget is set as the default when creating a job. Individual jobs can override the team budget if needed.
In the job view, you see the budget status as a progress bar: green (OK), yellow (warning), red (exceeded).
Organization Cost Summary
Admins see a cost overview across all organization jobs under Settings → Runners. This is the foundation for deciding which teams should use which models -- and where a cheaper model is sufficient.
Secret Comments: Notifications Fixed
Secret comments are comments visible only to team members -- not to customers. There was a problem: when a comment was marked as secret, no notifications were generated at all. Not even for team members who were mentioned or watching the ticket.
Now it works correctly:
- Team members receive notifications for secret comments (mentions and watcher activity)
- Customers are still excluded -- privacy is preserved
- Auto-watch: Anyone who comments automatically watches the ticket
This was a subtle bug. The original implementation skipped the entire notification code path instead of filtering recipients.
MCP: Team-Based Project Access
Users who had access to a project through a team (rather than a direct membership) received "Forbidden" errors in the MCP interface. MCP authentication simply didn't load team-board assignments.
Fixed. The MCP capability system now considers:
- Direct board membership (as before)
- Team-based board assignments (new)
- Correct role resolution (direct membership takes precedence)
Additionally, viewers in MCP can now do more than just comment: list tickets, search, read board details, and fetch status lists. Previously they were limited to comments and watcher actions.
Summary
| Change | What it means |
|---|---|
| Per-job cost tracking | Cost and token usage visible per stage |
| Team budgets | Max cost, turns, and tokens configurable per team |
| Organization cost summary | Total runner job costs at a glance |
| Secret comments | Team notifications now work correctly |
| MCP team access | Project access via teams available in MCP |
| MCP viewer permissions | Viewers can read and search tickets |