Repository navigation
Conversation
|
Fixed the review finding (bf978b9): |
|
Rebased onto origin/main and fixed the two ratchet failures that remained (no ratchet loosened): TestDockerFunnel (internal/database/hasura_container_env.go shelled out to docker inspect; it now reads the env through docker.InspectContainer) and TestFileSizeBudgetNotExceeded (cmd/commands/invocation.go was 317 lines; guardedPre and the installed-command entry moved to invocation_installed.go, 290 lines). Both ratchet tests failed on the rebased head and pass now; repoqa, database, doctor and cmd/commands pass. TestSoftCancelSendsTerm in internal/docker failed once under full-suite load and passes alone; it is a timing flake, untouched. |
…is skipped headless (D-0830)
…ies mounted so --json survives nself remove admin (D-0863)
…the auto-install gate (D-0614)
…y the compose file the ops push ships (D-0614)
…nly when the running Hasura confirms it (D-0614)
… away from envelope (D-0614)
…ugin command so a proxy start failure still returns an error envelope (D-0614)
…ine registry so mcp starts after remove admin (D-0863)
…split invocation.go under the 300-line cap (D-0614)
|
Rebased again onto current origin/main (39b7e8a), force-pushed as 57503c1. go build, go vet and go test ./... all pass locally, including the ratchets (nginx call sites, docker funnel allowlist, 300-line budget, panic baseline). No ratchet loosened, no source change needed beyond the rebase. The 'zsh: no matches found ... log*.log' line in the gate output is a glob failure on the gate host, not a Go test result. Once on the old head I saw internal/docker TestSoftCancelSendsTerm fail under full-suite load (200ms bound plus a shell trap); it passes alone and 40x under CPU load, this PR does not touch that package, so I left it as a known timing flake. |
Fixes the open debt rows D-0614, D-0830 and D-0863. One commit per fix.
D-0830:
config trust dnsskipped headless reported ok:truerunDNSSetupnow setsdataResult{OK: false}in the headless-skip branch when the v1.5 envelope is on, astrust.godoes. It still returns nil, becausestart_config.gorelies on skip-and-continue. Test:TestDNSSetupHeadlessSkipEnveloperuns the child binary withNSELF_HEADLESS=1and expects exit 0 andok:false. It fails on the old code and passes now.D-0863: disabled builtin family broke every
--jsoncommandnself remove adminunmounted admin but left its canon entries, data types and v1.5-only envelope paths, sobuildRegistryfailed with E400 (29 problems on this base). Reproduced with the built binary.buildRegistrynow mounts disabled builtin families for the duration of the build only (mountDisabledBuiltinFamilies, undone after). The runtime tree is unchanged, sonself adminstill exits E407. The generators andhelp --jsonno longer depend on the developer's plugin directory. Test:TestDisabledBuiltinFamilyKeepsJSONSurfacerunsremove admin, thenversion --jsonexpects one envelope, thenadmin --jsonexpects E407. It fails on the old code and passes now.D-0614: five Codex post-merge items (all still present on main, all fixed)
.envopt-out.autoInstallAIIfNeedednow takes the project dir and resolvesAI_AUTO_INSTALLfrom the process env first (so--frozenand CI still win), then the project env cascade, beforeconfig.Loadruns. Test:TestAutoInstallAIIfNeededProjectEnv.remote.DefaultKeyPath()(the chain the deploy uses). The ops preflight checks only the compose file the ops push ships (DeployViaSshcopies one file), not the project's plugin fragments. Tests:TestArchProbeKeyMatchesDeployKey,TestOpsPreflight_ChecksOnlyShippedCompose.falsefrom config now counts only when the running Hasura container confirms it (docker inspect, newdatabase.HasuraContainerEnvValue). If the container still infers, has no flag, or cannot be inspected, the audit runs as inferred (fail closed). Test:TestVectorSearchChecksLivecovers the confirmed case and the three unconfirmed cases (docker is stubbed).cmdregistry.EffectiveJSON(cmd, set)(none over legacy over envelope).Exposurerefuses a command whose set flags move json away from envelope. A flag cannot make a non-envelope command exposed. Test:TestExposureRefusesFlagJSONOverride.--jsonwas never recorded and a missing plugin binary failed as plain text.guardedPrenow records the invocation from the forwarded args (output.JSONRequestedFromArgs) for installed mounts, soreportemits the error envelope. Nothing is refused there; the plugin owns its output. Test:TestMountProxyFailureKeepsJSONIntent.Checks run
go build ./...: okgo veton cmd, controlplane, doctor, invoke, cmdregistry, database: cleangofmt -l cmd internal: cleango test ./cmd/... ./internal/controlplane/... ./internal/doctor/... ./internal/invoke/... ./internal/cmdregistry/... ./internal/database/... ./internal/plugin/... -count=1: all ok, no failuresgolangci-lintis not installed on this worker, so it was not run.🤖 Generated with Claude Code