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.
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
autonomyStatuscall per row, and no decider call — the home's cost must not move (#34).test/studio.test.tsfails 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.