Merge pull request 'fix: keep unconfigured medium out of readiness' (#142) from codex/optional-medium-readiness into main
CI / test (push) Successful in 47s
CI / test (push) Successful in 47s
This commit was merged in pull request #142.
This commit is contained in:
@@ -132,10 +132,14 @@ func main() {
|
||||
readinessProbes := []health.Probe{
|
||||
health.HTTPProbe(readinessClient, strings.TrimRight(envOr("CORE_RUNTIME_URL", "http://core-runtime:8080"), "/")+"/healthz"),
|
||||
cpuHealthProbe,
|
||||
mediumHealthProbe,
|
||||
}
|
||||
if mediumURL != "" {
|
||||
readinessProbes = append(readinessProbes, mediumHealthProbe)
|
||||
}
|
||||
readinessProbes = append(readinessProbes,
|
||||
health.HTTPProbe(readinessClient, lifeboatURL),
|
||||
health.OptionalHTTPProbe(readinessClient, strings.TrimRight(envOr("LOCAL_GPU_PROVIDER_URL", "http://192.168.220.91:11434"), "/")+"/api/tags"),
|
||||
}
|
||||
)
|
||||
mux.Handle("/readyz", health.ReadinessHandler{Runtime: "cognitive-worker", Probes: readinessProbes})
|
||||
mux.Handle("/v1/fleet/readiness", fleetReadinessHandler(fleetClient, preferredFleet, []fleetEndpoint{
|
||||
{ProviderID: "local-cpu-primary", ModelID: "local-cpu-model", Tier: capability.FleetTierFast, URL: cpuEndpoint, Headers: cpuFleetHeaders, Client: &http.Client{Timeout: 10 * time.Second}},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"task_file": "dev/tasks/DEV-000168-configurable-medium-fleet-slot.json",
|
||||
"task_id": "DEV-000168",
|
||||
"task_file": "dev/tasks/DEV-000169-optional-medium-readiness.json",
|
||||
"task_id": "DEV-000169",
|
||||
"task_revision": 1
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"task_id": "DEV-000169",
|
||||
"task_revision": 1,
|
||||
"architecture_revision": "ADR-0018",
|
||||
"base_repo_revision": "8f3920519b6a228d78b6ad775a7c19838dfbb70b",
|
||||
"risk_tier": "E",
|
||||
"intent": "Keep an absent optional MEDIUM provider out of runtime readiness while preserving its explicit NOT_CONFIGURED fleet member.",
|
||||
"requirement_ids": ["WP-200", "WP-301", "Model fleet/failover"],
|
||||
"allowed_change_scope": {"modules": ["cognitive-worker"], "paths": ["cmd/cognitive-worker/main.go", "dev/ACTIVE_TASK.json", "dev/tasks/DEV-000169-optional-medium-readiness.json"]},
|
||||
"forbidden_change_scope": {"paths": ["architecture/**", "security/**", "database/**", "deploy/**", "contracts/**", "adapters/**", ".gitea/**"]},
|
||||
"allowed_architecture_delta": {"new_cross_module_dependencies": 0, "new_canonical_owners": 0, "new_privileges": 0, "new_third_party_dependencies": 0, "new_database_owner_roles": 0},
|
||||
"contracts": {"consume": ["existing readiness handler", "existing fleet readiness contract"], "may_change": []},
|
||||
"semantic_owner": "cognitive-worker",
|
||||
"canonical_state": [],
|
||||
"state_transitions": ["MEDIUM absent -> fleet NOT_CONFIGURED without runtime readiness degradation", "MEDIUM configured -> readiness probe included"],
|
||||
"side_effects_and_privileges": ["none"],
|
||||
"persistence_and_migrations": ["none"],
|
||||
"failure_retry_restart": ["configured MEDIUM remains bounded by its 10-second client; absent MEDIUM is not probed"],
|
||||
"assumptions": ["Fleet status remains the explicit inventory surface for unconfigured optional tiers"],
|
||||
"acceptance_scenarios": ["production /readyz stays ready when MEDIUM URL is empty", "fleet readiness retains MEDIUM NOT_CONFIGURED", "configured MEDIUM is included in /readyz"],
|
||||
"required_tests": ["go test ./...", "go vet ./...", "preflight", "check-diff", "check-architecture", "independent", "git diff --check", "CI", "production /readyz and fleet readiness"],
|
||||
"terminal_gap_states": ["BLOCKED_BY_MISSING_CAPABILITY", "BLOCKED_BY_CONFLICT"]
|
||||
}
|
||||
Reference in New Issue
Block a user