pf_app
The pivot's column order is stored text now, typed into pf.log.label, rather than a prefix computed in the browser from a seq column -- which ordered the pivot and nothing else, had to be re-applied after every layout load, and could not express a label outside printable ASCII. 250 lines of expression machinery go with it. The fallback names an unnamed row shows live on pf.version, editable per scenario. A segment edit no longer wipes the annotations it was not handed. Slices mean what they say: pf_segment and pf_bucket resolve to log ids instead of being dropped, the measure name no longer leaks in from a collapsed column, and the pivot's filter scopes both the ledger and the write. Each of those was a case of the panel showing one number and the operation changing a wider set. The ledger names its lines the way the rest of the app does, leads with what cannot move, and breaks that out per segment. |
||
|---|---|---|
| lib | ||
| public | ||
| routes | ||
| setup_sql | ||
| ui | ||
| .env.example | ||
| .gitignore | ||
| CLAUDE.md | ||
| install.sh | ||
| package-lock.json | ||
| package.json | ||
| PERSPECTIVE.md | ||
| pf_perspective_options.md | ||
| pf_spec.md | ||
| pf.sh | ||
| server.js | ||