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>
3 files changed,
+37 insertions,
-12 deletions
| 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 |
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 |
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 |
|
//!
|