One control per kind of setting, and no paragraphs under any of them
Three explanatory paragraphs were left on the session settings screen: what auto-resume does, what Move costs, what changing the thinking level costs. The last two are consequences of an action, so they are `RestartDialog` now -- the same question the machines tab already asks before it reloads a model, and now in one file rather than private to that screen. The first is gone; the switch beside it says what it is. Thinking was two controls: a row of chips for a llama session, where it is a provider-declared choice, and a picker button for a Claude session, where it is the session's own effort. One kind of information drawn two ways, decided by which code path the value came down. A choice is `PickerRow` in a list of settings and `ChipGroup` on a form being filled in, and which of the two is the screen's to say rather than the provider's. `warnAboutRestart` went with them. It marked a control "(on restart)" and wrote a sentence under the form, and it had nothing to mark: every session param is `restart: false` and every model param is `restart: true`. The field now decides whether saving a model's settings stops to ask, which is the question it was always about. The wait's bar keeps the status row's own margin instead of running to the edges of the glass. Checked on the emulator against the sandbox: an echo, a claude-cli and a llama session, each with no paragraph left under a setting and thinking drawn the same way in all three; "Think high?", "Move to /tmp?" and the model settings dialog all stop to ask. ktfmt, compile, lint and the unit tests are clean.
This commit is contained in:
1 parent
5626a7d595
commit
3dbf04f5ec
7 files changed
+178
-132
No files matched your search
@@ -185,8 +185,19 @@ Module-by-module intent is in PLAN.md's "Backend layout".
|
||||
line's worth. Material's outlined field spends the height of three lines to
|
||||
hold one, which on a form of a dozen settings is a screen and a half of
|
||||
scrolling. What is *not* shrunk is the value -- the framing is what was
|
||||
expensive. A field's `hint` is what leaving it blank means, above the box
|
||||
with the label, because inside it is gone the moment anybody types.
|
||||
expensive. A field's `hint` is what leaving it blank means, drawn inside the
|
||||
empty box: **a setting is a title and a control and nothing else**, so no
|
||||
explanatory line sits between them and no paragraph sits under them.
|
||||
**What a setting costs is asked rather than written down** -- `RestartDialog`
|
||||
is that question wherever it comes up (a model's settings, the shared
|
||||
server's, moving a session's directory, changing its thinking level), because
|
||||
each of them ends something that is running, and a sentence beside the control
|
||||
is read after the decision if at all.
|
||||
**One kind of information gets one control.** A choice is `PickerRow` in a
|
||||
list of settings and `ChipGroup` on a form being filled in, and which of the
|
||||
two is the screen's to say (`ProviderParamFields`' `choices`) rather than the
|
||||
provider's -- a llama session's thinking level and a Claude session's have to
|
||||
look the same.
|
||||
**Session settings is a screen with two tabs** (`SessionSettingsScreen.kt`),
|
||||
drawn over the session like the file explorer so the session stays composed.
|
||||
The second tab is `ProviderScreen` itself -- the same composable the machines
|
||||
|
||||
Reference in new issue
Block a user