feat: persist & restore per-project input mode (#14)
The input mode always started in simple; a learner who quit in advanced had to re-toggle every launch. Store the mode per-project in project.yaml (project.mode:, optional, default simple) and restore it on every open. Mode is live UI state, not schema: the worker stamps the current mode into project.yaml on every write, so a later command rewrites the live value rather than clobbering it — no db round-trip needed. The mode is persisted on unload (quit + project switch) so the mode you leave a project in is always what reopens; the `mode` command also persists immediately. A switch saves the outgoing mode, then restores the incoming project's stored mode. New --mode simple|advanced CLI flag (precedence --mode > stored > simple; combines with --resume). A teacher can ship a project that opens in advanced mode and export it to students (the mode travels in the zip). ADR-0015 Amendment 1; ADR-0003 note; help banner; requirements L1b.
This commit is contained in:
@@ -598,6 +598,16 @@ since ADR-0027.)
|
||||
exclusive with a positional path argument (ADR-0015 §7).
|
||||
`last_project` is rewritten on every successful project
|
||||
open (startup, load, new, save as, import).
|
||||
- [x] **L1b** Per-project input-mode restore (issue #14,
|
||||
ADR-0015 Amendment 1). The input mode is stored in
|
||||
`project.yaml` (`project.mode:`), restored on every open, and
|
||||
persisted on a `mode` change and on unload (quit / project
|
||||
switch) — so the mode you leave a project in is what reopens.
|
||||
A teacher can ship a project that opens in advanced mode; a
|
||||
learner's last-used mode is restored per project. New
|
||||
`--mode simple|advanced` CLI flag (precedence `--mode` >
|
||||
stored > `simple`; combines with `--resume`). Independent of
|
||||
the `history.log` input-history hydration piece of Iteration 6.
|
||||
- [~] **L2** Submit a command alongside project load — deferred,
|
||||
not v1.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user