# Limitations

This is a publicly deployed prototype: [canonical Worker UI/API](https://last-sentence.felix-market-radar.workers.dev), [static keyless Pages mirror](https://last-sentence.pages.dev), and [public MIT source](https://github.com/testofschool/last-sentence). Replay can use real provider observations or explicitly synthetic fixtures, with hand-authored text until connected generation is selected. Deployment was verified on October 30, 2026 KST. A local mode `600` Nebius key is now present, but both direct authentication POST smokes and both separate read-only GET diagnostics returned HTTP 401. Successful model completions are 0; matrix/controlled-feedback experiments and Tavily search remain **UNRUN**. No actual model output, live timed narration or rider experience is demonstrated. Real Nemotron inference is directly authorized up to $3 total. The provider credential has not been uploaded to the Worker, and deployed inference remains disabled. Refresh prices and account for prior direct-attempt reserves before any future execution.

| Area | Boundary |
| --- | --- |
| Arrival | Seoul position records expose station/status and provider receipt time. They do not timestamp doors opening. Recorded arrival is a station-arrival proxy, with polling and provider delay. |
| Timing | Silent replay uses a virtual clock and estimated sentence durations. An audio `end` event, when available, measures browser speech completion, which is still different from doors opening. Speed changes and seeking invalidate a continuous audio timing measurement. |
| ETA | The service requires a completed recording and the registered held-out median-error gate, with at least ten windows and two train identities. Windows overlap and are not independent samples. This is an experimental readiness check, not a confidence interval or an error guarantee. Unknown routes remain unavailable; unseen directed segments disclose a line-median fallback. |
| Data coverage | Actual line-2, line-5 and line-7 sample observations have separate raw files and completeness metadata. The recorded manifest retains per-journey provenance and never fills missing stations with fixtures. Full node topology is not full empirical coverage; each line has a separate quality gate. No other lines are supported. |
| Operating period | Only late-morning October 30, 2026 KST data was recorded: line 2 from 10:02–10:42, lines 5/7 from 10:49–11:29. Rush-hour, weekend and disrupted-service performance is unmeasured. The daytime proxy validation cannot establish those operating conditions. |
| Seoul quota | The official guide states a 1,000-request daily real-time cap. The prepared Worker reserves up to 950 upstream requests per KST day using an atomic counter, then forces replay. A shared key's other applications or local recorders also consume its quota; this app cannot count those requests. |
| Sample key | The current sample call requests at most five trains. Results can change identity between polls and cannot reliably follow every train. |
| Data page | The October 30 HTML includes: “해당 데이터는 종료된 서비스입니다”. Separately, the sample endpoint returned fresh position records. A source-page banner is retained as a service-availability risk; no guarantee of continuity is made. |
| Language | Ultra's supported-language list includes Korean. The inspected Super/Nano/Lightning lists do not. That absence does not prove inability. Korean quality and model obedience remain unmeasured. |
| Speech | Web Speech voices, pronunciation, speed and lifecycle vary by browser/device. No suitable voice means text-only mode. No Korean voice must not silently become a Korean-language quality result. |
| Background use | Keep the screen open and the page active. Wake Lock is best effort, requires a supported secure context and can be released by the browser. This build does not implement geolocation; background restrictions are not attributed to geolocation. |
| Inference | Model IDs and catalog prices were checked publicly. Two direct Lightning authentication smokes returned HTTP 401; no verified completion or provider usage was returned. Two read-only model-list diagnostics also returned 401 without requesting completions. The local key exists with mode `600`, but no validated provider credential has been deployed. Model tool calls, JSON fallback, `reasoning_effort`, completion latency, token usage and sentence obedience remain unmeasured; error-response latency is not completion latency. |
| Cost | A planning ceiling is not an invoice. Usage and actual cost for both HTTP 401 smokes are null; no verified $0 charge is claimed. Their cumulative conservative outside-Worker reserve is 1,974 microUSD ($0.001974), leaving a planned Worker portion of $2.998026 within the directly authorized $3 total. The reduced cap has not been deployed. Actual token-price estimates require complete provider usage; failures or missing usage cannot be reported as zero-cost successful calls. |
| Live mode | The prepared controller requires selection of the actual train/direction, a fresh server-verified arrival-status anchor and an eligible forward exit. Each line requires its own completed-recording quality gate. Initial estimates cover 3–10 station segments: line-2 main loop, line-5 directed branch toward the verified train terminus, or line-7 ordered path. Unknown station IDs or ambiguous termini are refused. The last 1–2 segments are outside that evaluated horizon and remain experimental. Actual live narration, rider operation and model/TTS landing performance have not been field-tested. |
| Worker transport | The public HTTP sample worked, while a separate HTTPS probe timed out after 20 seconds. Only the published SAMPLE key may use the bounded HTTP fallback; each upstream attempt consumes quota. Private Seoul keys are restricted to HTTPS, whose reachability remains unverified here. |
| Audience | No rider interviews, demand test, accessibility study or field validation was performed. Avoid relying on this prototype as an exit alarm. |

The prior simulation figures in the supplied handoff were not reproduced and are not imported as results. See [RESULTS.md](RESULTS.md).
