Repository navigation
Sync lgse/strata#1898–#1908: Save stem selection, multi-word global search, preview fixes - #44
Merged
Conversation
…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
5 tasks
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 #43
Stacked on #42
This PR is stacked on #42 (which stacks on #40 and #38). It targets #42's branch,
claude/friendly-cray-w1gznr; my branch isclaude/friendly-cray-qcvlz3. Merge #38, #40, then #42, and GitHub retargets this PR tomain. The diff covers only the 6 PRs from #43.Upstream range
be3343a5992a2a5497b1a2ee7faa525be18e988f(watermark after #42) →923b39ddf4950227e0779ef5b6216af7f4773727: 6 commits, 6 PRs, no direct pushes.sources.yamlholds the new watermark, and every touched node and sweep is reviewed at923b39d.GraphQL is blocked in this session, so
driftandqa --prran on scratchdata/prs.jsonlrows fetched over REST. Those rows are not committed.integration/portal-file-chooserbrowser/search/filter(drift)app/dialogs(scope)app/dialogs(scope)preview/preview-panel;browser/properties/mediaAll merged on 2026-10-27 (UTC).
Per node
app
app/dialogs: rows for #1906 and #1908. No Behavior change, because this node'scodedoes not build the list (see operations).app/infrastructure:reviewed_atonly. #1904 is in thedepsignore scope, matching earlier dependency PRs.browser
browser/search: Behavior bullets for #1899, citing it without a row:duck txt,subfolder txt, andquarterly txtexamples.browser/search/filter: row for #1899. New bullet: a contiguous name hit ranks above non-contiguous matches at any depth (maintainer comment on #1899).browser/properties/media: row for #1901 under the batch exception, since its own code changed. Two bullets:alpha.h264shows "320 × 180 pixels".browser/view-modes/sorting: a.h264file's Type reads "video/h264 type" instead of Other (#1901 maintainer comment). Name-only typing and Type-sort placement are marked unverified. No row.integration
integration/portal-file-chooser: row for #1898. Four bullets:report.draftofreport.draft.pdf), and it survives the idle focus restore.tests+=src/ui/chooser/tests/keyboard.rs.integration/10xer-mode/file-chooser:reviewed_atonly.operations
operations/trash: new### Confirmation file list. The list corners are square at roundness 0, 1.8px at 60, and 6px at 200 in the Shift+Delete, no-Trash, and Restore dialogs. "Move N items to Trash?" is listed separately as unverified.trash.rsattaches the class.operations/filesystem-compatibility/leftovers: the same radii for the review list.leftovers.rsattaches the class.preview
preview/preview-panel: one row for #1901.checkrejects rows on both a parent and its child, sodocumentscites #1901 without a row. Changes:.h264/.H264previews as video by name.notes.h264stays text..h264..h264"No visual preview" gap (#1861 closed).preview/preview-panel/documents:{\*…}no longer ends the paragraph.preview/preview-panel/media:guess_content_type.find,layout,media/video,model-views,quick-preview:reviewed_atonly. They are touched through shared test globs only.settings
settings/themes/icons:reviewed_atonly.entry.rschanged only for printing support.No new or promoted nodes.
scopes.yamlis unchanged.QA
Sweeps touched:
app,browser,integration,operations,preview,settings(reviewed_atset on all six).browser: multi-word queries with three terms, a typo, CJK, Tab, and double space; root-only terms; Properties on the.h264/.h265/.hevc/.264copies; Type sort with.h264files. Setup gains raw H.264 and HEVC fixtures.integration: Save stems for.bashrc,archive.tar.gz,noext,a., andrésumé.pdf, with 10xer off and with 10xer Tab.operations: list corners at roundness 0 and 200 across the delete, no-Trash, Move to Trash, Restore, and leftovers dialogs.preview: raw-stream copies on hosts with and without a MIME type for them; Print and Quick preview menus;.h264over sftp. Documents: tab, NBSP, and thin-space separators; an early space before a 5 KiB token; emoji at the cut; a 1–2 KiB word at the tail; RTF\tab/\cellbetween surrogate units; escaped newlines inside bold. Setup gains the copies and a real HEVC encode.preview"a word split across two rows" now uses a whitespace-free token over 2 KiB.Tier-1 plans (
qa --pr N --tier 1). Every changed file landed on a primary node or a trigger; no plan had "Unmapped changes".app/infrastructure.integration/portal-file-chooser,integration/10xer-mode/file-chooser; sweepintegration.browser/search/filter,browser/search; sweepbrowser.appsweep is forced by thesrc/style.csstrigger.preview/preview-panel,preview/preview-panel/documents,find,layout,media/video,model-viewspreview/quick-previewbrowser/properties/mediasettings/themes/iconspreview,browser,settings.Needs a person
drifttobrowser/search/filter, though most of its files and its behavior belong tobrowser/search.assign()keeps only leaf nodes, so any file under the child wins.app/dialogs, whose code they do not touch.render_driftomitted #1906 and #1908 entirely. It lists PRs only under nodes their paths match, or under triage or ignored. A PR assigned by scope alone to a node it does not touch appears nowhere.check: AGENTS.md lets a batch PR take a row on each node whose code each fix changed.checkstill forbids a parent row plus a child row. So #1901 has one row onpreview/preview-panelcovering thedocumentsfixes. Its other row, onbrowser/properties/media, is outside that subtree.entry_supports_printingis insrc/ui/browser/entry.rs, which issettings/themes/iconscode. The Print bullets live onpreview/preview-panel.operations/deleteandoperations/trash/restore, buttrash.rs, which builds both dialogs, isoperations/trashcode.src/ui/preview/tests/video.rsis inmedia/videotestsbut exercisesentry_family, which is preview-panel code.lgse/strataissue covers these; I scanned all 995 issues, open and closed. None was filed:.h264instead of Other. Recorded as Behavior onbrowser/view-modes/sorting, from the #1901 maintainer comment ("harmless but unpolished").document_word_boundaryuseschar::is_whitespaceon non-ASCII lines, so a rendered row can break after a no-break space (U+00A0, U+2007, U+202F), such as RTF\~. Seesrc/services/document.rs:2045-2049.docs/document-previews.md:49,51still describes "contiguous 2 KiB virtual rows". Rendered rows now end at whitespace.guess_content_typenow returnsvideo/h264for any.h264name, so:src/ui/chooser.rs:312: avideo/*chooser filter matches.h264(integration/portal-file-chooser).src/ui/actions.rs:119:video/*custom actions match.h264(integration/custom-actions)..h264on sftp, including text, no longer offers Quick preview, because it is certain media and not MOV/MP4 (src/ui/preview.rs:108-125,src/services/preview.rs:349-354).accept_save_filestill select the whole name. The reviewer judged both reasonable and filed no issue.(unverified)claim added:browser/properties/media: an octet-stream file whose name classifies as image, audio, or video gets the MEDIA row.browser/search: typo tolerance in multi-word queries only (abc text→abc_tent.doc).browser/search: the fuzzy fallback keeps spaces.browser/search: terms match the root-relative path.browser/search: #1899 is added to the existing unverified name-over-path bullet.browser/view-modes/sorting: name-only typing for text or empty.h264files.browser/view-modes/sorting: Type-sort placement of.h264files.integration/portal-file-chooser: last-dot examples (archive.tar.gz,.bashrc,notes).operations/trash: "Move N items to Trash?" list corners.preview/preview-panel/documents: block types (heading, list item, quote, code) share the split.preview/preview-panel/documents: space-before-other-whitespace priority.preview/preview-panel/documents: last-4-KiB halving (#187).preview/preview-panel/documents: words under 1,000 bytes are never split.preview/preview-panel:.h265/.hevc/.264/extensionless streams need the MIME database.preview/preview-panel: two stepping-skip bullets (audio without duration; video with neither duration nor dimensions).preview/preview-panel: no Print for.h264, includingnotes.h264.triggers: none.Review loop
Three rounds, one fresh reviewer per changed area, with a fresh verifier for each blocking finding.
.h264Type column change onbrowser/view-modes/sorting..h265/.hevcrouting bullet was on the media node, which does not own that code.(unverified). The #1901 maintainer comment states it.current_filealso gets stem selection (code only).Generated by Claude Code