| 43 |
43 |
|
which driver is configured and how migrations run, and queries stay written
|
| 44 |
44 |
|
against the driver directly.
|
| 45 |
45 |
|
|
| 46 |
|
- |
The two stores are not one query layer, and quasi does not pretend otherwise
|
| 47 |
|
- |
(settled 2026-08-07). Embedded is `rusqlite` and synchronous; hosted Postgres is
|
| 48 |
|
- |
`sqlx` and async. A stack claiming a single query layer would have the
|
| 49 |
|
- |
scaffolder generate the wrong one.
|
|
46 |
+ |
The two stores are not one query layer, and quasi does not pretend otherwise.
|
|
47 |
+ |
Embedded is `rusqlite` and synchronous; hosted Postgres is `sqlx` and async. A
|
|
48 |
+ |
stack claiming a single query layer would have the scaffolder generate the wrong
|
|
49 |
+ |
one.
|
| 50 |
50 |
|
|
| 51 |
51 |
|
Boundaries already owned elsewhere stay where they are and are referenced rather
|
| 52 |
52 |
|
than absorbed: `makeover` and `makeover-geometry` for colour and spacing,
|
| 94 |
94 |
|
`-server` are a window and a listener over the same router. Both serve the same
|
| 95 |
95 |
|
screens and neither knows the other exists.
|
| 96 |
96 |
|
|
| 97 |
|
- |
## Status
|
| 98 |
|
- |
|
| 99 |
|
- |
The router, both host adapters, the webview renderer, the store's migration
|
| 100 |
|
- |
runner and the scaffolder are implemented.
|
|
97 |
+ |
## The parts
|
| 101 |
98 |
|
|
| 102 |
99 |
|
The router carries the contract in full: one address space where the verb
|
| 103 |
100 |
|
separates a read from a write, a screen tree composed from `makeover-layout`'s
|
| 106 |
103 |
|
because the two renderers shipping first call it inside a frame and an event
|
| 107 |
104 |
|
loop.
|
| 108 |
105 |
|
|
| 109 |
|
- |
`quasi-http` is what the two hosts turned out to share once there were two of
|
| 110 |
|
- |
them. Decoding a query string and a form body, mapping an error's class to a
|
| 111 |
|
- |
status, and naming a fragment's region in an `HX-Retarget` header. The transport
|
|
106 |
+ |
`quasi-http` is what the http-shaped hosts share. Decoding a query string and a
|
|
107 |
+ |
form body, mapping an error's class to a status, and naming a fragment's region
|
|
108 |
+ |
in an `HX-Retarget` header. The transport
|
| 112 |
109 |
|
is htmx 4, which is what an emitted document links and what the response headers
|
| 113 |
110 |
|
here are checked against. Nothing in it knows which host it is in, and nothing
|
| 114 |
111 |
|
in it is async.
|
| 134 |
131 |
|
what it is for, whether it ships on and what its knobs are; the configuration
|
| 135 |
132 |
|
follows from the declaration, keys, postures, defaults and a described settings
|
| 136 |
133 |
|
pane, rather than being written beside it in three places. Delivery is a host
|
| 137 |
|
- |
adapter of one method, because everything else a host would answer for itself —
|
| 138 |
|
- |
consulting the kind's `enabled` key, suppressing a duplicate, staying quiet
|
| 139 |
|
- |
about what came due while the app was shut, bounding the memory that takes — is
|
|
134 |
+ |
adapter of one method, because everything else a host would answer for itself
|
|
135 |
+ |
(consulting the kind's `enabled` key, suppressing a duplicate, staying quiet
|
|
136 |
+ |
about what came due while the app was shut, bounding the memory that takes) is
|
| 140 |
137 |
|
shared and belongs to nobody's renderer.
|
| 141 |
138 |
|
|
| 142 |
|
- |
`quasi-store` is what `sqlx::migrate!` used to be. SQL files embedded at build
|
| 143 |
|
- |
time, applied once, recorded in a ledger with a checksum, so an applied
|
| 144 |
|
- |
migration is immutable. It is here because goingson and Balanced Breakfast each
|
| 145 |
|
- |
hand-wrote one after leaving `sqlx-sqlite`, and a generated app would have been
|
| 146 |
|
- |
the third.
|
|
139 |
+ |
`quasi-store` is the embedded store's migration runner. SQL files embedded at
|
|
140 |
+ |
build time, applied once, recorded in a ledger with a checksum, so an applied
|
|
141 |
+ |
migration is immutable.
|
| 147 |
142 |
|
|
| 148 |
|
- |
`quasi` is the scaffolder. It followed the router on the condition that the
|
| 149 |
|
- |
router's shape be proven against two hosts, which it was. Its template is real
|
| 150 |
|
- |
Rust and real manifests under `crates/quasi/template/`, excluded from the
|
| 151 |
|
- |
workspace and embedded in the binary — readable and diffable, rather than a
|
| 152 |
|
- |
liquid dialect that compiles nowhere.
|
|
143 |
+ |
`quasi` is the scaffolder. Its template is real Rust and real manifests under
|
|
144 |
+ |
`crates/quasi/template/`, excluded from the workspace and embedded in the
|
|
145 |
+ |
binary, so it is readable and diffable rather than a liquid dialect that
|
|
146 |
+ |
compiles nowhere.
|
| 153 |
147 |
|
|
| 154 |
148 |
|
Design and sequencing live in the wiki note `quasi-overview`; the backlog is in
|
| 155 |
149 |
|
GoingsOn under project `quasicoherent`.
|