pf_app
Two corrections to the previous commit, both found from a real example: a slice with pending_rep + pf_bucket, and a pivot scoped to sseas_e <= 2027. The ledger and Bridge's ending point disagreed by a constant 1,495,062 across every step -- exactly the rows sseas_e <= 2027 excludes. Bridge's "Selection" scope built filters from the slice alone and never picked up the pivot's own view-level filter (what CLAUDE.md calls scope), the same gap totalsFor in Forecast.jsx was written to close for the ledger. It's now read off viewerRef.current.save() and applied alongside every per-slice view. Including pf_bucket in the per-slice filter (previous commit) was wrong for Bridge specifically, unlike for the ledger: it fetched only the one bucket the slice landed on, so "Compare to" had no other bucket's rows left to compare against and always collapsed to one option. Which bucket the walk starts and ends on is buildSteps's job, from forecastBucket -- not something to pre-filter out of the fetch. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| 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 | ||