Skip to content

Commit fbeefdc

Browse files
committed
docs(prd-018): record settings control-panel alignment with force system
Document the physics-settings refactor (commit 7c8367e): live-path empirical proof (repelK 120→500 moved spread), canonical default corrections, bound slider ranges, ontology-control de-duplication, and the confirmation that hydration is already server-authoritative. Co-Authored-By: jjohare <github@thedreamlab.uk>
1 parent 7c8367e commit fbeefdc

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

docs/PRD-018-ontosphere-ontology-rigour.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,13 @@ Priority reflects value × unblocking. WS-0 and WS-1 are prerequisites for WS-3
231231

232232
**Known follow-up (out of scope for WS-4, not yet wired):** the **Browse** sub-tab's class/property tree (`OntologyBrowser``useOntologyStore``GET /api/ontology/public`) reads 0 because `/api/ontology/public` is **404** — no such backend route exists (the live `/api/ontology` scope exposes `/axioms`, `/inferences`, `/hierarchy`, `/report`, …). Repoint the browser to `/hierarchy` (or add a `/classes` endpoint) to populate the tree. The exploration controls, inferred-edge toggle, and the other four sub-tabs (Reason/Forces/Query/Manage) are live.
233233

234+
**Settings control-panel alignment (browser + endpoint-verified 2026-06-05, commit `7c8367e6d`):** re-tested the whole physics settings surface against the live GPU force system and refactored the Physics tab (`unifiedSettingsConfig.ts`) to match.
235+
- **Live path proven empirically.** Physics writes flow slider → `autoSaveManager` (500 ms debounce) → `updatePhysics``PUT /api/settings/physics``settings_routes.rs::update_physics_settings` (key-normalise → `validate_physics_settings` against `physics_bounds``UpdateSimulationParams` to GPUCompute/GPUManager + GraphServiceSupervisor → `ForceResumePhysics`). Direct endpoint test: `repelK` 120→500 expanded graph spread (σ 34.8,36.0,26.7)→(37.7,38.6,28.1), confirming the path reaches the GPU. (The `api_handler/settings/mod.rs::update_physics_settings` variant with snake-case `UpdatePhysicsRequest` and no GPU propagation is **dead** — shadowed by the `/api/settings` scope registered first in `main.rs`.)
236+
- **Stale default annotations corrected** to the canonical values in `client/src/api/settings/defaults.ts` (all UI descriptions previously cited pre-retune numbers): springK 15→12, repelK 1200→120, restLength 80→50, centerGravityK 0.05→0.2, gravity 0.0001→0.002, maxForce 1000→150, globalSpeed 0.5→0.4, damping 0.85→0.9, graphSeparationX 250→0, temperature 1.0→0.
237+
- **Slider ranges bound to `physics_bounds`** so the UI can no longer request values the validator 400-rejects: repelK max 3000→500, temperature max 5→1.
238+
- **Duplicated ontology-force controls removed** from the Physics tab (`qualityGates.ontologyPhysics` toggle + `ontologyStrength` slider, which carried a divergent 0.5 default vs the panel's 0.6). The dedicated **Ontology → Forces panel** (`OntologyForcesPanel`) is now the single source of truth for ontology-force enable + global strength; the Physics tab's "Semantic & Layout Forces" group retains only the DAG/type-clustering controls.
239+
- **Hydration confirmed correct (no code change):** `visualisation.graphs.logseq.physics` is in `ESSENTIAL_PATHS` and `coreSlice.ts` overlays server physics over localStorage on init, so physics is server-authoritative on a fresh load. The transient UI/backend value divergence observed during testing was stale browser-tab/localStorage state from in-session slider drags, not a defect.
240+
234241
---
235242

236243
*Research provenance: 6-agent ruflo mesh (`swarm_1780651148193`) — ingest, schema, GPU-physics, docs, client, and ontosphere external analysts. All claims carry file:line / repo-path evidence in the agent transcripts.*

0 commit comments

Comments
 (0)