feat: flag vendored clones and make the repo filter navigable
Two Repos-tab quality-of-life changes: - External/vendored clones (repos with zero of your own commits — e.g. an upstream cloned for reference and never pushed to) are measured on refresh, cached in stats_cache (RepoStatsEntry.authored), shown with a dim ⧉ marker prefixed to the name, and hidden by the persistent hide_external_clones config toggle (key `x`, the `S` menu, or `vulp list --external|--no-external`). A fork you do commit to stays yours, so only true reference clones are flagged. - Inside the `/` filter box, ↑↓ now move through the live-filtered results and Enter opens the highlighted repo/project directly, instead of the filter only "locking" on Enter with no way to scroll or select.
This commit is contained in:
1 parent
2ccf69f64c
commit
212c55d138
16 files changed
+120
-10
No files matched your search
@@ -859,10 +859,12 @@ pub fn spawn_api_refresh(state: &mut HubState) {
|
||||
// network, cheap (~0.2s/50 repos measured), so a plain sequential
|
||||
// pass is fine. Only run during `[R]`, never on tab entry.
|
||||
let _ = tx.send(RefreshMsg::Progress("Measuring release cadence + repo size...".into()));
|
||||
let matcher = crate::stats::OwnEmailMatcher::resolve(&cfg, &accounts);
|
||||
let mut stats_cache = crate::stats::cache::load();
|
||||
for (name, path) in &repo_paths {
|
||||
let size = crate::stats::size::repo_size(path);
|
||||
stats_cache.record_size(name, size.git_kb, size.tree_kb);
|
||||
stats_cache.record_authored(name, crate::stats::has_own_commit(path, &matcher));
|
||||
}
|
||||
let _ = crate::stats::cache::save(&stats_cache);
|
||||
|
||||
|
||||
Reference in new issue
Block a user