pf_app
§Row depth and the observer shim and §Column hierarchy described two different mechanisms and an asymmetry between the axes that no longer exists: rows were imperative view state chased by an observer shim, and columns collapsed by truncating split_by. Both are a depth in ViewConfig now, so the two sections are one. Records what matters for reading the code: that the depths are 1-based against server.cpp's `set_depth(depth - 1)`, that this needed the engine patch in ui/vendor because apply_update dropped the fields, and that Session::update_view_config returning early on "no change" is why nothing happened at all rather than happening wrongly. Keeps a short account of what was deleted -- the shim, the focus listeners, the retry loop, splitFull, collapsingRef, the prefix test -- because someone will otherwise wonder why the surrounding code looks so plain, and because split_full is still read for layouts saved under the old scheme. Per-node expansion moves to its own subsection with the reason it is hard (set-only API, no getter) and what fixing it would take. The stale claim that the selection is cleared on every column change is gone: with a depth the dimensions a slice was cut from are all still present. Also: observerShim.js dropped from the project layout, and the tech stack now says 5.4.0 from the patched vendored build rather than 5.2.0. Co-Authored-By: Claude Opus 5 (1M context) <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 | ||