Skip to content

Add Dependencies and Dependents tabs to addon details#434

Merged
arviceblot merged 1 commit into
arviceblot:masterfrom
raggi:pr/dependencies-tabs
May 17, 2026
Merged

Add Dependencies and Dependents tabs to addon details#434
arviceblot merged 1 commit into
arviceblot:masterfrom
raggi:pr/dependencies-tabs

Conversation

@raggi
Copy link
Copy Markdown
Contributor

@raggi raggi commented May 6, 2026

New Dependencies tab on the addon details view shows per-dependency resolution (installed by an existing addon, satisfied by a manual override, ignored, or unresolved with ranked install suggestions). Each row supports install, ignore, satisfied-by, and revoke actions, with a top-level "Install all" for batch-install of all unresolved suggestions. Suggestions are ranked using the same directory-count / download / date ordering as the global recommender.

New Dependents tab lists installed addons that declare this addon as a dependency, derived from the same addon_dependency table. Both tabs become inert (greyed out, "No Dependencies" / "No Dependents" labels) when empty rather than disappearing.

Adds the supporting types (AddonRef, Resolution, DepStatus, AddonDependencyView) in service::result and the service methods that back the tabs (get_addon_dependency_view, set_dep_ignored, set_dep_satisfied_by, revoke_dep_override, install_dep_suggestions).

Also trigger check_missing_deps directly from handle_addons_changed so the missing-deps sidebar entry clears as soon as the user resolves all missing deps, instead of relying on the installed_addons -> check_missing_deps chain (which only fires after the filesystem walk completes, and never fires at all if install_missing_dependencies hits the unwrap() panic path). handle_addons_changed now kicks off both refreshes in parallel, so the auto-navigate to the MissingDeps view is guarded against installed_addons.value being None — only the modal auto-pop is deferred until both promises have results; the sidebar entry itself updates correctly.

Related

@arviceblot arviceblot mentioned this pull request May 7, 2026
@raggi raggi force-pushed the pr/dependencies-tabs branch from b9ddaf0 to 7962858 Compare May 10, 2026 00:34
@raggi raggi force-pushed the pr/dependencies-tabs branch from 7962858 to fa2f82b Compare May 17, 2026 01:51
New Dependencies tab on the addon details view shows per-dependency
resolution (installed by an existing addon, satisfied by a manual
override, ignored, or unresolved with ranked install suggestions).
Each row supports install, ignore, satisfied-by, and revoke actions,
with a top-level "Install all" for batch-install of all unresolved
suggestions. Suggestions are ranked using the same directory-count /
download / date ordering as the global recommender.

New Dependents tab lists installed addons that declare this addon as
a dependency, derived from the same addon_dependency table. Both tabs
become inert (greyed out, "No Dependencies" / "No Dependents" labels)
when empty rather than disappearing.

Adds the supporting types (AddonRef, Resolution, DepStatus,
AddonDependencyView) in service::result and the service methods that
back the tabs (get_addon_dependency_view, set_dep_ignored,
set_dep_satisfied_by, revoke_dep_override, install_dep_suggestions).

Also trigger check_missing_deps directly from handle_addons_changed
so the missing-deps sidebar entry clears as soon as the user resolves
all missing deps, instead of relying on the installed_addons ->
check_missing_deps chain (which only fires after the filesystem walk
completes, and never fires at all if install_missing_dependencies
hits the unwrap() panic path). handle_addons_changed now kicks off
both refreshes in parallel, so guard the auto-navigate to the
MissingDeps view against installed_addons.value being None — only
the modal auto-pop is deferred until both promises have results; the
sidebar entry itself updates correctly.
@raggi raggi force-pushed the pr/dependencies-tabs branch from fa2f82b to f606e3c Compare May 17, 2026 01:53
@arviceblot arviceblot merged commit fc0e294 into arviceblot:master May 17, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants