Repository navigation
v1.4.0: Smarter Package Categorization & Container Support
Dendro v1.4.0: Smarter Package Categorization & Container Support
Dendro v1.4.0 introduces an overhauled, deterministic package classification system that inspects actual package contents (unified binaries, desktop entries, systemd units, manual sections, and dynamic ELF libraries) alongside natural language descriptions, plus out-of-the-box support for running inside root containers (Docker/Podman/Cloud Shell).
What's New in v1.4.0
Multi-Criteria Package Classifier
Instead of relying on brittle package name patterns or static lists, Dendro now inspects what software actually installs onto the system:
-
Unified Binary Footprint (Fedora 42+ Ready): Accounts for Fedora’s system-wide
/usr/sbin$\to$ /usr/binmerge. Dendro treats executable binaries uniformly and uses structural indicators rather than obsolete directory paths to understand a package's role. -
Systemd Units & Manual Page Sections: Reliably separates background system daemons from interactive CLI tools by checking for native systemd service units (
/usr/lib/systemd/system/) and manual page sections (Section 1 for user commands, Section 8 for system administration/daemons, Section 3 for library APIs). -
Desktop Integration: Combines local
.desktoplaunchers with Fedora’s official AppStream catalog data (/usr/share/swcatalog/xml/) to accurately identify graphical applications. -
Shared Libraries & ABI Contracts: Verifies exported dynamic ELF SONAMEs (
lib*.so.*) to identify true compiled C/C++ libraries. - Natural Language Semantic Scoring: Analyzes developer summaries and package descriptions against weighted domain lexicons ("interactive terminal", "canvas editor", "daemon", "service") to reinforce file evidence.
Disambiguation & Packaging Fixes
- Modern Daemon vs. CLI Disambiguation: Because modern Fedora places both daemons and CLI tools in
/usr/bin, Dendro uses systemd unit files,man8documentation, and service semantics to ensure background daemons are never misclassified as interactive user terminal tools. - Python & Rust CLI Tools: Packages like
ansible-core,certbot,yt-dlp,black,ripgrep, andbatare now properly classified under Command-Line Tools (while retaining their language tags) instead of being trapped in generic library categories. - Firmware GUI Guard: Apps like
gnome-firmwareare verified as Desktop Applications via their.desktopfile and executable presence, preventing packages with "firmware" in their name from being mislabeled as raw hardware microcode. - Library Precision: Dynamic C/C++ libraries require exported ELF SONAMEs and zero command-line presence, preventing asset packages (
-data,-common) from polluting library views.
Category Breakdown in the Inspector Panel
- The Package Inspector panel now displays an AI Classification Insights Card for each package.
- Selecting any package reveals:
- Category & Ecosystem Tags: (e.g.,
CLI Tool (Python)orDesktop App). - Confidence Rating: A normalized score reflecting how closely the package matched the category criteria (e.g.,
Confidence: 96%). - Rationale Bullets: The key reasons behind the categorization (e.g.,
Delivers executable binary into unified /usr/bin,Provides Section 1 manual page,Verified in AppStream catalog).
- Category & Ecosystem Tags: (e.g.,
Root & Container Support (Docker / Podman / Cloud Shell)
- Dendro now auto-detects when running with root privileges (
UID 0). - When launched inside Docker, Podman, or cloud development environments (like Google Cloud Shell), it bypasses Polkit prompts and executes DNF commands directly, eliminating the
Error getting authority: Could not connect: No such file or directoryfailure.
Summary of Changes
core/backend.py: Implemented physical anatomy extractor (unified/usr/binfootprint, systemd units, man pages), semantic intent analyzer, multi-factor decision engine, and root execution bypass.ui/inspector_panel.py: Added the classification insights card (confidence rating and rationale bullets) to the package overview tab.tests/test_core.py: Added comprehensive test cases for unified binary execution, daemon vs. CLI disambiguation, Python CLI tools, and firmware protection.pyproject.toml,dendro.spec,data/io.github.xyasharx.Dendro.metainfo.xml: Version bumped to1.4.0.
Full Changelog: v1.3.0...v1.4.0
Full Changelog: v1.3.0...v1.4.0