Add Z3R4H rebrand: Windows launcher, .exe wrapper, geo services, modes, prompts and UI integration#5
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0df8fe23fc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if ((int)res.StatusCode >= 200 && (int)res.StatusCode < 500) | ||
| { | ||
| return (true, $"{label} readiness endpoint reachable: {endpoint}"); |
There was a problem hiding this comment.
Treat non-2xx readiness responses as not ready
The readiness probe currently marks an endpoint as ready for any HTTP status < 500, so a misconfigured health URL returning 404 or an auth-protected endpoint returning 401/403 is treated as success. In WaitForEndpointReadyAsync, that can let startup continue (and even skip fallback paths) before AI/backend/routing is actually healthy, causing the launcher to report success while the product is unusable.
Useful? React with 👍 / 👎.
| metrics = extract_route_metrics(data) | ||
| slope_profile = compute_slope_profile(metrics['elevations_m']) | ||
| elev = compute_elevation_gain_loss(metrics['elevations_m']) |
There was a problem hiding this comment.
Use computed sample distance for slope analysis
This route path computes terrain slopes using compute_slope_profile(metrics['elevations_m']), which falls back to the default 30m spacing, but extract_route_metrics already calculates per-route sample_distance_m from decoded geometry. Ignoring that value skews slope, difficulty, and risk outputs for routes whose point spacing is far from 30m, producing systematically inaccurate terrain advice.
Useful? React with 👍 / 👎.
| coordinates = form_data.coordinates.model_dump() if form_data.coordinates else None | ||
| route_area = form_data.route_area.model_dump() if form_data.route_area else None | ||
| constraints = form_data.constraints.model_dump(exclude_none=True) if form_data.constraints else None |
There was a problem hiding this comment.
Validate site-search center inputs before ranking
SiteSearchRequest allows both coordinates and route_area to be omitted, but this handler does not validate that at least one is present before calling find_*. In that case _resolve_center raises ValueError, which is uncaught here and becomes a 500 response instead of a client error, so malformed user input triggers server errors.
Useful? React with 👍 / 👎.
Motivation
Z3R4Hbrand with an emphasis on local llama.cpp inference and offline hardening.launch_z3r4h.bat) and a staged.exewrapper scaffold to enable an exe-first RC path while preserving a BAT fallback.Description
Z3R4Hand updated constants (APP_NAME, web manifests,app.html, notifications, etc.).launch_z3r4h.batwith localhost-only checks, offline defaults, port preflight, readiness probes, logging toz3r4h_launcher.log, and mode-specific Open WebUI start handling..exewrapper scaffold underwrapper/(C#/.NET) that resolves package root, validates config, orchestrates dual-service startup (llama + Open WebUI), offers readiness probes, structured exit codes, and BAT fallback invocation.backend/open_webui/services/geo/includingvalhalla_client, DEM loader, terrain analysis, suitability scoring, AI orchestration, schemas, router (/api/geo), and config flags for offline data; wired router inbackend/open_webui/main.py.src/lib/prompts/z3r4h), prompt composition utilitycomposeZ3R4HPromptStack, mode routingresolveZ3R4HRoutedModelId, mode selector componentZ3R4HModeSelector.svelte, mode binding in chat flow, and a new maps route/UI (/maps) withGeoAdvisorand result cards.PROJECT_BRIEF.md,TASKS.md,Z3R4H_CLEAN_ENV_CHECKLIST.md,Z3R4H_PROGRESS_SUMMARY.md).wrapper/tests.Testing
pytestinbackend/open_webui/test/geo/test_geo_endpoints_and_services.py, which exercise/api/geoendpoints, DEM fallback logic, suitability scoring, and intent classification; tests executed and passed.vitestinsrc/lib/components/map/__tests__/maps_flow.spec.tsto validate maps UI hooks and loading/error states; tests executed and passed.wrapper/tests/test_wrapper_startup_contract.pyto validate presence of orchestration stages and fallback messaging in the wrapper scaffold; tests executed and passed.Codex Task