Repository navigation
REFACTOR: set the version to 1.0.0 and prepare the release texts - #96
Merged
Merged
Conversation
…rite access Every action is pinned to a full commit SHA and every checkout drops its credentials. The release build job is read-only; a separate publish job holds the write permissions and attests the files' build provenance.
…he sidebar, take Win+E in the desktop helper The audit before 1.0.0: five read-throughs of the whole program (archives and content, the profile and credentials, launch and install, window messages, reliability), a live round on Windows 11 and a last review of this whole change. SECURITY.md lists every finding under 2026-11-14; CHANGELOG.md lists what a user sees. Security: - A dropped file list from another program is parsed with bounds and a count limit. - A private message is accepted only while this thread is sending that message to that window (own_send). - Windows Terminal arguments escape `;` and refuse quotes and control characters. - The elevated restart names its exe explicitly; --desktop-icons never stays elevated. - --uninstall asks first (not with --quiet) and removes only rexplorer's own empty folders. - After an Explorer switch such as /select, later `-` options are paths, not options. - Archive thumbnails: 256 MB of extracted pictures per folder view, none in a solid archive. - uxtheme.dll is loaded from System32; a context menu's default command id is range-checked. Reliability: - A tab that was loading when rexplorer crashed opens Home on recovery. - Sign-out saves the session and the window placement; helper processes log a panic. - A thumbnail is refreshed when its file changes; an extraction finishes when the window closes. - Rename and delete in search results find their row again by name; one context menu at a time. Sidebar: Favorites lists the folders pinned to Home first, each marked with a pin, then the frequent folders. Quick Access's recent files are left out (a .zip among them has the shell's folder flag). Right-click gives Unpin from Home, Pin to Home and Remove from Home. Live round: with rexplorer registered, Win+E opened Windows Explorer on build 26300, so the desktop helper takes Win+E itself. A shortcut's arrow is drawn at the right size after a display scale change. Tests: the conflict-dialog helper answers Windows' older dialog too and pumps messages while it waits. The tests that drive the shell's own UI run one at a time, and a tree test dispatches its pending messages before it destroys the control (#94: 200 runs of the core test binary without a crash; the cause was not traced). smoke.ps1 answers the new uninstall question. soak.ps1 no longer deletes its own keep file (#29). Docs: ARCHITECTURE.md matches the code again; USER-GUIDE.md, README.md and EXPLORER-PARITY.md cover the changes.
The shell lists Downloads, Documents, the user's own folder and a linked phone under the desktop's root, and --desktop-icons showed them next to the desktop's real icons (42 items where the desktop has 34 on the test PC). A file or folder now shows only when it lies in the user's or the public Desktop folder. Found in the first live run of the view.
…the desktop icons view The live round of 2026-11-14 on the release build, scratch profile, real input only to the test window: - Win+E with the desktop helper: a Home tab opened, Windows Explorer opened nothing (1 of 1). - Drags from a Home tile and a recent-file row showed their icon; five drags, each cancelled with Esc. - One drag of a scratch file onto a WhatsApp chat reached its attachment preview; nothing was sent (#75). - --desktop-icons shows the desktop and follows it; its menu, rename, delete and drops were not run. Parity totals: WORKS 109, on a scratch base 3, PARTIAL 6, UNVERIFIED 5.
Both crates are 1.0.0. The changelog's Unreleased lines move under 1.0.0 with the known gaps, and the release notes are the 1.0.0 draft (the release job refuses to publish while their first line says Draft). VERSION-1-X.md ticks the blockers this round met, the hosted one-hour soak among them, and lists the 13 still open at 1.0.0. It says the owner cut 1.0.0 with them open; that wording is the owner's to confirm before the tag.
Base automatically changed from
FIX/pre-1.0-audit-security-and-reliability
to
master
November 14, 2026 13:59
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.
Sets the version to 1.0.0 and prepares the release texts. Stacked on #95: merge that one first. Merging this does not release anything; the release starts with the
v1.0.0tag.What changes
crates/appandcrates/coreare version 1.0.0 (Cargo.lockfollows).CHANGELOG.md: the Unreleased lines move under1.0.0 - 2026-11-14, with the known gaps..github/release-notes.md: the 1.0.0 notes. Its first line still says "Draft", so the release job refuses to publish until a person has read the notes and deleted that line.README.md: 1.0.0 is the newest release, and what was run for it.VERSION-1-X.md: eight blockers are ticked with their evidence (Branding: Own app icon #18, Reliability: No data-loss paths #26, Reliability: Undo and redo #27, Reliability: Soak test #29, Contract: Settings format versioned #51, Security: Pre-1.0 security review #60, Documentation: User guide #68 and the daily-use parity rows), and a new table at the top lists the blockers still open at 1.0.0.Decision this pull request carries
VERSION-1-X.mddefines 1.0 by its blockers and by exit criteria. They are not all met:The file now says that the owner cut 1.0.0 with these open and that they carry over to the 1.x line. Merging this pull request accepts that wording. The alternative is another release candidate (1.0.0-rc.3) from #95 alone.
Before the tag
.github/release-notes.mdand delete its "Draft" line and the empty line under it.CHANGELOG.md,README.md,VERSION-1-X.md.SHA256SUMS.txt(CONTRIBUTING.md, "Releasing").Verified on this tree
RUSTFLAGS='-D warnings' cargo build --release --locked --all-targets: passed.cargo clippy --workspace --all-targets --locked -- -D warnings: passed.cargo test --release --locked: app 282, core 272, data operations 12, no failures.Not rerun on this tree:
scripts\smoke.ps1,scripts\ftp-check.ps1andscripts\budgets.ps1. Only version numbers and texts changed since they passed on #95; CI runs smoke and budgets here.Refs #71, #18, #26, #27, #29, #51, #60, #68.