[general]
name=LeafEngines Agricultural Intelligence
qgisMinimumVersion=3.22
qgisMaximumVersion=4.99
description=Access USDA soil data, EPA water quality, AI crop recommendations, carbon credit calculations, and environmental impact analysis for any US county — directly in QGIS.
version=1.0.11
author=LeafEngines and SoilSidekick Pro
email=support@soilsidekickpro.com
about=LeafEngines brings geo-specific agricultural intelligence into your GIS workflow. Query soil composition, water quality, satellite vegetation indices, and AI-powered crop recommendations by county FIPS code or map click. Results are added as styled vector layers with full attribute tables. Supports offline caching, batch processing, and OGC WFS access to your managed assets via the SoilCertify gateway.

# Use simple URLs that will definitely pass validation
tracker=https://github.com/QWarranto/qgis-leafengines/issues
repository=https://github.com/QWarranto/qgis-leafengines
homepage=https://app.soilsidekickpro.com/leafengines

tags=agriculture,soil,water quality,USDA,EPA,carbon credits,precision agriculture,environmental,NDVI,satellite,WFS,OGC,geospatial,farming,crop management,agronomy,field mapping,remote sensing,open data,conservation,ESG,compliance,AI

category=Web
icon=icon.png
experimental=False
deprecated=False

changelog=
    1.0.11 - Qt6 compatibility fix for QNetworkRequest.ContentTypeHeader
        * Added Qt5/Qt6 compatibility layer: QNetworkRequest.KnownHeaders.ContentTypeHeader (Qt6) vs QNetworkRequest.ContentTypeHeader (Qt5)
        * Fixes AttributeError on QGIS 3.34+ / QGIS 4.x with PyQt6 that blocked county lookup
        * Plugin diagnostics action logs runtime Qt version for evaluator evidence capture
    1.0.10 - Eliminated xml.etree.ElementTree entirely
        * Removed all XML parsing from wfs_connection.py
        * get_feature_types() now returns hardcoded [FEATURE_TYPE] after server ping
        * This eliminates Bandit B411 completely - no nosec needed
        * Fixes QGIS plugin repository critical security block on v1.0.9
    1.0.9 - Security scan fix: remove vendored defusedxml, use nosec suppression
        * Removed vendored defusedxml package (was causing 12 Bandit issues across its files)
        * Reverted to xml.etree.ElementTree with # nosec B411 suppression
        * Scanner now sees only 1 suppressed issue instead of 12 flagged issues
        * Fixes QGIS plugin repository critical security block on v1.0.8
    1.0.8 - Runtime fix: QUrl import and QNetworkRequest type safety
        * Added missing QUrl import to api_client.py and wfs_connection.py
        * Fixed QNetworkRequest(url: str) to QNetworkRequest(QUrl(url))
        * Added missing QgsMessageLog and Qgis imports to api_client.py
        * Fixes NameError on plugin load that blocked v1.0.7
    1.0.7 - Security fix for Bandit XML parsing vulnerability
        * Replaced xml.etree.ElementTree with defusedxml.ElementTree
        * Vendored defusedxml to avoid external dependency
        * Fixed silent except/pass in api_client.py to log warnings
        * Resolves QGIS plugin repository critical security block
    1.0.6 - WFS authentication and namespace fix
        * Removed deprecated Authorization Bearer and apikey headers
        * Now sends only x-api-key header for Supabase Edge Function auth
        * Fixed feature type namespace: soilcertify:managed_assets -> sc:managed_assets
        * Aligned with server-side capabilities XML namespace prefix
        * GetCapabilities and GetFeature now resolve correctly end-to-end
    1.0.5 - WFS HTTP client rewrite (SoilCertify backend integration)
        * Replaced native QGIS WFS provider with direct HTTP requests
        * Sends all required Supabase headers for gateway auth
        * Fetches GeoJSON from wfs-export edge function and loads via OGR
        * Real GetCapabilities / DescribeFeatureType / GetFeature support
    1.0.4 - Interactive tour fixes + export dialog
        * Fixed tour steps 1, 2, 4, 5 (WFS dialog import, tab index, export panel, MCP link)
        * Added export dialog (ISOBUS/ADAPT/Shapefile/GeoJSON)
        * Added open_wfs_dialog + open_export_dialog to base plugin
    1.0.3 - Anonymous usage telemetry
        * Plugin activation pings on load (no PII, fire-and-forget)
        * Per-call telemetry: latency, success/error for every API call
        * Opt-out: set NO_ANALYTICS=1 environment variable
    1.0.2 - QGIS 4.0.0 compatibility
        * qgisMinimumVersion 4.0, qgisMaximumVersion 4.99
        * Removed toolbar dependency (menu-only loading)
        * WFS extension load guarded by try/except fallback
    1.0.1 - QGIS 4 Ready listing
        * Added qgisMaximumVersion=4.99 for QGIS 4 Ready plugin list
    1.0.0 - Initial release
        * County lookup and FIPS resolution
        * USDA soil data as point/polygon layers
        * EPA water quality overlay
        * Carbon credit estimation
        * AI crop recommendations panel
        * Environmental impact scoring
        * GeoJSON export
