Repository navigation
Frontend UI interaction debt (races, Display/Operate copy, analysis/settle) #228
Copy link
Copy link
Closed
Description
Tracking issue for frontend UI interaction debt that is still live after #175 / #168 and the Camera WebGL rename fix in #226.
Scope: operator-facing UX (races, misleading copy, panel placement, settle). Not GPU (#161) or benches (#129).
Related open architecture issue: #163 (Display / Operate / Analysis separation). That issue frames the desired model; several items below are the concrete UI symptoms.
Scenes / tabs
- blocker Duplicate → rename settle race (CI: run 40153241801) — fixed in #226 (
e4663b4) - high
agent-state-poll/sync_agent_stateoverwrite of in-flight sidebar edits / rename input — addressed in #229 (7f65235e). Broader poll-vs-edit / tab-switch races remain under Latency below. - medium Multi-structure tab crowding residual risk after Scene tab strip gets crowded with many uploaded structures #188 / fix: keep active scene tabs reachable #189 — #230 (
8029231e)
Camera / projection
- high Orthographic settle family still fragile (related closed: CI: Camera WebGL still flaky on orthographic settle after #201 #222, Fix orthographic camera delivery and scene settle races #224 lineage) — #231 (
dd1d93f3) - medium
POST /api/v2/statechanging projection can leavecamera.projectionmisaligned (local smoke); projection radio shared across tabs — #232 (d41eb10b)
Display vs Operate (feeds #163)
- high 「Display Transforms」 lives under the Operations page (copy contradicts the Display/Operate split) — #233 (
f54322d1) - high Enabling repeat points users at a nonexistent 「Operation → Structural section」 — #234 (
4a3c6b9a) - medium Structural capabilities are still listed while remaining planned-only — #234 (
4a3c6b9a)
Analysis panel
- medium Analysis owns color / visibility, and is often blocked by
topology_enabled— #235 (2edd75a3) - medium Transform may auto-jump
formula_unit → unit_cell(jarring) — #236 (e5fcb620)
Latency / state
- high
agent-state-pollraces user edits and tab switches (pattern after #196; rename / in-flight sidebar path covered by Fix scene-rename settle race in Camera WebGL regression #226 + Keep in-flight sidebar edits ahead of the state poll #229; broader poll fence in #242 (44ceb8f)) - medium Figure settle / busy pill residuals (#197 lineage) — #237 (
4ecc0b5)
Notes
- Open GitHub issues that are mostly non-UI: [Feature Request] Optional native GPU raster backend for RenderPlan, large structures, and trajectories #161 (GPU), [Benchmark] Add end-to-end performance and scalability benchmark suite #129 (bench).
- Prefer small, focused PRs per checkbox; do not treat [Refactor] Strictly separate Display / Operate / Analysis: preserve display APIs, implement structural operations, and remove mixed implementations #163 alone as fixing Dash/WebGL delivery races.
- Status: all Part-of-Frontend UI interaction debt (races, Display/Operate copy, analysis/settle) #228 PRs squash-merged (Keep in-flight sidebar edits ahead of the state poll #229–Release the status bar as soon as a Dash request finishes #237, Keep state polls from overwriting newer edits and tab switches #242). Checklist complete; [Refactor] Strictly separate Display / Operate / Analysis: preserve display APIs, implement structural operations, and remove mixed implementations #163 remains a separate architecture issue.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
SchrodingersCattt commentedon Oct 25, 2026
Review rollup (Part of #228 batch)
callbacks_view.py1005>1000; WebGL ortho radio click noopMerge order hints: #231 → then fix/rebase #232; #233 → #234 / #236; #229 before or with #230; #235 / #237 independent.
COMMENT reviews posted on each PR head (no self-APPROVE).
SchrodingersCattt commentedon Oct 25, 2026
Follow-up snapshot (Asia/Shanghai ~20:30 Oct 25)
Re-checked open #229–#237. All nine still open,
mergeable_state=clean, draft=false, CI 9/9 on current heads (including Camera WebGL).43eaca74c1c3feba4810183059a2callbacks_view.py981 lines + WebGL ortho radio greenfb25d187d116ad912fa5a8262a9e4ed86baNo remaining needs-changes. Suggested merge order unchanged:
#231 → #232;#233 → #234 / #236;#229before or with#230;#235/#237independent.Keep commanded orthographic projection through frame settle (#231)
Mirror projection onto the camera and the active scene radio (#232)
Move Display Transforms into the Display tab (#233)
Stop advertising structural operations that are not implemented (#234)
Keep formula unit when the transform buttons add a row (#236)
Keep in-flight sidebar edits ahead of the state poll (#229)
Keep crowded scene tabs readable in a narrow sidebar (#230)
Keep polyhedron editing and analysis available when the overlay is off (
SchrodingersCattt commentedon Oct 25, 2026
Squash-merge status (Part of #228)
Authorized by user 「合吧」. Order used:
#231 → #232→#233 → #234 / #236→#229 → #230→#235→#237(blocked).7f65235e8029231edd1d93f3d41eb10bf54322d14a3c6b9a2edd75a3e5fcb62019b9b3fdafter update onto #235;test_semantic_atom_click_survives_gl_fallback(page.waitForFunctionTimeout 30000ms). Job: 121186799781. Did not force-merge.Checklist update
Checked: Scenes (poll overwrite / in-flight via #229; tab crowding #230); Camera (#231, #232); Display vs Operate (#233, #234×2); Analysis (#235, #236).
Left open: Latency broader
agent-state-pollraces; figure settle / busy pill (#237 pending green CI).Main tip after #235:
2edd75a38fafd71ecb7230aa5149f5b0b57e69e6.Keep semantic picks visible while frames and the status bar settle
SchrodingersCattt commentedon Oct 25, 2026
Latency update
#242 opened for the remaining high
agent-state-poll/ tab-switch / edit race (head39305c28). Review: approve-ready pending full CI (5/9 green at first look; Full tests + Camera WebGL still running).Still open after that: figure settle / busy pill via #237 (WebGL fix in flight).
SchrodingersCattt commentedon Oct 25, 2026
#237 update
#237 pushed
6136989— Camera WebGL selection/rebuild race fix (gesturets, remount keep-click, appearance reload). Status-bar release unchanged. Local WebGL 27 passed; GHA re-running. Review: approve-ready pending 9/9.Also open: #242 for the broader poll/tab race.
SchrodingersCattt commentedon Oct 25, 2026
#237 CI
#237 head
6136989: CI 9/9 green (incl. Camera WebGL).mergeable_state=clean. Awaiting merge authorization.SchrodingersCattt commentedon Oct 25, 2026
#242 CI
#242 head
39305c28: Camera WebGL red (other 8 checks green).Failures look settle/fence related, not the old selection race:
test_orthographic_unit_cell_drag_keeps_dap4_visible— ortho camera never arrives (radio stuck perspective; manystaleDrops/cameraStale)test_projection_radio_follows_scene_and_rejects_stale_store— tabionic_nacldid not painttest_mixed_projection_and_opacity_update_reaches_the_canvas(ws+http) — initial scene never settledtest_duplicate_and_rename_scene_controls_update_canvas/test_visible_mesh_and_bfdh_faces_share_native_picking— timeoutsSending the #242 agent back to diagnose whether the poll fence is over-dropping camera/view updates.
Release the poll fence after the first generation
SchrodingersCattt commentedon Oct 25, 2026
#242 CI
#242 head
e31b32a: CI 9/9 green (incl. Camera WebGL). Root cause was gen-0 fence never releasing → state polls blank for the page lifetime.mergeable_state=clean. Awaiting merge authorization.Also still open/green: #237 (
6136989).Release the status bar as soon as a Dash request finishes (#237)
Keep state polls from overwriting newer edits and tab switches (#242)
SchrodingersCattt commentedon Oct 26, 2026
Latency closed via merges (2026-10-26 Asia/Shanghai)
4ecc0b5— busy-pill / status-bar release + selection race fix44ceb8f— poll interaction fence (incl. gen-0 release)Both Latency checkboxes are now checked. All Part-of-#228 PRs are on
main. Architecture follow-up remains in #163 (unrelated to this checklist).