Repository navigation
Sync lgse/strata#1831–#1871: tabs from drags, G-code and route previews, privacy fixes - #40
Merged
wmfeht merged 20 commits intoOct 28, 2026
Merged
Conversation
…ws, privacy fixes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UDGHgPPbPSoQNyPdmyFNpq
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UDGHgPPbPSoQNyPdmyFNpq
Open
5 tasks
…d settings saves Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rmfTXdVg1CEGCkG21C8Au
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rmfTXdVg1CEGCkG21C8Au
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rmfTXdVg1CEGCkG21C8Au
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rmfTXdVg1CEGCkG21C8Au
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rmfTXdVg1CEGCkG21C8Au
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rmfTXdVg1CEGCkG21C8Au
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rmfTXdVg1CEGCkG21C8Au
…robe and wording fixes Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rmfTXdVg1CEGCkG21C8Au
…earch, preview fixes Syncs lgse/strata#1904, #1898, #1899, #1906, #1908, and #1901 (be3343a..923b39d) and advances the watermark. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RQ23A9aNN8aT7Tpt3zouac
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RQ23A9aNN8aT7Tpt3zouac
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RQ23A9aNN8aT7Tpt3zouac
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RQ23A9aNN8aT7Tpt3zouac
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RQ23A9aNN8aT7Tpt3zouac
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RQ23A9aNN8aT7Tpt3zouac
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RQ23A9aNN8aT7Tpt3zouac
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RQ23A9aNN8aT7Tpt3zouac
Sync lgse/strata#1898–#1908: Save stem selection, multi-word global search, preview fixes
Sync lgse/strata#1872–#1896: accessible names, menus past the window, shared settings saves
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #39
Stacked on #38
This PR is stacked on #38 (the sync for lgse/strata#1830, #1834, #1838, tracked in #37) and targets that PR's branch. My branch is
claude/friendly-cray-f9fxd3. The routine's assigned branch let me extend #38 only by stacking on it, not by pushing to it. Merge #38 first; GitHub then retargets this PR tomain. The diff below covers only the 9 PRs from #39.Upstream range
2218357c2e91c0c3e6cd02638356f7a91c08bcae(watermark after #38) →d6c74746cdb27e506a08e8cdefa3bc8cef7d10f9. That is 9 commits and 9 PRs, with no direct pushes.sources.yamlholds the new watermark.GitHub GraphQL and
ghare not available in this session. Sodriftran on scratchdata/prs.jsonlrows built from the upstream git log: title, squash SHA, files. Those rows are not committed. Their dates are committer-local, so History dates use GitHubmergedAtin UTC instead.browser/tabspreview/preview-panelpreview/preview-panelpreview/preview-panelintegration/portal-file-chooser/url-download,…/image-conversion,preview/preview-panel/sandboxoperations/archivessettings/preferences/storageoperations/drag-and-dropbrowser/selectionPer node
New nodes (preview)
preview/preview-panel/gcode, "G-code thumbnails".{issue: lgse/strata#1863, pr: lgse/strata#1864}.code: [src/sandbox_helper/model/gcode.rs],tests: [src/sandbox_helper/model/gcode/tests.rs].preview/preview-panel/routes, "Route previews".{issue: lgse/strata#1841, pr: lgse/strata#1842}.src/services/route_preview.rs,src/sandbox_helper/route*,src/ui/preview/route*.preview/preview-panelfor both PRs, so the rows stay there, as with the ODT child in Sync lgse/strata#1830, #1834, #1838: ODT previews, run directory fallback, icon tile #38.site/unguided.yamlas "New since v1.0.0…".browser
browser/tabs(row #1831):### Opening from drags: a sidebar row or folder-only drag shows an insertion line, and releasing opens a new tab at that gap. Also a single-tab strip, folder drops on tab headers, and a sidebar drop leaving the order unchanged.### Drag cancellation(#630, #1843, #1831, #1865). Moved here fromoperations/drag-and-drop, becausetabs.rsandtabs/strip.rsimplement it.GdkDrag::cancelvsdrag_cancel().docs/keyboard-navigation.mdand theescape-cancels-file-drag.jsonltest.browser/sidebar: middle-click and Open in New Tab on place, pin and mounted device rows, none in the chooser. Recent gets a menu (#1831).browser/selection(row #1871): Ctrl+click then Shift+arrow in List/Icons. Two Design bullets.browser/selection/marquee: marquee leaves a stale range origin.browser/search/filter: filter selection does the same.browser/view-modes: so do position-based updates.browser/thumbnails: G-code icons show the embedded thumbnail, whatever STL model thumbnails is set to (#1864). Gainsdocs/preview-sandbox.md.browser/thumbnails/workers: G-code joins the admission bullet and is exempt from the 512 MiB limit (#1864).reviewed_atonly:sidebar/pins,view-modes/columns,view-modes/list,folder-customization,view-modes/density,list/column-layout.operations
operations/archives(row #1870): 4 Behavior bullets. A hard link becomes a copy on vfat, exFAT, exfat-fuse and SMB without links. Mode and mtime are kept, and other link errors still fail.operations/drag-and-drop(row #1865):browser/tabs. The release-outside bullet (#630) stays.operations/clipboard:reviewed_atonly. #1831 changed only an internal signature.preview
preview/preview-panel(rows #1840, #1864, #1842):.gcodepreviews as text. Routes refuse remote files,.kml/.gpxnever preview as text, and hidden models and routes reload with the current theme.preview/preview-panel/sandbox(row #1866, batch fix 2): the lock-based sweep of orphanedstrata-preview-*folders, from the code. The PR body still describes the earlier pid sweep.preview/preview-panel/model-views: G-code shows its image with no camera controls and gets a loading badge. Known gap: text G-code briefly shows the model loading view (#1864).preview/quick-preview: Right (List/Columns) or Down/Right from the content box focuses a PDF message's Open button (#1840).reviewed_atonly:documents,find,layout.integration
integration/portal-file-chooser/url-download(row #1866, fix 1):strata-download-*folders are 0700 and files 0600. Design: why downloads stay out of$XDG_RUNTIME_DIR.reviewwent fromreviewedtodraft.integration/portal-file-chooser/image-conversion(row #1866, fix 1): the converted PNG's folder is 0700 and the PNG 0600.integration/10xer-mode/preview-keys: arrow and vim keys reach and leave a preview message's Open button (#1840, no row).settings
settings/preferences/storage(row #1869):omarchy_variantskey, or nested path is dropped alone. Wrong-shaped values reset whole,*_list_columnsrecords reset as a unit, and the next save writes back the kept entries.settings/preferences: new### Units: Metric/Imperial on General, saved asunit_system(#1842, no row).relatedgainspreview/preview-panel/routes.QA
Tier-1 plans; no PR has unmapped changes.
browser/tabs,sidebar,sidebar/pins,search/filter,view-modes,view-modes/columns,operations/clipboard,preview/preview-panelpreview/preview-panel+documents,find,layout,model-views,sandbox;preview/quick-preview;integration/10xer-mode/preview-keyspreview/preview-panel,gcode,model-views,sandbox;browser/thumbnails,thumbnails/workers;app/infrastructurepreview/preview-panel+routesand 5 more children;preview/quick-preview;settings/preferences,storage; three browser preference nodes;app/infrastructureurl-download,image-conversion,preview/preview-panel/sandboxoperations/archivessettings/preferences/storage;browser/folder-customization,view-modes/density,list/column-layout(via the shared test file)browser/tabs,operations/drag-and-dropbrowser/selection,browser/view-modes,view-modes/listSweeps touched, all with
reviewed_atmoved tod6c74746:browser./tmp.gcodeandroutessubheadings.statas a second user, and vim keys on the Open button.unit_system, and Units search in English and Japanese.send_to_recent_destinations,chooser_list_columns, and a 5,000-entryfolder_colors.Needs a person
remote_download.rsandimage_conversion.rs, sourl-downloadandimage-conversioneach get a row. Fix 2 (preview-folder sweep) changedsrc/sandbox.rs, sosandboxgets a row.settings/preferences/storage, not the fallback. Its code,salvage_preferencesinsrc/ui/preferences.rs, continues storage's existing salvage behavior (#671, #728). Read literally, the triage rule would put the row onapp/infrastructure. Storage'scodedoesn't listsrc/ui/preferences.rs, because that file is a shared settings-sweep trigger.browser/selection, next to the existing List/Icons modifier-click bullets. The fix is insrc/ui/browser_modes.rs, which isbrowser/view-modescode.browser/tabs, because its code implements it, while drift keeps the #1865 row ondrag-and-drop.browser/search/exclusions("Invalid rules in the saved preferences are ignored", #1064) could also cite #1869. A non-string entry is now dropped alone.strata-diagnostics-*and.strata-update-*still use tempfile's default mode.checkstill warns that the site describes v1.0.0 while v1.1.0 is out.(unverified)claims added:browser/sidebar:browser/tabs:browser/thumbnails/workers: G-code is exempt from 512 MiB.integration/10xer-mode/preview-keys:j/l/h/kon the Open button.preview/preview-panel/gcode:thumbnail_JPEG.preview/preview-panel:.kml/.gpxnever preview as text.preview/preview-panel/model-views:preview/preview-panel/routes:settings/preferences:Review loop
Two rounds, with fresh reviewers per area each round.
drag-and-drop(code: []) and duplicatedbrowser/tabs, whose code implements them. I confirmed it and moved the bullets. Minors fixed: the #1865 row overclaimed, and the archives gaps had length and citation problems.previewscope is mapped, and drift namespreview/preview-panel..gcode/.gco/.bgcodepreviews as text was too broad. Confirmed and narrowed to.gcode.(unverified)marks, sentence length, sweep formatting, and others.relatedpointed atroutes, and probe wording and duplicates.tests.routes, sinceroute.rssets it.thumbnail_JPEG.scripts/featuremap.py checkreports 0 errors. Its 25 warnings are all site/release staleness (v1.1.0). The unit tests pass (39).Generated by Claude Code