Scope dial polish (Codex): hero stays closest-first + visible Clear

- Hero constraint: _pick_lead now runs only within the CLOSEST non-empty section of a
  personalized Brief, so a "gentler" wider-region/world story can never be floated into
  the hero slot above a local one. Only widens if the closest section is empty.
- Dial gains a visible Clear (alongside Change) so a reader never feels locked into
  personalization; "World" stays the keep-home-but-go-global option.

366 tests green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
jay
2026-06-19 22:06:06 -04:00
parent 3486f3102a
commit b4b02b5050
3 changed files with 16 additions and 3 deletions
+5 -2
View File
@@ -738,7 +738,10 @@
<button class="sd-btn" class:on={homeScope === s} onclick={() => setScope(s)}>{label}</button>
{/each}
</div>
<button class="linkish sd-change" onclick={openHomeEditor}>Change home</button>
<span class="sd-actions">
<button class="linkish" onclick={openHomeEditor}>Change</button>
<button class="linkish" onclick={clearHome}>Clear</button>
</span>
</div>
{/if}
<section class="rise">
@@ -1047,7 +1050,7 @@
background: var(--bg); color: var(--ink); cursor: pointer; border-right: 1px solid var(--line); }
.sd-stops .sd-btn:last-child { border-right: none; }
.sd-btn.on { background: var(--accent-soft); color: var(--accent-deep); }
.sd-change { margin-left: auto; }
.sd-actions { margin-left: auto; display: inline-flex; gap: 12px; }
.feed-section { grid-column: 1 / -1; margin: 8px 0 2px; font-family: var(--label); font-size: 0.78rem;
text-transform: uppercase; letter-spacing: 0.06em; color: var(--muted); }
.grid > .feed-section:first-child { margin-top: 0; }