Skip to main content

max / audiofiles

Correct the bytes-in gap: it has no consumers Going to file `settings`'s recorded gap on quasicoherent with its consumers counted turned up none. "`FieldKind::File` says what may be picked, and nothing carries the picked file's bytes to a route on this host" was written before `ec92f9cb` shipped `Outcome::Locate` in quasi 0.60, and it describes a shape nothing in this app needs. Every picker here hands its callback a path and reads host-side. Import Theme is `makeover::import_theme(&path, &custom_dir)`; the classifier's import is `classifier_import_afcl(&path)`. `Sought::File { accept }` covers both exactly, and `panel::locate` has served all three `Sought` shapes with the accept-list plumbed through since it landed. Same failure as the Storage section's "it is the filesystem", and the same lesson: a refusal recorded against a vocabulary keeps its wording after the vocabulary moves. Three headers corrected -- `settings`, `classifier` (which repeated the claim while it was being written) and `mod`, which now carries the measured list of the seven picker sites still owed a conversion rather than a stale "the other six". Import Theme is unblocked ordinary work and `3a20e581` carries the route pair. The seven conversions are `18888e8e`.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-25 22:18 UTC
Signed with PGP, not checked
Commit: 85a1ba1b16c1fe4f26998ce1cce96a158bd6c1d5
Parent: c7f49f5
3 files changed, +37 insertions, -12 deletions
@@ -90,12 +90,17 @@
90 90 //! Export writes a file the reader names a place for, and import reads one.
91 91 //! Export could be [`Outcome::File`] — [`settings`](super::settings)'s theme
92 92 //! export is that member's first consumer here — but the classifier's export is
93 - //! built on a worker thread and answers through `BackendEvent`, so the route
94 - //! has no bytes to hand over when it answers. Import is the gap
95 - //! [`settings`](super::settings) already records: `FieldKind::File` says what
96 - //! may be picked and nothing carries the picked file's bytes to a route on this
97 - //! host. Both are ordinary acts, and both are the same host plumbing the import
98 - //! flow's four doors take.
93 + //! built on a worker thread and answers through `BackendEvent`, so the route has
94 + //! no bytes to hand over when it answers.
95 + //!
96 + //! **Import is a conversion owed, not a gap.** It was written here citing
97 + //! `settings`'s bytes-in paragraph, and that paragraph turned out to be stale
98 + //! (measured 2026-08-25): `classifier_import_afcl` takes a *path*, so
99 + //! [`Outcome::Locate`]'s `Sought::File` covers it exactly, the way the Storage
100 + //! section's relocation already works. Both of these stay ordinary acts for now
101 + //! and both are on the list in [`quasi`](super)'s header.
102 + //!
103 + //! [`Outcome::Locate`]: quasi_router::Outcome::Locate
99 104 //!
100 105 //! [`Act::confirm`]: quasi_router::Act::confirm
101 106 //! [`Classifier::testable`]: super::Classifier::testable
@@ -110,9 +110,19 @@
110 110 //! says a place is wanted, the host performs the picker, and a handle comes
111 111 //! back. The export destination is the first site here to take it, because the
112 112 //! export flip is what the ruling was measured for; `panel::locate` is the host
113 - //! half and serves every described window. The other six are still ordinary
114 - //! intents, which is a conversion each of them is owed rather than a shape they
115 - //! were argued into.
113 + //! half, serves every described window, and handles all three of
114 + //! [`Sought`](quasi_router::Sought) with the accept-list plumbed through.
115 + //!
116 + //! **Seven picker sites are still ordinary intents** (measured 2026-08-25:
117 + //! `panel.rs` 1122, 1127, 1130, 1149, 1469, 1685, 1693 — the import flow's four
118 + //! doors, Locate missing files, and the classifier's `.afcl` export and
119 + //! import). [`storage`] converted two more when it landed. Each of the seven is
120 + //! a conversion owed rather than a shape it was argued into.
121 + //!
122 + //! **None of them wants bytes.** Every one takes a path and reads it host-side,
123 + //! which is worth stating because `settings`'s header claimed the opposite about
124 + //! Import Theme and was written before `Outcome::Locate` existed. There is no
125 + //! bytes-in gap in this app, and no site waiting on one.
116 126 //!
117 127 //! There is a second half, filed with the import flow: a route that hands off to
118 128 //! the host has no [`Outcome`](quasi_router::Outcome) meaning "nothing here
@@ -61,9 +61,19 @@
61 61 //! now and is this host's first consumer of the member; `panel::hand_over` is
62 62 //! the host half.
63 63 //!
64 - //! Import Theme stays out, and it is a different gap: `FieldKind::File` says
65 - //! what may be picked, and nothing carries the picked file's *bytes* to a sync
66 - //! route on this host. That is host plumbing rather than vocabulary.
64 + //! Import Theme stayed out on a different reading, and **the reading was wrong**
65 + //! (measured 2026-08-25). It said `FieldKind::File` names what may be picked and
66 + //! nothing carries the picked file's *bytes* to a route on this host. Import
67 + //! Theme does not want bytes: it is
68 + //! `makeover::import_theme(&path, &custom_dir)`, which takes a **path** and does
69 + //! its own reading. So does every other picker left in this app.
70 + //!
71 + //! `Outcome::Locate` answers exactly that — `Sought::File { accept }` asks for a
72 + //! file, the host runs the picker, and a handle comes back — and `panel::locate`
73 + //! has served all three shapes since quasi 0.60. The paragraph was written
74 + //! before that shipped and describes a gap with no consumer. Import Theme is
75 + //! ordinary work: the same `locate`-then-act pair the Storage section's
76 + //! relocation already uses.
67 77 //!
68 78 //! # The finding this port adds
69 79 //!