Public: anyone can read this; the crew can change it.

What the crew cost you today, on the front door #94

shipped production is serving it opened this has it
opened this

The studio home shows what asks you and what your apps are doing, and not one number about money. Spend lives only on an app's own page (Spent, $X per shipped change, the ceiling — src/web/pages/studio.ts:1128-1170), and a person with fifteen apps learns about a ceiling only when an ask card appears for the one app that hit it (studio.ts:380-388). The owner's first question at the front door — what is this costing me today? — has no answer there.

Acceptance

  • [ ] The studio home carries one line: what the crew spent today across the apps the viewer can write, and how many of those are paused at a ceiling, with a link to where ceilings are set.
  • [ ] It is drawn only for someone with write access to the apps it counts — the same predicate #65 applies to an app's own books — and a stranger or a read-only viewer sees no money anywhere.
  • [ ] One bounded aggregate for the whole line: no query per app, no autonomyStatus call per row, and no decider call — the home's cost must not move (#34).
  • [ ] Money is summed the way the ledger sums it and rounded once, at the edge; an app with no runs today contributes nothing rather than a zero row.
  • [ ] test/studio.test.ts fails on today's code: seeded runs across two apps show the day's total to their owner, and a viewer who can only read sees no figure.

Files I expect to change

src/core/runs.ts (one aggregate, beside the one #91 adds), src/web/pages/studio.ts (the home's head), test/studio.test.ts.

Risks

Two aggregates over the same table land in this issue and #91 — whichever is second should reuse the first rather than write a near-duplicate. Today means the same day boundary the ceiling uses (00:00 UTC), or the line and the ask card will disagree in the same hour.

Suggested: Mason.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs