You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: record additional UYAP viewer download-required observation + Live Interoperability Fix 6.1
README pilot callout gains a follow-up note and DEVELOPMENT_HISTORY gains a Fix 6.1 milestone, recorded as an additional direct live viewer observation (not a formal seventh pilot rerun). The operator clicked a row-local eye/view action: a real UYAP viewer opened at /pp/viewer.jsp?mimeType=Udf but the document did not render, showing 'Evrak Goruntulenemedi, Evragi indirerek Goruntuleyebilirsiniz.'. So viewer reachability does not guarantee content availability. Fix 6.1 adds a viewer-outcome classifier and a same-row download fallback that reuses the Fix-6 positive download semantics (never global/Nth/other-row; unresolved -> honest blocker), preserves the downloaded artifact through the existing gitignored store, and attempts deterministic extraction only for genuinely supported formats (raw .udf/.pdf preserved but reported unsupported; mimeType=Udf hint alone never implies support; no raw-UDF parser, no OCR, no known-truth injection). No live PASS is claimed: the same-row download fallback has not been exercised live, no official UDF download has been captured live, raw-UDF parsing is not proven, and the Ihale Bedeli was not programmatically extracted; a post-Fix-6.1 operator rerun is required. Structural core, four SMM moments, conditional_on_trade, Theta_A, TOKI external (5 observed / 0 SMM), and the numerical-search convention are unchanged.
Copy file name to clipboardExpand all lines: README.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -261,6 +261,8 @@ The dedicated profile lives **outside** the repository; browser profiles, cookie
261
261
262
262
> **Six real live runs, all `FAIL` (interoperability); Fix 5 is now proven live and Fix 6 resolves the row-local icon controls.** A real operator Chrome/CDP session connected and the real UYAP `2026/263` page was reached; the appraisal (`6,800,000`), terminal status (`satildi`) and KDV (`20.0`) are extracted, but no run has yet collected the official auction-result document. Every run left `uyap.json` byte-unchanged with the genuine count at **7** — a collection defect, not a structural/admission defect. **Fix 1** hardened KDV and found the "İhale Evrak Listesi" control but wrongly waited for a modal. **Fix 2** added same-page tab/panel detection with a row-local eye opening a new-tab `viewer.jsp?mimeType=Udf` **UDF viewer**. **Fix 3** made document entry **page-state-aware and target-record-card-scoped**. **Fix 4** hardened active-page state classification against embedded-reference false positives. **Fix 5** detected the visibly-open document modal by **semantic content** (div/portal overlay, no `.modal`/`role=dialog` required). On the **sixth** run Fix 5 worked live: `document_list_opened=true`, `document_modal_opened=true`, `document_list_container_kind=listing_modal`, the four real evidence rows recognized (`sale_notice`, `sale_spec`, `appraisal_report`, `auction_result`), and `document_actions_observed=8` (each row `action_count=2`) — **but every row reported `view_action_resolved=false` and `download_action_detected=false`**, so all attempts stopped at `row_action_unresolved:no_view_action`. The operator has directly observed that each row has two right-side **icon-only** controls (a red download/down-arrow and a separate eye/view), and that clicking the eye opens `/pp/viewer.jsp?mimeType=Udf&evrakId=...`. The defect was purely **row-local icon-control semantics**: the resolver inspected only each control's own text/class, never its descendant icon metadata (SVG `<title>`, `<use href="#...">`, nested `<i>` classes). **Fix 6** adds per-action **introspection** (tag, role, accessible name, `title`/`aria-label`, `href_kind`, `download` attribute, `onclick` presence, safe class tokens, descendant icon tokens from SVG `<title>`/`<use>` fragments/icon-font classes, safe handler tokens) and a deterministic **download-vs-view resolver** with precedence: accessibility/title → descendant icon tokens → href/download attribute → onclick tokens → else unresolved. Resolution is **positive-view only** — a control is chosen solely when it is positively classified `view`; there is **no** "the other one is download, so this is view" inference, **no** positional/right-most/Nth-action guessing, and **color is never a classifier** (the observed red is ignored). New privacy-safe diagnostics (`recognized_document_rows[].action_summaries`, `action_resolution_strategy`) record the real observed tokens/`href_kind` **without** raw hrefs, opaque `evrakId` values, `onclick` bodies, or DOM dumps, so an unresolved live run remains debuggable. **No live `PASS` is claimed**, the viewer stage was **not** exercised live, and **UDF source extraction / İhale Bedeli extraction remain unproven**; the operator must rerun `sold uyap pilot` from the real search/listing page (`2026/263 İcra` card visible) so a new real report can measure whether the auction-result row now resolves its view action and reaches the viewer (or fails honestly later at click / new-tab / UDF representation).
263
263
264
+
> **Additional real viewer observation (before the post-Fix-6 rerun) — `download_required`; Fix 6.1 adds a same-row download fallback.** The operator manually clicked a row-local eye/view action: a real UYAP viewer tab opened at `/pp/viewer.jsp?mimeType=Udf&evrakId=...`, but the document did **not** render — the viewer visibly displayed **"Evrak Görüntülenemedi, Evrağı indirerek Görüntüleyebilirsiniz."**. So reaching the viewer does **not** guarantee content availability: a positively resolved view action has at least two real outcomes — content available, or **download required**. **Fix 6.1** adds a deterministic **viewer-outcome classifier** (`classify_viewer_outcome` → `content_available` / `download_required` / `unsupported_representation` / `viewer_error` / `unknown`) whose `download_required` requires the **combined** viewer-failure + download-instruction semantics (`viewer_download_instruction_detected`, with Turkish folding + constrained mojibake repair) — a bare `indir` or a generic "program indir" instruction is **not** enough. When the viewer reports `download_required`, the collector falls back to the **same** `DocumentRow`'s **positively resolved Fix-6 download action** (never a global/first/Nth/other-row download; if that row has no positively resolved download action it reports `download_required_but_download_action_unresolved` rather than clicking arbitrarily), captures the official artifact via a bounded Playwright download, and preserves it through the existing gitignored artifact store. View-first is preserved (documents are not downloaded unless the viewer says so). Deterministic extraction is attempted **only** for genuinely supported formats (`extraction_supported_for` → `.txt`/`.html` only); a raw `.udf`/`.pdf` download is **preserved but reported unsupported** (`downloaded_artifact_extraction_supported=false`) — a `mimeType=Udf` URL hint alone never implies support, and **no** raw-UDF parser, OCR, or known-truth injection is added. New privacy-safe diagnostics (`viewer_outcome`, `viewer_download_instruction_detected`, `download_fallback_attempted`, `download_fallback_resolved_same_row`, `download_action_resolved`, `download_event_detected`, `downloaded_artifact_extension`/`mime_hint`/`size`, `downloaded_artifact_collected`, `downloaded_artifact_extraction_supported`, `download_fallback_blocking_reason`) carry **no** opaque `evrakId`, full URLs, cookies/tokens, or document text. **No live `PASS` is claimed**: the same-row download fallback has **not** been exercised live, no official UDF download has been captured live, raw-UDF parsing is **not** proven, and the İhale Bedeli was **not** programmatically extracted — a post-Fix-6.1 operator rerun is required.
265
+
264
266
## Optional direct-label validation channel
265
267
266
268
Separately from the structural evidence above, `sold` retains a **frozen** listing-outcome channel that lets a broker or seller record the *outcome* of a listing and receive simple **non-ML negotiation analytics** in return. This channel is **not** part of the structural model:
0 commit comments