G1 Interface tiers
- Area
- G — Cross-cutting UX
- Audience
- both
- Kind
- feature
- Status
- accepted
- Maturity
- building
- Labels
- cli, tui, web, ux
The feature in the specification · Read at
Requirements
Every action MUST be available from every surface, except where intrinsically unsuited, and such exceptions MUST be documented.
- locked by
- 0.9.0 met
- recorded done
- lemonfibercrates/lemonfiber-api/src/actions.rscrates/lemonfiber-api/src/read/table.rscrates/lemonfiber/src/reaching.rscrates/lemonfiber/tests/architecture/surface_parity.rscrates/lemonfiber/src/acting.rscrates/lemonfiber-core/src/door.rs
- recorded partial
- lemonfiber-webdocs/surface-parity.md
- cited by
- lemonfiber@ff8d785388lemonfiber@eb40fb4d4alemonfiber@db062d5fb5lemonfiber@5c730c030clemonfiber@beeb19c031lemonfiber@0dd7fac55alemonfiber@4f823e25a9lemonfiber@56102d558elemonfiber@4bd2620ef3lemonfiber@24c209004flemonfiber@5b953deaf9lemonfiber@b837d173b7lemonfiber@9a797b4369lemonfiber@2b0be2789blemonfiber@1475da4a91lemonfiber@3bb676e171lemonfiber@e730477db5lemonfiber@dafc6fe3c5lemonfiber@cfc232b551lemonfiber@3a76ae63eelemonfiber@a3d46f746blemonfiber@0ef1fe21e0lemonfiber@d38ad27bcdlemonfiber@64d51b40c8lemonfiber@08d714f9aalemonfiber@80d1ea425clemonfiber@9d1897183alemonfiber@33e50a86a6lemonfiber@c96ff1e459lemonfiber-web@4f98cf9f88lemonfiber-web@34378e5990lemonfiber-web@9b97f303f3lemonfiber-web@2ab51155b3lemonfiber-web@974eda76dblemonfiber-web@5b00049d81lemonfiber-web@c3a062ff50lemonfiber-web@f729d8f300lemonfiber-web@aa3b7765fblemonfiber-web@1ab5f7f576lemonfiber-web@0d7d0ef0f0lemonfiber-web@73d7122c6clemonfiber-web@a25912344clemonfiber-web@56e6da0bf6lemonfiber-web@ef36daf042lemonfiber-web@131dd35429lemonfiber-web@c4ce6f1d87lemonfiber-web@70c81d3715lemonfiber-web@a3ca9e06e2lemonfiber-web@0251bc9a53lemonfiber-web@2b0e739bc7lemonfiber-web@7e6405949alemonfiber-web@2ff501a6felemonfiber-web@b4b1da0c89lemonfiber-web@dcbcad7a05lemonfiber-web@4948892fc7lemonfiber-web@84b48140aflemonfiber-web@7d72c5398dlemonfiber-web@b9df955d77lemonfiber-web@5669c50d30lemonfiber-web@98d0104637lemonfiber-web@089b41c204lemonfiber-web@d5e0d3777alemonfiber-web@d5933e1338lemonfiber-web@64f1b96699lemonfiber-web@83d1fb8784lemonfiber-web@93aca95f42lemonfiber-web@328cf29f61lemonfiber-web@dfe6328783lemonfiber-web@0707ed42e0
All surfaces MUST drive the same underlying logic; no surface MAY implement behaviour independently.
- locked by
- 0.9.0 met
- recorded done
- lemonfibercrates/lemonfiber-api/src/jobs.rs
- recorded partial
- lemonfiber-web.dependency-cruiser.cjssrc/api
- cited by
- lemonfiber@5c9aac5d28lemonfiber@4f823e25a9lemonfiber@56102d558elemonfiber@4bd2620ef3lemonfiber@b837d173b7lemonfiber@9a797b4369lemonfiber@d38ad27bcdlemonfiber@2ca15162f6lemonfiber@5911b3a552lemonfiber-web@ab3524527blemonfiber-web@985e71d6f6
Bare invocation MUST open the TUI when attached to a terminal, and MUST print help when not.
- locked by
- 0.9.0 met
- recorded done
- lemonfibercrates/lemonfiber/src/cli.rs
- cited by
- lemonfiber@fcc8f38a95
lemonfiber MUST NOT block on input when stdin is not interactive.
- locked by
- 0.9.0 met
- recorded done
- lemonfibercrates/lemonfiber/src/prompt.rs
- cited by
- lemonfiber@8bc8c65cfa
The web UI MUST be started explicitly and MUST NOT run persistently by default.
- locked by
- 0.9.0 met
- recorded done
- lemonfibercrates/lemonfiber/src/ui.rscrates/lemonfiber-api/src/jobs.rs
- cited by
- lemonfiber@5911b3a552
The web UI MUST bind to loopback by default under the security policy.
- locked by
- 0.9.0 met
- recorded done
- lemonfibercrates/lemonfiber/src/ui.rs
- cited by
- lemonfiber@482a7476ac
CLI output MUST offer a machine-readable form as a stable, versioned interface.
- locked by
- 0.9.0 met
- recorded done
- lemonfibercrates/lemonfiber/src/cli.rs
- cited by
- lemonfiber@d0a59a3c0alemonfiber@97eba0a44dlemonfiber@58f7596b3c
Exit codes MUST be meaningful and documented.
- locked by
- 0.9.0 met
- recorded done
- lemonfibercrates/lemonfiber/src/exit.rs
- cited by
- lemonfiber@fb11824654
The TUI MUST function without true-colour support, without special fonts, and at modest terminal sizes.
- locked by
- 0.9.0 met
- recorded done
- lemonfibercrates/lemonfiber/tests/architecture/modest_terminal.rs
- cited by
- lemonfiber@ebab0d89be
NO_COLOR MUST be honoured.
- locked by
- 0.9.0 met
- recorded done
- lemonfibercrates/lemonfiber/src/logs.rs
- cited by
- lemonfiber@f9289559f8
Failure to launch a browser MUST NOT fail the command; the URL MUST be printed.
- locked by
- 0.9.0 met
- recorded done
- lemonfibercrates/lemonfiber/src/ui.rs
- cited by
- lemonfiber@482a7476ac
Concurrent surfaces MUST reflect the same state, and lifecycle operations MUST be serialised across them.
Non-interactive invocation lacking required input MUST fail naming the required flags.
- locked by
- 0.9.0 met
- recorded done
- lemonfibercrates/lemonfiber/src/prompt.rs
- cited by
- lemonfiber@3f134118f5
Setup MUST be completable from all three surfaces that run on the host machine. It is not required of the companion surface, for the reason recorded above and in N1-R4.
Every surface that shows pairing material, an invitation's sign-in address, join link or decline address, the front door address, a device hand-off's address or one of its clients' codes, or a minted key's secret MUST offer each as a QR code beside its text, drawn on that surface from the text exactly as the stack gave it.
- locked by
- 0.18.0 unmarked
- recorded partial
- lemonfibercrates/lemonfiber/src/render/qr.rscrates/lemonfiber/src/render/invitation.rscrates/lemonfiber/src/render/invitation/handoff.rscrates/lemonfiber/src/render/keys.rscrates/lemonfiber/src/render/companion.rscrates/lemonfiber/src/render/door.rs
- cited by
- lemonfiber-companion@e22d29101b