0010 — Alternative-calendar visibility default differs by surface¶
Status: Accepted
Context¶
A decoded date can be annotated with alternative calendars — 中華民國 (ROC), 和曆 (Japanese era), Buddhist, Hebrew, Islamic (tabular civil), and Persian (Solar Hijri). Two surfaces render them, and each has a different default for how many show before the user configures anything:
- the
timeglyph-lensGUI overlay, an interactive tool the user leaves open and explores, and - the
timeglyph calCLI command, a terse, scriptable one-shot.
The question is what a user sees with zero configuration.
Decision¶
The default is deliberately opposite on the two surfaces:
- Lens GUI — opt-out (all six ON).
CalendarVisibility::default()and the per-field#[serde(default = "enabled")]are alltrue(lens/src/settings.rs), so a fresh user sees every calendar and hides the ones they don't want via the visible Settings checkboxes. A persistedsettings.jsonoverrides this, so a returning user sees whatever subset they last saved. - CLI
cal— opt-in (none). The command renders no alternative calendars until the user names them with--calendars.
The rationale is the persona (cf. "Design for the Human Using It"): the GUI is exploratory and its toggles are discoverable, so show everything and let the user pare down. The CLI is composable and its output is often piped, so keep the default compact and require an explicit flag to add columns.
Consequences¶
- The two surfaces intentionally disagree on default visibility — this is by design, not a bug. A GUI showing "only 2 calendars" is a persisted user choice, never the default.
- Flipping either default is a one-line change, but would collapse the opt-out/opt-in split and the persona reasoning behind it.
- The lens still persists per-calendar choices; the CLI is stateless and reads
--calendarseach invocation.