Repository navigation
fix(config): name the refused field for repository delivery settings - #3270
Conversation
…port validateOpenShellRepositoryTransport threw one message for eight unmet requirements, so startup and the chart's upgrade check said only STARTUP_FAILED. It now throws InstallationFieldError with one bounded detail per unmet requirement: repository.preparedGitHub, the OpenShell Backend's configuration.endpoint and configuration.auth, drivers.sandbox, drivers.compute and the backend entries. Startup logs them as DRIVER_CONFIGURATION_INVALID, never echoing values. This is the remaining part of finding 2216.
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. What this changesThis PR identifies refused repository delivery settings in API, worker, and installation-check diagnostics. Example: Native repository delivery is selected without drivers.compute.configuration.network.repositoryCredentials.
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Merge readiness✅ Ready for maintainer review Keep this PR open: it fixes two diagnostic gaps still present on main, preserves existing validation, and introduces no identified correctness or security defect. Priority: P2 Before mergeNone. FindingsNone. Tests
Agent review detailsHow this fits togetherInstallation composition validates operator configuration before startup; the shared failure mapper and log filter turn refusals into API, worker, and Helm installation-check diagnostics. flowchart TB
A[Installation configuration] --> B[Repository delivery validation]
B --> C[Installation field error]
C --> D[Startup failure mapping]
D --> E[Filtered diagnostics]
E --> F[API and worker logs]
E --> G[Helm installation check]
Technical reviewBest possible solution: Keep the existing validation owners and emit bounded, value-free field diagnostics through the shared startup failure pipeline. Do we have a high-confidence way to reproduce the issue? Current-main source shows both plain errors bypassing typed configuration diagnostics, while the added scenarios provide concrete invalid configurations; no target code was executed during this review. Is this the best way to solve the issue? The patch repairs the existing validation owners, preserves their acceptance rules, and reuses the established diagnostic pipeline without adding another configuration mechanism. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 38ecfca18762. Provenance checked
TestingProof path: in-process harness. SecurityNone. EvidenceWhat I checked:
Review metrics
LabelsLabel changes: No label changes. Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment HistoryReview history (1 earlier review cycle)
Reviewed October 23, 2026, 12:30 AM ET / 04:30 UTC (Revision 2). |
With repository.nativeSender, a Compute network.repositoryCredentials peer that is missing or not on port 8443 was a plain Error, so API and worker startup logged only STARTUP_FAILED (finding 2227). It is now an InstallationFieldError: REQUIRED at the peer when absent, INVALID_VALUE at its port otherwise. The new configuration-startup test covers both and the two regex cases it replaces. Review: move the OpenShell transport table test above the comment that heads the next test, label its two /backend details, and say serviceName and port do not stand in for an https endpoint.
Internal review nits: the replaced table case used a port below 8443, so keep that setup; compare the booted processes' full detail as #3268's test does; pin the endpoint REQUIRED wording.
|
@clawsweeper re-review |
|
🦞👀 Re-review progress:
|
Problem
Two repository-delivery startup refusals were plain
Errors. API and worker startup therefore logged onlySTARTUP_FAILED, and the chart's upgrade check printed no field:validateOpenShellRepositoryTransportused one message for eight unmetrepository.openShellrequirements: "OpenShell Git requires prepared GitHub custody, the bundled Kubernetes/OpenShell pair and an authenticated HTTPS gateway." This is the rest of finding 2216; fix(egress): name the refused field in an authority block #3260 fixed the same problem for authority blocks.repository.nativeSender, a Computenetwork.repositoryCredentialspeer that was missing or not on port 8443 got a generic message (finding 2227, the sibling of 2226 fixed in fix(config): name the refused field for a leftover repository broker peer #3268).Change
validateOpenShellRepositoryTransportthrowsInstallationFieldErrorwith one detail per unmet requirement. Each detail has a JSON Pointer and a schema code, and its message never echoes a value. Details are bounded as in fix(egress): name the refused field in an authority block #3260. The pointers are:/repository/preparedGitHub/backend/<i>/configuration/endpoint(must be anhttps://URL)/backend/<i>/configuration/author.../auth/mode(must bebearerTokenFileormtls;mtlswhenobservedHookPreviewWorkspaceis set)/drivers/sandboxor/drivers/sandbox/package/drivers/compute/backend, when the github or openshell entry is missingloadInstallationConfigurationpasses the OpenShell Backend's index so the pointer names the rightbackendentry.The native peer refusal is an
InstallationFieldError:REQUIREDat/drivers/compute/configuration/network/repositoryCredentialswhen the peer is absent, andINVALID_VALUEat.../repositoryCredentials/portotherwise.Startup and the upgrade check report both refusals as
DRIVER_CONFIGURATION_INVALIDthrough the existingstartupConfigurationFailurepath.Verification
tests/integration/sandbox-driver-startup.test.mjs:preparedGitHuband a plaintext, unauthenticated gateway. It asserts three details:/repository/preparedGitHubREQUIRED, and/backend/0/configuration/endpointand/auth/modeINVALID_VALUE. It also asserts that the endpoint value is not echoed.tests/integration/configuration-startup.test.mjs: a new test checks the missing peer and the wrong-port peer through the log filter. It also boots API and worker and assertsDRIVER_CONFIGURATION_INVALIDwith the field. It replaces two regex cases in the repository-startup table.sandbox-driver-startup: 114 pass, 1 skip, the same as on mainconfiguration-startup: 41/41installation-change-preflight: 7/7tsc --build, eslint and prettier are clean on the touched files.Risks
Low. The same configurations are refused as before, now with field-level diagnostics. Anything that matched the old message text needs updating. Only the two table cases did, and this PR replaces them.