[general]
name=LeafEngines Agricultural Intelligence
qgisMinimumVersion=4.0
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.10
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 and batch processing for large-scale analysis.

tracker=https://app.soilsidekickpro.com
repository=https://app.soilsidekickpro.com
homepage=https://app.soilsidekickpro.com/leafengines

tags=agriculture,soil,water quality,USDA,EPA,carbon credits,precision agriculture,environmental,NDVI,satellite

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

changelog=
    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: apikey, Authorization Bearer, x-api-key
        * Fetches GeoJSON from wfs-export edge function and loads via OGR
        * Real GetCapabilities / DescribeFeatureType / GetFeature support
        * Fixed: WFS layers now authenticate against Supabase gateway
        * Fixed: feature type updated to soilcertify:managed_assets
    1.0.4 - Interactive tour fixes + export dialog
        * Fixed tour Step 1: WFS Connection Dialog now opens (missing import)
        * Fixed tour Step 4: Export Dialog opens dedicated export panel (was settings)
        * Fixed tour Step 5: MCP Documentation link corrected (was 404)
        * Fixed tour Step 2: Soil tab now targets correct tab index
        * 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 status for every API call
        * Telemetry posts to telemetry-ingest edge function
        * 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
        * Fixed QgsWfsConnection ImportError on QGIS 4.x
    1.0.1 - QGIS 4 Ready listing
        * Added anonymous usage telemetry (opt-out via NO_ANALYTICS=1)
        * 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
        * Interactive guided tour
        * Map-click soil query
