You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: tool filter infrastructure, path scoping, and Gen glTFexport (#32)
* feat(core): add tool filter infrastructure and path scoping utilities
ToolFilter/CompiledToolFilter for deny/allow pattern matching on tool inputs,
hardcoded deny lists for bash (sudo, pipe-to-shell) and web_fetch (SSRF),
path resolution with symlink handling and directory scoping.
Also adds allowed_directories to SecurityConfig, per-tool filters to
ToolsConfig, and PathDenied audit action.
* feat(cli): apply tool filters and path scoping to CLI tools
BashTool now checks commands against compiled deny/allow filters (with
hardcoded sudo, pipe-to-shell defaults) before execution. Strict mode
errors on protected file references instead of warning.
ReadFileTool, WriteFileTool, EditFileTool now resolve symlinks via
resolve_real_path(), enforce allowed_directories scoping, and audit
PathDenied violations. Filter checks run before existing sandbox and
protected-file checks.
* feat(core): apply hardcoded SSRF filters to WebFetchTool
WebFetchTool now checks URLs against compiled deny filters before
fetching. Hardcoded patterns block localhost, private IPs (10.x, 172.16-31.x,
192.168.x, 127.x), metadata endpoints, file:// and [::1].
User config under [tools.filters.web_fetch] can extend but never remove
these defaults via merge_hardcoded().
* refactor: strip xAI, Tavily, Perplexity, and SSRF code redundant with main
These features already exist on the main branch:
- XaiProvider + grok alias + native search trait methods
- TavilyProvider + PerplexityProvider + SearchUsageStats
- SSRF hardcoded filters (validate_web_fetch_url, is_private_ip)
- Hybrid native search passthrough on Anthropic/xAI providers
- Web search session tracking + status display
Remaining in this branch: tool filter infrastructure, path scoping,
bash deny patterns, allowed_directories, PathDenied audit, Gen glTF export.
* fix(ci): resolve clippy, format, and license audit failures
- Remove blank line between #[cfg] attr and struct (clippy)
- Run cargo fmt to fix line wrapping in tests (format)
- Add MIT-0 to deny.toml allow list for encase/Bevy deps (license)
Copy file name to clipboardExpand all lines: CHANGELOG.md
-13Lines changed: 0 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,19 +2,6 @@
2
2
3
3
All notable changes to LocalGPT are documented in this file.
4
4
5
-
## [Unreleased]
6
-
7
-
### Added
8
-
9
-
-**Hybrid web search support** with configurable providers (`searxng`, `brave`, `tavily`, `perplexity`) and native-search passthrough controls.
10
-
-**xAI provider support** (`xai/*`, `grok-*`) with native `web_search` tool passthrough.
11
-
-**Web search docs and CLI surfaces**: `localgpt search test`, `localgpt search stats`, and a dedicated `docs/web-search.md` guide.
12
-
13
-
### Changed
14
-
15
-
-**`web_fetch` extraction upgraded** to use the `readability` crate with fallback text sanitization.
16
-
-**Config templates expanded** with `providers.xai` and full `[tools.web_search]` examples in both default and example config files.
17
-
18
5
## [0.2.0] - 2026-02-14
19
6
20
7
A milestone release introducing LocalGPT Gen for 3D scene generation, XDG Base Directory compliance, Docker Compose support, and workspace restructuring.
0 commit comments