Repository navigation
feat(ui): add About SlashIt with build diagnostics - #297
Merged
Merged
Conversation
A build made from a tree with uncommitted modifications used to show the commit it started from as if it were an exact snapshot. The build now records whether its tree was clean, whether it had modifications, or whether the state could not be read, and the About dialog labels the commit with that state. A commit supplied by the builder is reported as unverified, since the tree it describes is not checked. Build-time state is read from git status, which leaves ignored build output out of the result. Cargo reruns the build script when HEAD, the index or any tracked file changes, so an edit after a build cannot leave a stale record. A new file that is neither tracked nor staged does not trigger that rerun. The provenance rules live in a std-only module that build.rs and the application both compile, so the recorded value and its reader cannot disagree.
Watch only Git control paths that exist, read Git output without dropping non-UTF-8 bytes, and list untracked files explicitly so a status configuration cannot hide them. Document that a commit supplied by the builder must be a commit id and that frontend assets in dist are outside the check.
A clean source tree does not show that the packaged frontend matches the commit: its assets come from the dist/ directory, which Git ignores. The About dialog therefore never presents a build as an exact match of its commit. A build with a known commit and a clean tree now reports that commit as unverified, and a build with uncommitted source changes is still reported as modified.
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 2 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
shingonoide
marked this pull request as draft
November 2, 2026 07:58
shingonoide
marked this pull request as ready for review
November 2, 2026 08:54
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.
Summary
Adds an About SlashIt dialog, opened from the Settings page. It shows the product name, version, build type, source commit with its provenance, operating system, executable path, and data directory. A Copy Diagnostics action copies the same facts as plain
Label: valuelines.Changes
src-tauri/build.rsrecords the source commit at build time and exposes it to the binary.src-tauri/src/source_provenance.rsclassifies the source state. A build is described as an exact commit only when the recorded state proves it. Otherwise the dialog shows that the source is modified or unverified, and it never reports an unverified build as an exact match.src-tauri/src/commands/updater.rsexposes the application metadata and provenance through a Tauri command.src/components/about_dialog.rsrenders the dialog and the diagnostics copy action.src/pages/settings.rsadds the entry point.src/services/updater_service.rscarries the matching fields.Build type is taken from the debug flag.
SLASHIT_RELEASE_CHANNELis intentionally not consulted.Validation
Run on the change before publication:
slashit-uitests filtered tosource_provenanceandabout updater: 55 passed.slashit-frontendtests filtered toabout_dialog: 10 passed.cargo clippy --all-targetsforslashit-uiandslashit-frontend: exit 0. The frontend warnings are in files this change does not touch.Known limitations
AppAbouttype mirrors the backend struct by hand. Nothing cross-checks the two field lists beyond the review.rustfmt --edition 2021 --checkonmain. That drift predates this change and is not addressed here.