Skip to content

Commit 501cfcb

Browse files
committed
docs: record UYAP Live Browser Pilot 1 first real live FAIL + Live Interoperability Fix 1
README: update the pilot note to the measured first real live result (FAIL: real CDP connection + real 2026/263 page reached; appraisal and terminal status extracted; failed because the button/modal document UI was not collected -> MISSING_AUCTION_PRICE) and Fix 1 (modal/document-list interaction + KDV/asset-identifier hardening); operator rerun still required for a live PASS. DEVELOPMENT_HISTORY: add the Live Interoperability Fix 1 milestone with the measured pre-fix live failure signature. Documentation only; no live PASS claimed.
1 parent ea51ce2 commit 501cfcb

2 files changed

Lines changed: 28 additions & 1 deletion

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ Get-Content data\ingestion\uyap\pilot_report.json
259259

260260
The dedicated profile lives **outside** the repository; browser profiles, cookies, tokens, and the pilot report are gitignored and never committed. Outcome semantics: **`PASS`** (real live session reached, required evidence extracted, reconciliation passed, audit `ADMISSIBLE_COMPLETED_SALE`, known-truth matched, `uyap.json` unchanged, count still 7); **`PARTIAL`** (live session worked but a required artifact/parser path was unsupported, reconciliation ambiguous, or terminal evidence not collected); **`FAIL`** (a real live run produced incorrect required evidence or an incorrect audit decision); **`NOT_RUN`** (no real user-controlled UYAP browser session was available). Offline regression success does **not** convert `NOT_RUN` into `PASS`.
261261

262-
> **Measured pilot result: `NOT_RUN`.** The development environment had no user-controlled UYAP browser session (the optional Playwright extra was not installed and no CDP browser was reachable), so no live end-to-end run occurred. The safe orchestration, verification layer, mutation guards, and offline tests are in place; **the operator-side live run is still pending** and must be executed on a machine with an authenticated UYAP session.
262+
> **First real live result: `FAIL` (interoperability), addressed by Live Interoperability Fix 1.** A real operator Chrome/CDP session connected and the real UYAP `2026/263` page was reached; the appraisal (`6,800,000`) and terminal status (`satildi`) were extracted, but the first run **failed** because the official auction-result document was **not** collected — UYAP exposes it behind an "İhale Evrak Listesi" **button → modal → view/eye-action** UI rather than an ordinary `<a href>`, so only `status_card` was collected and the explicit İhale Bedeli was missing (`audit_decision = MISSING_AUCTION_PRICE`, `document_access_patterns = []`). The mutation guard confirmed `uyap.json` was byte-unchanged and the genuine count stayed **7**, so this is a collection/parser interoperability defect, not a structural or admission-mutation defect. **Fix 1** adds the observed document-list modal interaction, row-local view/eye-action association (never a global Nth-eye), and hardened `KDV Oranı : %20` and asset-identifier (`50984 Ada, 1 Parsel`, `12. Kat`, `60 Nolu B.B.`) parsing. A **live `PASS` is not claimed**: the operator must rerun `sold uyap pilot` against the real UYAP page, and a new real live report must measure `PASS`.
263263

264264
## Optional direct-label validation channel
265265

docs/DEVELOPMENT_HISTORY.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,3 +204,30 @@ milestones:
204204
**249 passed** (237 baseline + 12 pilot tests). Structural core, four SMM moments,
205205
`conditional_on_trade`, `Θ_A`, TOKİ external status, and the numerical-search convention
206206
are unchanged.
207+
208+
- **UYAP Live Browser Pilot 1 — Live Interoperability Fix 1 (measured first live result: `FAIL`)**
209+
the operator executed the pilot against a **real** Chrome/CDP session and the **real** UYAP
210+
`2026/263` page (`esatis.uyap.gov.tr/pp/index.jsp?...kayitId=16737826545`). Measured pre-fix
211+
live signature: `mode=live`, `browser_connection_status=connected`, `live_page_reached=true`,
212+
`extracted_appraisal=6800000`, `terminal_evidence=satildi`, but `artifact_types_collected=['status_card']`,
213+
`document_access_patterns=[]`, `extracted_auction_price=null`, `kdv_rate=null`,
214+
`reconciliation_status=ambiguous`, `audit_decision=MISSING_AUCTION_PRICE`, `pilot_outcome=FAIL`.
215+
The mutation guard passed (identical `uyap.json` sha256, genuine count `7 -> 7`, SMM unchanged),
216+
so this was a **collection/parser interoperability** defect, not a structural/admission defect.
217+
**Root cause:** UYAP exposes documents through an “İhale Evrak Listesi” **button → modal →
218+
row-local view/eye-action** UI; the anchor-only `discover_document_links` collected nothing from it,
219+
so the official *Artırma Sonuç Tutanağı* (explicit `İhale Bedeli 5.715.000`) was never collected.
220+
**Fix 1 (narrow):** a live `collect_record` modal path (text/role-based control detection,
221+
`select_row_document_actions` row-local association — never a global Nth-eye, bounded
222+
popup/new-tab/same-page/PDF/download event handling classified by `classify_access_pattern`);
223+
token-based `classify_document_label` (incl. `BLR_BILIRKISI_RAPORU`, `Artırma Sonuç / Uzatma
224+
Tutanağı`); KDV parsing for separated `KDV Oranı : %20` nodes; both-ordering asset-identifier
225+
extraction (`50984 Ada, 1 Parsel` / `Ada 50984, Parsel 1` / `12. Kat` / `60 Nolu B.B.`); shared
226+
`asset_descriptors` used by extraction and reconciliation; and privacy-safe report diagnostics
227+
(`document_list_control_found`, `document_modal_opened`, `document_labels_observed`,
228+
`document_collection_attempts`, …). Result-card `Satış Tutarı` is still **not** substituted for the
229+
explicit İhale Bedeli. Added 13 offline tests (reproducing the FAIL signature and validating the
230+
fixed ADMISSIBLE/reconciled path, modal logic, KDV, identifiers, non-mutation, freeze). Full suite:
231+
**262 passed** (249 baseline + 13 tests). **No live `PASS` is claimed** — the operator rerun against
232+
real UYAP is still required to establish a live `PASS`. Structural core, four SMM moments,
233+
`conditional_on_trade`, `Θ_A`, TOKİ external status, and the numerical-search convention are unchanged.

0 commit comments

Comments
 (0)