Reset or Show pressed while the task cube is turning does not stick
Maintainers usually reply within 1 day
Assessment
This issue has not been assessed yet.
Description
Observed behavior
In a task that names the cube explainer, such as the default rubik task, Reset and Show do not hold when they are pressed while a turn is still swinging. The cube first shows the solved cube or the typed position, and then the turns still queued land on it. Applying R U R' U' and pressing Reset during the first turn ends on 21375642212111 with "Moves so far: R U R' U'" instead of the solved 12345671111111. Showing 21653471111312 the same way ends on 12673452213311, a different position from the one typed. docs/task-mode.md says a code typed from the public cases changes all three views, so a learner checking a public case against the cube is shown the wrong position.
Expected behavior
Reset ends on the solved cube and Show on the typed position, whatever was still turning; the turns asked for before either button is pressed are dropped.
Reproduction
- Open a task that names the
cubeexplainer and start the attempt, so the cube is shown. - Type
R U R' U'into the cube's algorithm box and press Apply. - While the first turn is still swinging (each turn takes about a quarter of a second), press Reset.
- Wait a second: the cube turns again, the history reads "Moves so far: R U R' U'", and the code reads
21375642212111. - Repeat with
21653471111312typed into the position box and Show pressed in step 3: the code ends on12673452213311.
I ran these steps in Chromium on the task page as tests/browser/task-workspace.test.js serves it, with that file's stub task agent, camera and face detector; the cube is the page's own web/cube-view.js.
CodeTrial version
cargo run -- --version does not build here: the webrtc-sys C++ build fails with this machine's toolchain. The page comes from a checkout of main at 3bbbcf5 (3bbbcf5d924bfb22ececc82ca2543d71f810b225).
Environment
OS: Ubuntu 24.04.3 LTS
Browser: Chromium 156.0.8078.4 (the Playwright build)
Language: not applicable
Interview loop: task mode, the default rubik task
Problem: not applicable
REACTO or STAR step: not applicable
Reconnect: not applicable
Sanitized evidence

run() queues each turn on busy and applies it after await swing(move) to whatever state is current by then (web/cube-view.js L390-L407). The Reset handler (L257-L262) and the Show handler (L304-L314) assign state and history at once, and neither cancels nor waits for the turns still queued, so those land on the replacement cube. The cube's state stays in the page; nothing is sent to the runtime, Jim or the review.
A fix that drops the turns asked for before a Reset or Show, with a browser test that fails on main, follows as a pull request.
Public data confirmation
- I removed credentials, session tokens, candidate recordings, and personal interview content from this public report.
- Dominant language
- Rust
- Stars
- 215
- Forks
- 141
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 232
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from sysprog21/codetrial
-
Audio output can be confirmed without playing a test soundPossibly taken @ChenYingHan1121 claimed this 11 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
sysprog21/codetrial#359 · 9 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Treat low-evidence candidate speech as unassessedPossibly taken @Danielncku claimed this today. Open
Difficulty 5/5 Over a week Newbie friendliness 35/100
sysprog21/codetrial#553 · 1 comment · 1 assignee ·
Maintainers usually reply within 1 day
-
Web lobby cannot reopen Setup after configurationPossibly taken @YEH-YU-YANG claimed this 3 days ago. Open
sysprog21/codetrial#525 · 3 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Offer a way back to Setup from the lobbyPossibly taken @Patriciaath999 claimed this 4 days ago. Open
sysprog21/codetrial#513 · 4 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Jim's stage covers the editor, and Hide avatar does not free the spacePossibly taken @Phonlin claimed this 4 days ago. Open
sysprog21/codetrial#512 · 3 comments · 1 assignee ·
Maintainers usually reply within 1 day
All issues in sysprog21/codetrial
Similar issues
-
bug priority: low ui
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
storytold/photocraft#10370 · 1 comment ·
Maintainers usually reply within 1 day
-
area:doc bug in progress needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
bherbruck/solvecraft#9634 · 2 comments · 1 reaction ·
-
inflate: total_in uses plain += on c_ulong (32-bit on Windows), panics in debug for streams > 4 GiBOpen
Difficulty 1/5 Under an hour Newbie friendliness 85/100
trifectatechfoundation/zlib-rs#570 · 1 comment ·
-
bug discord-triage
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
LanternOps/breeze#10755 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
aranya-project/aranya#803 ·