The mock provider (state simulated via an injectable clock, a hand-rolled shared/refcounted CONNECT-proxy listener per port to work around macOS's loopback restrictions) worked, but the user felt it was too far removed from the real system to build confidence in, and doesn't need the automated test suite to stay fast enough to justify that complexity — a kind-based verification pass "once in a while" is an acceptable trade for tests that actually look like the final product. Replacing it with a provider that creates real Pods in the same cluster, running an actual Squid container. internal/provider/registry was already designed to have zero dependency on any concrete provider package, so removing this one required no changes anywhere else in the tree — go build is clean with nothing implementing provider.Provider yet. docs/plans/2026-08-07-1747-proxy-operator.md's Step 3 (and every other reference to the mock provider throughout the plan) is updated in this same commit to describe the replacement. Narrative on why and the replacement's design lands in docs/plans-executions once it's built. Co-Authored-By: Claude <noreply@anthropic.com>
64 lines
3.5 KiB
JSON
64 lines
3.5 KiB
JSON
{
|
|
"permissions": {
|
|
"allow": [
|
|
"Bash(go version *)",
|
|
"Bash(go mod *)",
|
|
"Read(//Users/jan.novak/.claude/skills/go-project-bootstrap/references/**)",
|
|
"Bash(ls -la /Users/jan.novak/.claude/skills/go-project-bootstrap/assets/ /Users/jan.novak/.claude/skills/go-project-bootstrap/assets/commands/ /Users/jan.novak/.claude/skills/go-project-bootstrap/assets/agents/ 2>&1)",
|
|
"Read(//Users/jan.novak/.claude/skills/go-project-bootstrap/assets/**)",
|
|
"Read(//Users/jan.novak/.claude/skills/go-project-bootstrap/assets/agents/**)",
|
|
"Read(//Users/jan.novak/.claude/skills/go-project-bootstrap/assets/commands/**)",
|
|
"Bash(mkdir -p /Users/jan.novak/srv/go/egress-proxies-operator/docs/plans && touch /Users/jan.novak/srv/go/egress-proxies-operator/docs/plans/.gitkeep && mkdir -p /Users/jan.novak/srv/go/egress-proxies-operator/.claude/commands /Users/jan.novak/srv/go/egress-proxies-operator/.claude/agents && ls -la /Users/jan.novak/srv/go/egress-proxies-operator)",
|
|
"Bash(git status)",
|
|
"Bash(git status:*)",
|
|
"Bash(git diff:*)",
|
|
"Bash(git log:*)",
|
|
"Bash(git branch:*)",
|
|
"Bash(git add:*)",
|
|
"Bash(git checkout:*)",
|
|
"Bash(git pull:*)",
|
|
"Bash(git fetch:*)",
|
|
"Bash(date:*)",
|
|
"Read(//tmp/**)",
|
|
"Read(//private/tmp/**)",
|
|
"Bash(go build:*)",
|
|
"Bash(go test:*)",
|
|
"Bash(go vet:*)",
|
|
"Bash(go mod:*)",
|
|
"Bash(go run:*)",
|
|
"Bash(go version:*)",
|
|
"Bash(go get:*)",
|
|
"Bash(golangci-lint run:*)",
|
|
"Bash(golangci-lint --version)",
|
|
"Bash(gofumpt:*)",
|
|
"Bash(tea pr create:*)",
|
|
"Bash(curl -sL https://go.dev/dl/?mode=json)",
|
|
"Bash(find / -iname \"docs-conventions.md\" -maxdepth 6)",
|
|
"Read(//Users/jan.novak/.claude/**)",
|
|
"Read(//Users/jan.novak/.claude/skills/**)",
|
|
"Bash(mkdir -p docs/plans && date \"+%Y-%m-%d-%H%M\")",
|
|
"Bash(go install *)",
|
|
"Bash(go env *)",
|
|
"Bash(git rm *)",
|
|
"Bash(mkdir -p /Users/jan.novak/srv/go/egress-proxies-operator/docs/plans-executions)",
|
|
"Bash(cd /Users/jan.novak/srv/go/egress-proxies-operator *)",
|
|
"Bash(echo \"build: $?\")",
|
|
"Bash(echo \"vet: $?\")",
|
|
"Bash(perl -i -pe 's{^\\\\t\\\\t\\\\t\\\\t\\\\t// TODO\\\\\\(user\\\\\\): Specify other spec details if needed\\\\.\\\\n}{\\\\t\\\\t\\\\t\\\\t\\\\t// A minimal, schema-valid spec so this placeholder test survives the\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t// CEL/CRD validation added in Step 1. Rewritten wholesale in Step 4\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t// alongside the real reconciler and envtest suite.\\\\n\\\\t\\\\t\\\\t\\\\t\\\\tSpec: crawlv1alpha1.ProxySpec{\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tMode: crawlv1alpha1.ModeExternal,\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t\\\\tEndpoint: &crawlv1alpha1.EndpointSpec{Host: \"10.0.0.1\"},\\\\n\\\\t\\\\t\\\\t\\\\t\\\\t},\\\\n}' internal/controller/proxy_controller_test.go)",
|
|
"Bash(go tool *)",
|
|
"Bash(docker version *)",
|
|
"Bash(curl -sI --max-time 5 https://hub.docker.com)",
|
|
"Bash(kind get *)",
|
|
"Bash(curl -s --max-time 5 \"https://hub.docker.com/v2/repositories/ubuntu/squid/tags?page_size=10\")",
|
|
"Bash(python3 -c ' *)",
|
|
"Bash(curl -s --max-time 5 \"https://hub.docker.com/v2/repositories/ubuntu/squid/tags?page_size=100\")"
|
|
],
|
|
"additionalDirectories": [
|
|
"/Users/jan.novak/srv/go/egress-proxies-operator/.claude",
|
|
"/Users/jan.novak/srv/go/egress-proxies-operator/docs/plans",
|
|
"/Users/jan.novak/srv/go/egress-proxies-operator/docs",
|
|
"/Users/jan.novak/srv/go/egress-proxies-operator/docs/prompts"
|
|
]
|
|
}
|
|
}
|