Home now opens with what the workspace's work says today, and the workspace overview becomes the place to see where agent work and spend go. Both are built on one new work-service read, workspace_signals. Agent spend is now counted from three sources: g1t's own metering, what harness sessions report, and providers' cost reports.
Closes #157
Home
- Past week: agent-authored merges, spend per agent merge, stalled changes and agent rework rate. Each figure shows its change from last week (good news or bad) and a line over ten weeks that you can point at.
- Daily signal: the finding that matters most leads as the page's headline, and the others follow. Each is one sentence with its evidence, a link to where to see it, and Ask g1t. The findings:
- work items waiting on one unreviewed change;
- agents' drafts waiting for review;
- a milestone shipped, against its due date;
- where the quarter's agent spend is going;
- stalled changes or agent rework moving;
- a harness catching on in a team;
- someone moving into a project one person has carried.
- The ask box moves under the findings. Members without Code see Home as before.
Workspace overview
- Spend, threaded to the work: milestone → work item → change set per project → pull requests. Boxes are sized by spend and shaded by agent share. With a provider connected, it also shows what the provider reported, beside g1t's figure and never added to it.
- What's moving and what's waiting: each team's last two weeks, day by day. You can turn layers on and off, point at a day for its numbers, or open them as a table. Beside it is the list of pull requests waiting on a first review.
- Quiet changes: knowledge silos, new ground, spreading (a harness catching on), and new habits.
Spend
- Session cost: the Claude Code plugin adds up each session's token usage from its own transcript and reports only the counts. The work service prices them at Anthropic's list price (
crates/contracts/src/model_prices.rs). A session's cost shows on its page and in Sessions. Codex sessions have no hooks to report from, so they're left out, and the docs say so. - Provider cost reports: owners connect an Anthropic or OpenAI admin key under Settings → Provider costs. Billing seals the key and re-reads the provider's daily costs every day.
Before deploying
- Set
BILLING_KEYong1t-billing(openssl rand -hex 32, thenwrangler secret put BILLING_KEY). Until it's set, connecting a provider fails with a clear message. It's declared indeploy/stack.jsonc, sodeploy.mjs doctorreports it when missing, and self-host makes one on first start. - Migrations, all additive:
- work
0053_session_cost.sql(session usage and cost); - work
0054_signals_indexes.sql; - billing
0067_provider_costs.sql.
- work
- The CLI is now 0.4.1 (
heartbeat --usage-json) and needs itscli-v0.4.1tag. Plugin 0.3.1 sends usage only to a CLI of 0.4.1 or later, so people on 0.4.0 are still recorded. - Prettier is added for new files (
.prettierrc.json,npm run format). Older files are left as they are.
Tests
cargo test --workspace --locked: passes.apps/web:npm test, 1,076 passing, andnpx tsc -b --force, clean.- Plugin hooks: 61 passing.
- Deploy tooling: 101 passing.
The screenshots below are the real components rendered with made-up data. The thresholds that decide when a finding shows haven't been tuned against a live workspace yet; that comes after deploy.