docs(ai): record configured-target recovery blocker

This commit is contained in:
cesnimda
2026-10-08 16:51:55 +02:00
parent 14e9e60ce5
commit d37b97ce39
2 changed files with 172 additions and 2 deletions
@@ -1,9 +1,87 @@
# P5-13 — Configured-model semantic qualification
**BLOCKED — configured-model qualification unavailable.** The previous **CONDITIONAL GO for P5-13** remains conditional; this checkpoint supplies no new permission to start its UI migration. No generation/evaluation model run or human output review was completed. Zero observed failures from zero runs is not a factuality pass.
**Current decision: BLOCKED — configured target remains unavailable.** The environment checkpoint below attempted the authorized Docker recovery and inspected active non-secret configuration. It did not establish a reachable production-equivalent runtime. No generation/evaluation model run or human output review was completed. Zero observed failures from zero runs is not a factuality pass. P5-13 UI remains blocked.
Parent: `2398ff354ed680c750500d1b417eee23e18f181d`, branch `codex/ui-redesign-phase4`. This is a documentation-only qualification checkpoint. The application, providers, prompts, proposal enforcement, revisions, rendering, dependencies and CI are unchanged. P5-13 UI, P5-14 and B07 have not begun.
The original corpus declaration was committed as `14e9e60ce5f37bbf4449087612e345d7186c9f81`. The subsequent bounded environment checkpoint starts from that commit, updates this record, and preserves the original [qualification results](qualification-results.json). Its current observations are in [environment-checkpoint.json](environment-checkpoint.json). The historical CONDITIONAL GO below is not the current environment acceptance decision.
## Configured-model environment checkpoint — 2026-10-08
### Active configuration and target identity
Only allowlisted non-secret AI settings were inspected in the regular local `.env`; no credential lines were exposed, copied or committed. The active local entries select:
| Key | Local value / effective current-code behavior |
|---|---|
| `OLLAMA_BASE_URL` | HTTP Compose-service origin `ollama`, port `11434`, without URL credentials or non-root path |
| `OLLAMA_MODEL` | `qwen2.5:7b` |
| `AI_PROVIDER` | `gemini` |
| `GEMINI_MODEL` | `gemini-2.0-flash` |
| `GROQ_MODEL` | `llama-3.3-70b-versatile` |
| `AI_ROUTING_MODE` | Absent locally; current Compose defaults to `local_first` |
| `EXTERNAL_AI_ENABLED` | Absent locally; current Compose defaults to `false` |
With the current code and previously inspected unset process overrides, this local configuration intends **Ollama `qwen2.5:7b` as primary**, with Gemini selected but gated off for external processing. It does not authorize a direct Gemini call. An older sidecar could implement different routing, so checkout settings alone cannot establish the running behavior. Temperatures, prompts and inference options remain as documented below, with no changes.
Production deployment uses `/opt/job-tracker/app` and `/opt/job-tracker/shared/.env`, preserving process overrides. The local file is not that deployment symlink. Public CI exposes only secret-reference names for the production host/user/key; the accessible local SSH configuration is absent. No established production SSH alias or approved staging endpoint was found. No CI secrets, SSH keys or credentials were retrieved. The actual deployed provider, model/digest, endpoint and sidecar image remain **unverified**.
No equivalent target was asserted from the local file, historical documentation, model defaults or an alternate provider. No substitute model was selected.
### Docker restoration attempt and exact failure
The authorized minimal recovery used the installed Desktop CLI. It did not perform a factory reset, reinstall, database reset, WSL unregister, container deletion or Compose shutdown.
| Step | Observation |
|---|---|
| `rtk proxy docker desktop status` | Could not retrieve status; engine initially unavailable |
| `rtk proxy docker desktop start --detach --timeout 45` | CLI accepted startup; Desktop/backend processes started |
| Formatted `docker ps` | Linux-engine API remained unavailable; missing `dockerDesktopLinuxEngine` named pipe |
| Current backend startup diagnostic | At `2026-10-08T14:43:14Z`, backend cancelled while initializing the inference manager; it could not remove the `dockerInference` runtime path |
| Literal runtime-path metadata | Zero bytes, `Archive, ReparsePoint`; created 2026-08-19 and last modified 2026-09-14 |
| Native reparse-point query | `Error 1920: The file cannot be accessed by the system.` |
| `rtk proxy docker desktop stop --timeout 30` | Graceful stop timed out; only the Desktop/backend process IDs started by this task were then stopped |
| Bounded reversible repair | After all those processes exited, the exact source and backup paths were validated within the named Docker runtime directory; one `Move-Item -LiteralPath` attempt failed with the same access error |
| Final local state | Original runtime path still exists; proposed backup does not exist; zero Desktop/backend processes; no model/sidecar/container service started |
The confirmed failure boundary is the inaccessible inference-manager runtime reparse point, not an Ollama response or CV application error. The underlying filesystem/OS reason for that entry's inaccessibility is not established; it is not claimed to be fixed. No socket contents were read. The failed rename changed neither runtime path. Desktop startup generated its own diagnostic logs; no Desktop settings were edited by this task.
The formatted listener/container check used exactly:
```text
rtk proxy docker ps --format "{{.Names}}|{{.Status}}|{{.Ports}}"
```
Sanitized diagnostic:
```text
starting services: initializing Inference manager:
listening on unix://<LOCALAPPDATA>/Docker/run/dockerInference:
remove <LOCALAPPDATA>/Docker/run/dockerInference:
The file cannot be accessed by the system.
(listener: The filename, directory name, or volume label syntax is incorrect.)
```
The investigation stopped here. Low-level reparse deletion, broad runtime-directory removal, permissions changes, WSL/container-data recovery and Docker reset were not attempted. Those operations cannot identify the actual deployed target and are not a safe substitute for the failed narrow repair. No production/staging target was contacted or restarted.
### Qualification, scoring and human-review status
The frozen corpus and rubric hashes remain identical to the declaration checkpoint. Planned calls are still **366**; **attempted inference calls 0, completed 0, provider failures 0, retries 0**. The zero provider-failure count means no inference was attempted, not a healthy provider. Desktop startup failure is recorded separately from provider errors.
There is no uncached-run evidence because there were no runs. Automated factuality, scope, unsupported-claim, overstatement, missing-skill, schema and language scoring are **not run**. Critical factuality failures are **unmeasured**, not zero qualified failures. No prompt or grounding change was justified by absent output, and no selective or full-corpus rerun occurred.
Human reviews completed: **0**. No generated-output review packet can be produced without model outputs; the existing full per-output worksheet in [the frozen rubric](RUBRIC.md#per-run-human-review-template) remains ready and unfilled. Every generated output/repeat still requires human review; the sample has not been reduced and an AI reviewer is not counted as a human.
The application, environment templates, Compose, prompts, provider routing, packages, CI and renderer are unchanged. The inherited deterministic baseline remains **1,021 backend / 455 frontend / 49 sidecar / 106 focused AI / 112 browser / 1 real HTTP / 5 revision**, with **16/16 fidelity, 36 = 36 pages**, **8/8 settings exports, 24 = 24 pages**, and **9/6/1/3 rate-limit/ingress/PDF/configuration**. This environment/documentation-only checkpoint does not claim those suites were rerun. There are no test-count changes; the last actual executions remain identified in the original results and parent record.
### Exact blockers and next operator evidence
1. **Docker Linux engine cannot start.** Resolve the exact local inference runtime-entry failure with a supported Docker/Windows repair. Do not reset container/WSL/database storage merely to run this corpus. After recovery, provide successful `rtk proxy docker desktop status` and `rtk proxy docker ps` output, and only then start the necessary configured model/sidecar services.
2. **Actual production-equivalent identity is unverified.** Provide the already established deployment/staging connection or sanitized runtime evidence using the read-only identity commands below: actual sidecar/API image revision, selected non-secret model/routing settings and model identity/digest. Do not send keys, tokens, full `.env`, cookies or credential-bearing URLs. The local `qwen2.5:7b` setting is a known configuration candidate, not deployed-model proof.
3. **Required inference and human acceptance are incomplete.** Once both prerequisites are satisfied, execute the unchanged 366-call procedure, retain every output/error and complete every required human worksheet. A safe rejection cannot convert fabricated generation into a semantic pass.
**Environment-checkpoint decision: BLOCKED / NO-GO for P5-13 UI.** Neither the actual configured target nor the required model runs/human acceptance is available. The prior deterministic readiness acceptance remains intact, but it does not clear this critical prerequisite. Work stops before P5-13 UI, P5-14 and B07; F04 and all unrelated debt remain open.
Sources: [grounding readiness](../p5-13-readiness/README.md), [Phase 5 plan](../PHASE5_PLAN.md), [AI interaction model](../../phase-3/AI_INTERACTION_MODEL.md), [CV workspace](../../phase-3/CV_WORKSPACE.md), [preservation impact](../PRESERVATION_IMPACT.md), [AI architecture](../../../ai/architecture.md), and the actual [suggestion service](../../../../JobTrackerApi/Services/CvAiSuggestionService.cs), [provider transport](../../../../JobTrackerApi/Services/SummarizerService.cs) and [sidecar](../../../../tools/summarizer/app.py).
## Qualification scope and predeclared acceptance
@@ -160,7 +238,9 @@ rtk proxy tools/summarizer/.venv/Scripts/python.exe -m pytest tools/summarizer/t
From `job-tracker-ui`, run `rtk proxy npm.cmd test -- --runInBand --silent`; for the isolated HTTP case set `DOTNET_ROOT=C:/Users/Connor/.dotnet`, `DOTNET_HOST_PATH=C:/Users/Connor/.dotnet/dotnet.exe` and run `rtk proxy npm.cmd exec playwright test -- --config=playwright.cv-ai.config.ts --reporter=line`. This last case uses the synthetic provider, not the configured model. Raw validation output remains ignored under `.artifacts/p5-13-semantic-qualification/`; no authentication state is committed.
## Decision and stopping point
## Original declaration decision and stopping point — 14e9e60
The following preserves the declaration checkpoint's decision. The newer environment decision above is **BLOCKED / NO-GO**; no configured-model or human semantic acceptance has occurred since declaration.
**Configured-model semantic gate: BLOCKED — configured-model qualification unavailable. P5-13 readiness: CONDITIONAL GO unchanged.** An unconditional GO cannot be issued: actual model/settings/digest are unverified, required repeated model runs are zero, and structured human output review is pending. Existing deterministic enforcement, stale conflict, canonical isolation and history protection remain passing independently.