Skip to content

Sync lgse/strata#1752–#1776: density sliders, preview scrollbar, chooser save names - #32

Merged
wmfeht merged 20 commits into
mainfrom
claude/friendly-cray-5931o5
Oct 24, 2026
Merged

wmfeht merged 20 commits into
mainfrom
claude/friendly-cray-5931o5

Conversation

@wmfeht

@wmfeht wmfeht commented Oct 21, 2026

Copy link
Copy Markdown
Owner

Closes #31

Upstream range

fd6327265eaa3266f8420fe8bd25e965146344b0 → 4b9a6ace71017888b3a2124d7d911c5c664cc767 (7 commits, 6 PRs). Watermark advanced in sources.yaml.

PR Type History row on
lgse/strata#1752 fix(preview) preview/preview-panel
lgse/strata#1786 fix(chooser) integration/portal-file-chooser
lgse/strata#1794 docs app/infrastructure
lgse/strata#1792 perf(browser) app/infrastructure (triage → fallback)
lgse/strata#1796 fix(deps) none (ignored by drift; Cargo.lock only; no deps PR has a row)
lgse/strata#1776 feat(appearance) new node browser/view-modes/density

Per node

  • New browser/view-modes/density — origin {issue: Add independent frame and browser/content density controls lgse/strata#1774, pr: feat(appearance): frame & browser-content density lgse/strata#1776}. Frame (0–12 px) and Content (0–16 px) sliders in the titlebar Appearance menu, and the saved-settings rules. Code src/ui/window/density_slider.rs; tests src/ui/window/tests/appearance_density.rs, src/ui/theme/tests/density.rs, src/ui/preferences/tests/preferences.rs; docs docs/preferences.md. Added to site/unguided.yaml ("New since v1.0.0…"). It describes the code, not the PR body, which is stale: the body says no menu change, Frame not applied, and a 4 px first Custom value.
  • browser/view-modes — the radio bullet loses Compact/Airy (#1776). The DENSITY bullet moves to the new child. A new ### Content density group holds Content spacing, because browser_modes.rs implements it. A Design bullet on the type-group sorter cites #1791/#1792.
  • settings/themes — new ### Frame density Behavior group, because frame_density_css lives in theme.rs. A Design bullet covers the density CSS provider (#1776). tests gains src/ui/theme/tests/density.rs. The Azure Glow fallback bullet is now sourced by #1794, so (unverified) is dropped. The Known gap "docs/themes.md names Azure Glow as the default" is removed, since #1794 fixed it.
  • browser/directory-monitoring — listing cap 100,000 → 250,000. Behavior and Design cite #1792 (no row).
  • preview/preview-panel/documents — new ### Scrolling group: document-coordinate thumb, held thumb, monotonic drag, edges, momentum stop, hit testing. Also a table-drag unmap bullet, Design on the scrollbar and deferred rendered rows, and three Known gaps citing #1752. Paths added: src/ui/virtual_preview/scrollbar.rs, scrollbar/position.rs, line_numbers.rs, scrollbar/tests.rs, tests/e2e/mutations/preview-scrollbar.patch, docs/document-previews.md.
  • integration/portal-file-chooser — Save-name click refill bullets and a Design bullet (#1785, #1786; 10xer bullet cites #1311). …/setup: the doc Known gap is removed (see "Needs a person").
  • app/infrastructure — rows for #1794 and #1792. Design bullet on the invariant-checks Cargo feature (#1792). code gains scripts/e2e-mutation-check.sh.
  • reviewed_at only: app/accessibility, browser/folder-customization, browser/scrolling, browser/selection, browser/view-modes/list (re-verified grouping against #1792's sorter; no content change), browser/view-modes/list/column-layout, integration/custom-actions, preview/preview-panel/{find,layout,model-views}, preview/quick-preview, settings/preferences/storage, settings/themes/{corner-roundness,icons,interface-font,omarchy}.

QA

Sweeps touched: app, browser, integration, preview, settings (all reviewed_at → 4b9a6ac).

  • browser: new ### browser/view-modes/density probes (full-range drags, restart and second window, two windows, wheel and paging, Orca, hand-written settings.toml values). A Content-spacing marquee probe goes under view-modes. A grouped-sort-during-200k-load probe goes under view-modes/list. A 200k/260k listing probe goes under directory-monitoring. Setup gains 200,000- and 260,000-entry folders.
  • preview: new document-scrollbar probes and a generated 400-block Markdown fixture.
  • integration: two Save-name click probes.
  • settings: density probes now cross Frame 0/12 and Content 0/16. New Frame alignment and user-stylesheet probes. The hand-off now sends only sliders and Content spacing to browser.

Tier-1 plans (qa --pr N --tier 1):

  • #1752: primary app/infrastructure, integration/custom-actions, preview/preview-panel/{documents,find,layout,model-views}, preview/quick-preview.
  • #1786: primary integration/portal-file-chooser, plus its 4 children.
  • #1794: primary app/infrastructure.
  • #1792: primary app/infrastructure, browser/selection, browser/view-modes, settings/themes/icons.
  • #1776: 22 nodes.

Only one unmapped file remains: data/icons/scalable/actions/strata-rows.svg, which #1776 deleted and which needs no owner.

Needs a person

  • #1792 row placement. Drift put #1792 in triage, so per Row placement its row is on the fallback app/infrastructure. A reviewer argued it is a batch PR, with the sorter (view-modes) and the invariant-checks gate in selection.rs (browser/selection). Either way, the perf PR also edits Behavior on directory-monitoring, because the cap change is a real shipped change.
  • Density node's code is narrow. Saved-settings behavior is implemented in src/ui/preferences.rs (a settings sweep trigger) and DensityScale in browser_modes.rs. Later persistence PRs will map to view-modes or the settings trigger, not to this node.
  • Proposed child: preview/preview-panel/documents/scrollbar (origin fix(preview): rendered Markdown jumps between two positions while holding the scrollbar lgse/strata#1749 / #1752, own tests scrollbar/tests.rs, E2E scenario, mutation patch). It would promote documents.md to documents/index.md. Not created.
  • Upstream doc bugs (found by code reading; issue search API was unavailable, only a title scan was done):
  • Site (for the v1.1.0 docs run, not this sync): site/src/reference/remote-sftp.md:64 still says 100,000 entries. check warns that site.release is v1.0.0 while v1.1.0 is the latest stable tag.
  • Direct push: 4b9a6ac chore: release v1.1.0 (no PR).
  • Related open issue, not mapped: fix(preview): crash when quickly switching or toggling previews of long single-line highlighted files lgse/strata#1747 (crash switching previews of long single-line files).
  • The PR body and code disagree on 1752's scrollbar. The body says "No intentional content-layout change", but the code docks a separate scrollbar beside the content (PolicyType::External). It is recorded as (unverified).
  • (unverified) claims added:
    • density: snap label accent color; wheel passes to the menu; 1 px / 4 px keyboard steps; accessible label and value; pressed state; clamp on load; unknown mode loads as Compact.
    • view-modes: Custom N row margins and min(N, 4); Custom Icons column cap 20/16; Airy Columns/List and Icons spacing (pre-existing, cites #168/#747).
    • settings/themes: sidebar toggle stays aligned at every Frame value.
    • documents: close while holding the thumb; thumb at track ends; hit testing after smooth scrolling; docked scrollbar; table drag ends on close.

Review loop

3 rounds, 4–5 reviewers each, with verifiers on every blocking finding.

  • Round 1: 4 blocking, all confirmed and fixed. A false Design bullet on accordion/stepper history. A conflated 0.8 KiB / 490 MiB figure. A Save-chooser Ctrl/Shift multi-select bullet that Save's single selection makes impossible. The PR-description listing for the portal doc bug. Also many minor wording and citation fixes.
  • Round 2: 1 blocking, confirmed and fixed. Frame and Content spacing Behavior moved to its code owners, settings/themes and browser/view-modes.
  • Round 3: 1 blocking, fixed. The #1792 row moved from browser/view-modes to app/infrastructure per the triage rule.
  • Unresolved minors from round 3, left for the owner:
    • browser/view-modes/icons.md:25 ("Airy density adds modest padding", #747) overlaps the new view-modes Airy Icons bullet.
    • Two Frame Design bullets remain on the density node. They describe theme.rs behavior and could move to settings/themes.
    • Some density probes lean close to Behavior bullets: compact with custom_px 3, and cross-window drag.

check: 0 errors, 25 warnings, all site-release staleness. Unit tests pass.

Note: data/prs.jsonl was not committed. GraphQL is unavailable in this environment, so the six PR rows were extracted via the REST API into a scratch copy.


Generated by Claude Code

…r save names

Syncs upstream fd63272..4b9a6ac (lgse/strata#1752, #1786, #1792, #1794,
#1796, #1776). Review loop in progress.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G2EPXpxTkT2NMHoDUw59DX
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G2EPXpxTkT2NMHoDUw59DX
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G2EPXpxTkT2NMHoDUw59DX
…e owners

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G2EPXpxTkT2NMHoDUw59DX
…plit long sentences

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G2EPXpxTkT2NMHoDUw59DX
…rchy variants per theme, ZIP root markers, Properties Copy path

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016cpLemtNiNbF8xyDV5PcFB
…ording, columns mirror, probes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016cpLemtNiNbF8xyDV5PcFB
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016cpLemtNiNbF8xyDV5PcFB
…ndow titles, signed installer, activation GDK_DEBUG, reopen closed tabs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fazi6bx93e32CsuE8zqzMx
…r, tabs, thumbnails

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fazi6bx93e32CsuE8zqzMx
…taller, preview gaps

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fazi6bx93e32CsuE8zqzMx
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fazi6bx93e32CsuE8zqzMx
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fazi6bx93e32CsuE8zqzMx
Sync lgse/strata#1822..#1800: Enter target, STL thumbnails, folder window titles, signed installer, activation GDK_DEBUG, reopen closed tabs
Sync lgse/strata#1771..#1816: QA scenarios replace the E2E suite, Omarchy variants per theme, ZIP root markers, Properties Copy path
@wmfeht
wmfeht merged commit 856284d into main Oct 24, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update feature map: lgse/strata#1752, #1786, #1794, #1792, #1796, #1776

2 participants