mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-10-14 08:18:19 +00:00
fix(config): persist shell deny group disables
Squash merge PR #112 after resolving the project changelog conflict with current dev. Local checks passed: config gateway tests, provider/http/tools deny-pattern tests, go build ./..., and go build -tags sqliteonly ./.... PR CI run 26704832350 passed release-versioning, go, and web.
This commit is contained in:
1 parent
9ab3d6dfe5
commit
990fabf94b
15 files changed
+527
-92
No files matched your search
@@ -6,6 +6,36 @@ Significant changes, features, and fixes in reverse chronological order.
|
||||
|
||||
## 2026-05-29
|
||||
|
||||
### Shell security group disabled state persistence (issue #75)
|
||||
|
||||
**Fixes**
|
||||
|
||||
- Added regression coverage proving `config.patch` preserves explicit
|
||||
`tools.shellDenyGroups` values set to `false` in memory, saved config JSON,
|
||||
and follow-up `config.get` responses.
|
||||
- Aligned Claude CLI and ACP provider runtime registration with the saved
|
||||
shell deny-group config. Provider-side deny patterns now derive from
|
||||
`tools.ResolveDenyPatterns(cfg.Tools.ShellDenyGroups)` instead of static
|
||||
defaults, so disabled groups stay disabled after reload/provider registration.
|
||||
- Re-registers existing Claude CLI/ACP provider runtimes on config changes so
|
||||
settings-page saves affect runtime enforcement without restart.
|
||||
- Uses locked shell deny-group snapshots before HTTP provider registration, so
|
||||
provider creation cannot race config reload while reading the override map.
|
||||
- Kept missing shell deny-group keys as inherited defaults; only explicit
|
||||
`false` disables a group.
|
||||
|
||||
**Tests**
|
||||
|
||||
- `go test ./internal/gateway/methods -run 'TestConfigPatchPersists(InboundDebounceMs|ShellDenyGroupsFalse)' -count=1`
|
||||
- `go test ./internal/providers -run 'TestGenerateHookScript' -count=1`
|
||||
- `go test ./internal/providers/... -run 'ClaudeCLI|ACP|DenyPatterns|ToolBridge' -count=1`
|
||||
- `go test -race ./cmd -run 'TestShellDenyGroupsConfigReload_.*|TestConfiguredShellDenyPatternsDropsDisabledPackageInstall' -count=1`
|
||||
- `go vet ./...`
|
||||
- `go build ./...`
|
||||
- `go build -tags sqliteonly ./...`
|
||||
|
||||
---
|
||||
|
||||
### Local-first document text extraction adapter (read_document privacy optimization)
|
||||
|
||||
Adds optional local extraction pipeline to the `read_document` tool, allowing
|
||||
|
||||
Reference in new issue
Block a user