Skip to content

Master-<config> editing affordance: the unseen-master problem (book + website masters) #468

Description

@abalter

What. The settings gear's document tier rewrites the <config> of the edited buffer — that is the tier's whole point (see-what-you-set: the kwarg appears in the source pane and the preview reflects it). On a book, the live loop edits the per-chapter <chapter src> files; on a website, the loop edits the current page. In both, the master <config> — where the book-navigation family, the website-scope options (sidebar, repo, playground), and the site-wide display defaults live — is in no editor buffer, so no gear control can rewrite it visibly. This is the unseen-master problem (#443/#445 record it; browser.js's document-tier gate documents the exclusion in code).

Ruling (Ariel, 2026-07-17, #445 Phase-0 dialog). One issue covers both the book master and the website master — it is the same problem, and the affordance that solves one should solve the other. Filed per that ruling as the follow-up #445 deferred to.

What #445 shipped without it. The expanded document tier (gear metadata in config-options-doc.js) is article-surface-only. Deferred behind this issue:

  • the whole Book navigation family: chapter-nav, chapter-nav-depth, chapter-nav-side, page-navigation, cover, back-to-top, on-this-page, on-this-page-side, combined-nav (split-by additionally has only one implemented value);
  • the website-scope master options: sidebar (repo/playground are also free-text, so likely never gear controls).

The design question this issue owns. Where does a master-<config> write go, and how does the author see it happen? Candidate shapes (undecided — the fix slice's call, with Ariel): a master-editor surface (open the master as an editable buffer); a scoped rewrite with a source-reveal affordance (the gear writes the master file and shows the diff/line); or a book/website "document settings" page. Whatever the shape, the settings-spec rule holds: no control ships ahead of its read path on every surface it appears (notes/specs/settings.md).

The deliberate gate. config-options-doc.test.js pins gear controls to scope: 'all' — a gear field on a book-only/website-only key fails the guard today. Widening that assertion is this issue's first visible step, so the widening is a decision, not a drift.

Cross-refs. notes/specs/settings.md ("The unseen-master exception" + the expanded-tier section), #445 (the expansion this was split from), #443 (the write-without-read class the rule descends from).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions