Skip to main content

max / audiofiles

Record why drag-out is not described, where the code is Ruled 2026-09-01 in the vocabulary audit: this stays outside the description permanently rather than waiting for a member. It half-fails the test `Choosing`'s doc sets. The meaning survives on a terminal and is already said, since the described row menu carries Copy Path, Reveal and Export. What only a pointer host can do is the drag session itself, which no description can start and whose destination the app never learns, so a member would be naming the gesture. In the header rather than only in the wiki, so the next reader to wonder finds the answer beside the 738 lines that prompted the question.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session
https://claude.ai/code/session_01MptwXZ8k65v19rFmdGAyki
Author: Max Johnson <me@maxj.phd> · 2026-09-01 22:13 UTC
Signed with PGP, not checked
Commit: 3f5e70d1ef7f05ca790d0769f95c46f38e1a71cf
Parent: 85c30ef
1 file changed, +17 insertions, -0 deletions
@@ -7,6 +7,23 @@
7 7 //! Platform backends:
8 8 //! - macOS: `NSDraggingSession` via objc2
9 9 //! - Windows: `DoDragDrop` + COM `IDataObject`/`IDropSource` with `CF_HDROP`
10 + //!
11 + //! # Not described, and it is a ruling rather than a gap
12 + //!
13 + //! Ruled 2026-09-01 while auditing the quasi vocabulary. This stays outside the
14 + //! description permanently, and the reason is the test `Choosing`'s doc sets: a
15 + //! member has to name what a gesture *meant* rather than the gesture, and it has
16 + //! to be something a terminal can implement.
17 + //!
18 + //! Drag-out half-fails that. The meaning survives on a terminal and is already
19 + //! said: the described row menu carries Copy Path, Reveal and Export, which are
20 + //! the same intent by other means. What only a pointer host can do is the drag
21 + //! session itself, which no description can start and whose destination the app
22 + //! never learns. A member for it would be naming the gesture, which every prior
23 + //! ruling in this vocabulary refuses.
24 + //!
25 + //! Neither MNW nor goingson has a drag-out surface, so this covers the tree
26 + //! rather than one app.
10 27
11 28 use std::path::{Path, PathBuf};
12 29 use std::sync::atomic::{AtomicBool, AtomicU64, Ordering};