Skip to content

SearchANDGraph 1.2.27

Choose a tag to compare

@N0NsTr3s N0NsTr3s released this 20 Dec 14:46
· 6 commits to main since this release

SearchANDGraph — Release Notes
Date: 2025-12-20

Overview

SearchANDGraph crawls the web (optionally using web search), extracts entities and relations using NLP, builds a knowledge graph, and produces interactive visualizations. The desktop application (desktop_app.py) provides a GUI to run scans, stream logs, and view the generated graph exports.

What's New

UI settings behavior: the desktop UI now preserves intentionally unset fields as null/None instead of converting them to empty lists. This lets config.py defaults remain in effect unless the user provides explicit values.
Safer overrides: main_refactored.py only applies preferred/blacklist overrides when the UI supplies at least one meaningful (non-empty) source. Empty inputs are treated as "no override."
Persistence clarity: settings serialization (UserSettings.to_dict()) stores null for intentionally unset source lists (rather than []), making it clear when a user left a setting unspecified versus explicitly clearing it.
GUI → core call path: the handoff from ScanRequest to main now passes None for unset collections so config.py defaults are respected.
Behavioral notes for users

If you want to override default sources, provide at least one non-empty source in the UI. Leaving the Preferred/Blacklisted fields blank will keep the defaults from config.py.
If you intentionally want to clear sources, provide an explicit value (e.g., a single empty-clearing token) — the UI now distinguishes unset vs. explicit values.
SearchANDGraph — Release Notes
Date: 2025-12-20

Overview

SearchANDGraph crawls the web (optionally using web search), extracts entities and relations using NLP, builds a knowledge graph, and produces interactive visualizations. The desktop application (desktop_app.py) provides a GUI to run scans, stream logs, and view the generated graph exports.

What's New (2025-12-20)

UI settings behavior: the desktop UI now preserves intentionally unset fields as null/None instead of converting them to empty lists. This lets config.py defaults remain in effect unless the user provides explicit values.
Safer overrides: main.py only applies preferred/blacklist overrides when the UI supplies at least one meaningful (non-empty) source. Empty inputs are treated as "no override."
Persistence clarity: settings serialization (UserSettings.to_dict()) stores null for intentionally unset source lists (rather than []), making it clear when a user left a setting unspecified versus explicitly clearing it.
GUI → core call path: the handoff from ScanRequest to main now passes None for unset collections so config.py defaults are respected.
Behavioral notes for users

If you want to override default sources, provide at least one non-empty source in the UI. Leaving the Preferred/Blacklisted fields blank will keep the defaults from config.py.
If you intentionally want to clear sources, provide an explicit value (e.g., a single empty-clearing token) — the UI now distinguishes unset vs. explicit values.
Developer notes (2025-12-20)

Key files changed:
desktop_app.py — ScanRequest, UserSettings, options parsing and persistence.
main.py — apply overrides only when meaningful UI values are provided.
One-line changelog

Preserve UI unset fields as null and apply source overrides only when UI provides meaningful values.

Added link to SmartProxy

How to validate locally

Or start the desktop app and confirm that blank Preferred/Blacklisted inputs keep the config.py defaults.