You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: one analytics story, and the images catch up with the consolidated surface (issue #181)
The last slice of #181: every doc and both READMEs now describe the
one analytics surface.
- docs/costs.md and docs/graph.md lose their view/command sections and
survive as the semantics references behind what the insights page
draws; docs/insights.md speaks the bare grammar, gains the budget
and trend-line reading bullets, and points the what-if at
insights whatif; demo.md's shot list gains the i beat and the exact
new footer; workflows.md and launch-kit.md updated.
- README.md: the intro bullet, the when-to-use paragraph (bare
/dispatch insights, budget dials named as the one real lever), the
admin-panel section rewritten around the i key and the page, the
command list, and the usage-ledger sentence. admin/README.md: the
three analytics bullets merge into one insights story. Dash rule
holds in both.
- Images: costs-view.svg/png DELETED (the view is gone);
dispatch-dashboard.svg's footer line rewritten to the shipped
footer (i insights; row width preserved at 80 chars inside borders)
and its PNG re-rendered at the exact prior 1803x1811;
insights-view.png regenerated from the page WITH the budget panel,
cumulative line and flow multiples; graph-view.png kept byte-
unchanged as the topology close-up. Changed references bump to
?v=0.12.0.
Specs UNCHANGED, checked: this slice states what the code slices
shipped and changes no behaviour.
Suite green in the CI posture: 2192 tests, 0 skipped, live Valkey.
Signed-off-by: Rob Boerman <robboerman@live.nl>
Copy file name to clipboardExpand all lines: README.md
+21-23Lines changed: 21 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,9 +13,7 @@ did and what it spent, and shuts the container down. A durable queue absorbs bur
13
13
checked before a single token is spent, and a live admin panel shows everything and can turn the whole
14
14
thing off.
15
15
16
-

17
-
18
-

16
+

19
17
20
18

21
19
@@ -25,9 +23,9 @@ README, no permission system. pi-dispatch is exactly that missing operational la
25
23
-**The container is the boundary.** Every job runs `--cap-drop=ALL`, non-root, ephemeral, with its
26
24
instructions mounted read-only. That is pi's missing permission system, enforced by Docker.
27
25
-**Spend is bounded before a container starts**: a per-job turn budget plus daily, weekly and monthly
28
-
caps, checked before a single token is spent. And analyzed after: the panel's COSTS view shows spend
29
-
per flow, trigger, model, day and repo, what a subscription actually saves, and what a flow would
30
-
cost on another model ([`docs/costs.md`](docs/costs.md)).
26
+
caps, checked before a single token is spent. And analyzed after: the insights page shows spend
27
+
per flow, trigger, model, day and repo, what a subscription actually saves, what a flow would
28
+
cost on another model, and the budget dials themselves ([`docs/costs.md`](docs/costs.md)).
31
29
-**The image is yours to shape.** Bake a project's toolchain into [`image/Dockerfile`](image/Dockerfile);
32
30
it ships Playwright and Chromium, so a flow can build a frontend, screenshot it, and iterate on the
33
31
rendered result. Any trigger can name its own image with `run.image`
@@ -55,10 +53,11 @@ here it is just how the pieces fit). You **design** loops as triggers plus commi
55
53
**graph** shows the loops you actually built (what triggers what, what chained to what, where a skill's
56
54
own text says it might loop, [`docs/graph.md`](docs/graph.md)); and **insights** prices them (what each
57
55
trigger and flow costs, whether a subscription pays off, drawn as charts beside that same topology,
58
-
[`docs/insights.md`](docs/insights.md)). One `/dispatch insights html` gives you the whole picture as a
59
-
single file your browser opens from disk:
56
+
[`docs/insights.md`](docs/insights.md)). One `/dispatch insights` gives you the whole picture as a
57
+
single file your browser opens from disk, budget dials included, because the caps are the one lever
58
+
that actually changes what all of this costs:
60
59
61
-

60
+

62
61
63
62
## Quickstart
64
63
@@ -407,16 +406,15 @@ Steer the running worker without stopping it, from any terminal:
407
406
## The admin panel
408
407
409
408
The dashboard shown at the top of this README is a **pi extension**: it loads into your own interactive
410
-
pi session. No daemon, no web app, no network port. Beside the dashboard, `/dispatch graph` renders the
411
-
whole trigger and flow topology: what triggers what, what chained to what in the recorded runs, what a
412
-
skill's own text says it might chain to, plus orphan skills and dangling triggers. It comes as a
413
-
dashboard view (`g`), as plain text, and as `/dispatch graph html`, a self contained page your browser
414
-
opens from disk (still no server and no port) with the topology drawn Node-RED style
415
-
([`docs/graph.md`](docs/graph.md)). Trigger rows carry their schedule (next fire, or overdue) and
416
-
their window spend, and `/dispatch insights html` combines this topology with the cost analytics on
417
-
one page ([`docs/insights.md`](docs/insights.md), shown [above](#when-to-use-it)).
409
+
pi session. No daemon, no web app, no network port. Analytics live on the insights page: pressing `i`
410
+
(or typing `/dispatch insights`) writes one self contained file and opens your browser (still no
411
+
server and no port), with the whole trigger and flow topology drawn Node-RED style, what triggers
412
+
what, what chained to what in the recorded runs, what a skill's own text says it might chain to,
413
+
orphan skills and dangling triggers flagged, each cron's next fire or overdue state, and spend badged
414
+
onto the triggers that earned it ([`docs/graph.md`](docs/graph.md) explains every edge;
415
+
[`docs/insights.md`](docs/insights.md) the page, shown [above](#when-to-use-it)).
418
416
419
-

417
+

420
418
421
419
```bash
422
420
pi install npm:@edgehero/pi-dispatch-admin # then, in pi: /dispatch
@@ -436,13 +434,13 @@ banner: setup is offered when there is nothing, never over an outage.
436
434
437
435
Inside the panel: `p`/`r` pause and resume the queue, arrows and `Enter` drill into triggers and runs,
438
436
`a`/`e`/`x` add, edit and delete triggers (validated, atomic, reloaded live by both services), `s` edits
439
-
a limit, `w` manages quiet hours, `c` opens the COSTS view (its `f` key cycles spend by flow, model,
440
-
trigger and repo). `Enter` on a run opens its full record:
437
+
a limit, `w` manages quiet hours, `i` opens the insights page. `Enter` on a run opens its full
438
+
record:
441
439
442
440

443
441
444
-
The same surface exists as plain commands (`/dispatch status | runs | logs | budget | triggers | costs |
445
-
graph | insights | run | pause | resume | set | unset`), all local, no model involvement.
442
+
The same surface exists as plain commands (`/dispatch status | runs | logs | budget | triggers |
443
+
insights | run | pause | resume | set | unset`), all local, no model involvement.
446
444
447
445
### Operating pi-dispatch from your AI
448
446
@@ -525,7 +523,7 @@ Same machinery, per-forge correctness differences, each with a full setup doc:
525
523
526
524
Every job writes a durable, id-only record under `PI_LOGS_DIR` (never issue or comment text; raw logs
527
525
are opt-in via `PI_CAPTURE_JOB_LOGS=1` and stay host-side). Each record carries a per-model **usage
528
-
ledger**, which is what the COSTS view, `/dispatch costs`, and the what-if re-pricing fold over. Declare
526
+
ledger**, which is what the insights page, `dispatch_costs`, and the what-if re-pricing fold over. Declare
529
527
what your subscriptions cost in `subscriptions.json` and the screen shows whether they actually save
530
528
money; without it, zero-rate runs show `$0 (unrated)`, never "free" ([`docs/costs.md`](docs/costs.md)).
Copy file name to clipboardExpand all lines: admin/README.md
+3-15Lines changed: 3 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -55,26 +55,14 @@ Four forges: GitHub, GitLab, Forgejo (and Gitea), Azure DevOps. **Who may fire a
55
55
One command puts a live TUI over the whole deployment:
56
56
57
57
<palign="center">
58
-
<imgsrc="https://raw.githubusercontent.com/edgehero/pi-dispatch/main/docs/images/dispatch-dashboard.png?v=0.5.0"alt="The /dispatch panel: status, spend meters, triggers, runs, and settings"width="820">
58
+
<imgsrc="https://raw.githubusercontent.com/edgehero/pi-dispatch/main/docs/images/dispatch-dashboard.png?v=0.12.0"alt="The /dispatch panel: status, spend meters, triggers, runs, and settings"width="820">
59
59
</p>
60
60
61
61
-**Status and spend.** Queue and worker state, day/week/month spend meters, a daily token counter, and a run-history table with per-job tokens and cost.
62
-
-**Costs, analyzed honestly.**The COSTS view (`c`) shows spend per flow, model, trigger, repo and day, what each declared subscription actually saves against API rates, and a what-if that re-prices a flow under another model. Every dollar carries its class: a plan-covered run never renders as $0.00, and an estimate is always marked as one.
62
+
-**Insights, the one analytics page.**Press `i` on the panel (or type `/dispatch insights`) and a single self contained page opens in your browser: the budget dials (the one lever that actually changes what all of this costs), per-plan verdicts against API rates, daily, cumulative and per-flow spend charts, the four breakdowns (flow, trigger, model, repo), and the whole trigger and flow topology with spend badged onto the triggers that earned it. Every dollar carries its class: a plan-covered run never renders as $0.00, and an estimate is always marked as one. Design your agent loops as triggers and skills, see the loops you actually built, and see what each one costs, all in one place ([`docs/insights.md`](https://github.com/edgehero/pi-dispatch/blob/main/docs/insights.md)).
63
63
64
64
<palign="center">
65
-
<imgsrc="https://raw.githubusercontent.com/edgehero/pi-dispatch/main/docs/images/costs-view.png?v=0.11.0"alt="The COSTS view: per-plan verdicts against API rates, a daily spend sparkline, spend by flow, trigger, model and repo, and subscription amortization"width="820">
66
-
</p>
67
-
68
-
-**The topology, as a graph.** The GRAPH view (`g`) and `/dispatch graph` show what triggers what, what chained to what in the recorded runs, and what a skill's own text says it might chain to, with orphan skills and dangling triggers flagged, each cron's next fire or overdue state, and each trigger's window spend. `/dispatch graph html` draws the same picture Node-RED style in your browser, from one self contained file on disk: no server, no port, and the page reloads itself when you regenerate it.
69
-
70
-
<palign="center">
71
-
<imgsrc="https://raw.githubusercontent.com/edgehero/pi-dispatch/main/docs/images/graph-view.png?v=0.11.0"alt="The trigger and flow graph: triggers wired to their flows, an observed chain edge with its count and recency, a potential mention, a skill with its prose loop grouped inside it, cron re-arm loops, an orphan skill dimmed, the forge group naming the repos its runs hit, and the legend stating the chain caps and honesty counters"width="820">
72
-
</p>
73
-
74
-
-**One page for both questions.**`/dispatch insights html` writes a single self contained page: the topology with spend badged onto its triggers, beside the cost analytics drawn as charts (daily spend, the four breakdowns, plan verdict cards). Design your agent loops as triggers and skills, see the loops you actually built, and see what each one costs, all in one place ([`docs/insights.md`](https://github.com/edgehero/pi-dispatch/blob/main/docs/insights.md)).
75
-
76
-
<palign="center">
77
-
<imgsrc="https://raw.githubusercontent.com/edgehero/pi-dispatch/main/docs/images/insights-view.png?v=0.11.0"alt="The insights page: KPI tiles, a plan verdict card, the daily spend chart, the four breakdowns with plan-covered buckets drawn as chips instead of dollar bars, and the topology with spend badges"width="820">
65
+
<imgsrc="https://raw.githubusercontent.com/edgehero/pi-dispatch/main/docs/images/insights-view.png?v=0.12.0"alt="The insights page: KPI tiles, a plan verdict card, the daily spend chart, the four breakdowns with plan-covered buckets drawn as chips instead of dollar bars, and the topology with spend badges"width="820">
78
66
</p>
79
67
80
68
-**Triggers, editable live.** cron, label, comment and pull_request triggers with colored drill-ins showing what fires each one, what it runs, and its trust model. Added, edited and deleted without a restart. Triggers that run third-party code or a custom image are badged; opting in or out of either stays an edit to the reviewed `triggers.json`, which neither the console nor a model-callable tool will make for you.
0 commit comments