recording: drag_tools (grab and drag the handles)#14
Merged
Conversation
Sixth tutorial recording. drag_tools carries three drag tools - a draggable point, a vertical threshold line, and a rectangle region - and the interaction it teaches is the grab-and-drag: press on a handle and move it, and its bound value updates live every frame. Driven beat by beat with REAL synthetic input, each beat self-verifying that the gesture changed the bound payload field (drag_through_voice -> record_check_changed), so a missed grab or a frozen handle aborts at teardown. The region gets TWO beats, because DragRect has two modes (caught in review): grab the body near the center to MOVE the whole rectangle (all four bounds travel together), or grab a CORNER to RESIZE it (only that corner moves). The body beat targets the bbox center; the resize beat targets the bbox's bottom-right corner (z,w) directly, since a center press would only move it again. - tests/integration/record_drag_tools.das: the voiced driver (intro + point + line + rect-move + rect-resize), each a real grab from the handle's registered screen bbox. - doc/source/tutorials/drag_tools.rst: + .. video:: drag_tools.mp4 and a Walkthrough section spelling out the rect's move-vs-resize modes. - doc/source/_static/tutorials/drag_tools.mp4: the recording (1.18 MB, 53.3s, 1436 frames, 0 dropped, Emma voice + -16 dB bed). The headless guard is the existing test_drag_tools.das. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds the sixth narrated tutorial walkthrough for drag tools by introducing a new integration recording driver that performs real synthetic grab-and-drag interactions (point, threshold line, and rect move/resize) with per-beat self-verification, and documents the walkthrough with an embedded video.
Changes:
- Added a new integration recording driver that drags the point, threshold line, ROI body (move), and ROI corner (resize) while asserting the bound payload fields change.
- Extended the
drag_toolstutorial page with a “Walkthrough” section and embeddeddrag_tools.mp4.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| tests/integration/record_drag_tools.das | New voiced, self-verifying synthetic-input recording for the drag_tools tutorial (point/line/rect move+resize). |
| doc/source/tutorials/drag_tools.rst | Adds a Walkthrough section with an embedded tutorial video and a short interaction description. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+75
to
+77
| var sr2 = snapshot(app) | ||
| let bb = find_widget(sr2, roi)?["bbox"] | ||
| let crn = (bb?["z"] ?? 0.0f, bb?["w"] ?? 0.0f) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sixth tutorial recording.
drag_toolscarries three drag tools — a draggable point, a vertical threshold line, and a rectangle region — and the interaction it teaches is the grab-and-drag: press on a handle and move it, and its bound value updates live every frame. Driven beat by beat with real synthetic input, each beat self-verifying that the gesture changed the bound payload field (drag_through_voice→record_check_changed), so a missed grab or a frozen handle aborts at teardown.The region gets two beats, because
DragRecthas two modes (caught in review):(z,w)directly, since a center press would only move it again.Files
tests/integration/record_drag_tools.das— the voiced driver (intro + point + line + rect-move + rect-resize), each a real grab from the handle's registered screen bbox.doc/source/tutorials/drag_tools.rst—.. video:: drag_tools.mp4+ a Walkthrough section spelling out the move-vs-resize modes.doc/source/_static/tutorials/drag_tools.mp4— the recording (1.18 MB, 53.3 s, 1436 frames, 0 dropped, Emma voice + −16 dB bed).Verification
ok:true, 1436 frames, 0 dropped; all five self-verification gates passed (bbox-exists + pointx+ linevalue+ rect-movex_min+ rect-resizex_maxall changed).The headless guard is the existing
test_drag_tools.das.🤖 Generated with Claude Code