Spaces:
Sleeping
Download docs/verification.md from hasimjaneef/omniAI: direct link, hf CLI and curl.
- Browser
- Download file 38.9 kB
-
https://huggingface.co/spaces/hasimjaneef/omniAI/resolve/main/docs/verification.md
- Command line
-
hf download hf://spaces/hasimjaneef/omniAI/docs/verification.md
-
curl -L -o verification.md https://huggingface.co/spaces/hasimjaneef/omniAI/resolve/main/docs/verification.md
Verification and remaining integration limits
Current status, 2026-09-10 UTC: the latest GPU log identifies the first-request failure in the pinned decoder's optional statistics helper. That exact error has been reproduced and corrected locally; successful real audiovisual inference still needs verification after upload. See the decoder statistics fix. Earlier dated entries below describe previous revisions.
This independent recreation is in /Users/jasim/Documents/ChatGPT/OmniAI. The original /Users/jasim/Documents/ChatGPT/OmnAI and earlier /Users/jasim/Documents/ChatGPT/Ocudei were inspected as references and left in their original directories.
Local implementation and checks
The only inference client points to the persistent native MiniCPM-o 4.5 service. The application contains no separate portfolio, transcription, translation, question-generation, critique or repair model call. Holdings and objective enter the same audiovisual native session once per epoch. Python performs allocation checks, public text assembly, evidence references, deduplication and brief compilation. Natural completion makes zero final-summary requests.
- Frontend TypeScript/Vite production build: passed during editing; final consolidated check recorded below.
- Backend startup: FastAPI/Uvicorn started successfully on loopback port 8000 with the new build served; browser reached the connected application.
- Connected mock API: Start β direct PCM/JPEG chunks β audiovisual findings β explicitly linked holding implications β final partial audio β natural completion and retained brief passed.
- Accelerated ten-minute HTTP check: 601 unique chunks, 600,037 ms source audio, final 592 samples, no coverage gaps, two deduplicated fixture findings/implications, final brief available, zero summary requests. Exact report: local-verification.json.
- Native-shaped HTTP/PCM/JPEG check: actual application client and GPU service parsing/serial worker were exercised with only the CUDA decoder replaced by a fixture. 600 full seconds and all 9,600,000 source samples, plus the required native residual 5 ms drain, passed.
- Focused lifecycle checks cover manual Stop, late results after Stop/seek, stale and out-of-order input/output, idempotent retries, final partial input, interrupted reset, unsupported public-output rejection, and credentials excluded from public snapshots/errors.
- Source verification: five pinned native files plus seven official reference files passed refreshed SHA256/AST checks. No downloaded model code was executed. model-source-verification.json.
- The native Linux x86_64/Python 3.10 dependencies resolved with the pinned versions. This verifies package metadata compatibility, not a built GPU container.
Browser inspection
The browser displayed the exact accessible observatory logo, white/green editorial styling, three workspace columns, self-hosted Manrope, mono body text, elapsed/total/remaining source time and noninteractive progress. Expanding and closing the media panel retained one video element. Findings-panel keyboard movement and resizing changed its position/size. Recommendations opened automatically at natural completion with evidence, holding implications, monitoring actions and limitations.
An initial browser fixture exposed a capture defect: missing AudioWorklet input could join two noncontiguous sample blocks under one start timestamp. The worklet now flushes before that gap, preserving the following packet's actual frame index. Active source gaps stop capture before subsequent samples can acquire compressed source timestamps; no source silence is fabricated. A focused real-worklet regression verifies this behavior. Diagnostics display precise source gap intervals and the brief displays its deterministic assembly method and original public findings.
Browser audio source anchors are estimates based on media/AudioContext clocks, not decoded per-packet source PTS. Real missing input, browser suspension and container/audio-track duration differences may correctly leave a partial brief. Decimal timestamp precision is not a claim of sample-accurate audiovisual alignment. Routine visual sampling remains grouped in Diagnostics.
The final refreshed six-second browser run reached natural completion with 6 accepted/processed chunks and 6,000.000 ms audio, no reported gaps, one canonical video, visible portfolio implications, and an automatically opened final Recommendations window. A subsequent manual Stop at about 5.92 seconds stopped playback and retained a partial brief from the five completed chunks. The 390 px responsive check had no horizontal overflow; the exact logo and header controls remained visible. Browser console inspection returned no JavaScript errors.
The final consolidated local check passed 53 backend cases and 28 frontend cases, TypeScript/Vite production build and allowlisted package validation. The few added regressions protect changed single-model context, delayed seek/cancellation and actual worklet timestamp behavior; unrelated old portfolio-agent tests were removed. uv pip check passed for the installed 31-package CPU environment. Two upstream test-client deprecation warnings are informational; no test failed in the consolidated result.
Not verified on real GPU
Codex has not executed model weights, paid inference, a real A100 smoke, a local Docker build, a Space upload/restart, or a hardware change. The user's later deployment logs are recorded separately below. A100 80 GB memory fit for active inference, 1Γ throughput, ten-minute GPU stability, English output and material portfolio-research quality remain unmeasured. The adapter interface and dependencies are pinned and locally validated, but those facts cannot establish actual inference quality/performance.
Use the exact real-mode commands in README. After explicit approval for paid inference, start with its bounded 12-second audiovisual smoke. Inspect the deliberately saved public-output file for useful English evidence and holding-specific interpretation before any longer validation. Model observations are summaries, not a verified transcript. Known source coverage does not guarantee every spoken claim was understood or reported. Stop does not pause dedicated GPU billing.
GPU dependency build correction, 2026-09-08
The user's Hugging Face build log (commit 8a6fdf7, PDF page 17) failed in the first Torch install. The base installer discarded a typing_extensions wheel because of normalized-name metadata and fell back to its source archive; the exclusive CUDA package index did not provide the flit_core build dependency. The reported cache misses were not the root failure.
The Dockerfile now bootstraps pip 25.3 from PyPI, installs only the two exact Torch/Torchaudio CUDA wheels from the CUDA index using --no-deps --only-binary=:all:, and resolves the existing full dependency lock from PyPI. The final stage retains dependency checking and asserts both installed package versions are 2.8.0+cu128. The model, CUDA target and inference interface are unchanged. pip install options, pip 25.3 Python compatibility.
Real pip 25.3 dry-runs targeting CPython 3.10/Linux x86_64 selected both exact CUDA wheels and the formerly failing PyPI typing_extensions wheel. The complete GPU lock again resolved for that target with uv, and the CUDA wheel metadata's 21 active Linux dependencies all matched the lock. These checks use metadata only; they are not a Docker build or a CUDA execution test. See gpu-build-fix.json. A rebuilt Hugging Face container still needs to confirm deployment.
Initial instrument picker addition, 2026-09-08 (superseded in size below)
A local searchable combobox now selects from 34 reviewed US/Canadian instruments (13 stocks, 18 ETFs/trusts, three mutual funds). It fills the listing's name, ticker, exchange, currency and asset type while retaining the user's allocation. Source metadata and concise static descriptions enter the same existing model-session context. Manual identity edits clear that provenance; changing weight does not. Search makes no inference or network calls. See instrument-directory.md for sources and coverage.
The focused browser check selected Royal Bank by name with the keyboard and confirmed RY / TSX / CAD, the issuer source link, and the unchanged 60% weight. Desktop (1400 px) and mobile (390 px) checks had no horizontal overflow, retained one canonical video, and reported no browser console errors. The backend-to-GPU contract regression validates these optional fields and rejects credential-bearing source URLs. The final consolidated check passed 54 backend tests, 29 frontend tests, TypeScript/Vite production build and package validation. The CUDA and typing-extension dry-runs and full Linux lock resolution also passed; actual Docker/CUDA execution remains outstanding.
Expanded thematic directory, 2026-09-08
The final merged directory contains 435 unique instruments: 268 stocks, 152 ETFs/trusts and 15 mutual-fund share classes, with 326 US and 109 Canadian listings/share classes. Official source collections and their selection methods are linked from instrument-directory.md. All raw and merged records passed the backend Holding contract, including field bounds, identity syntax and credential-free public source URLs. Core overlays leave every original instrument available exactly once.
The final consolidated bash scripts/check.sh passed 54 backend tests, 36 frontend tests, TypeScript type-check, Vite production build and package validation. Seven new focused frontend cases cover the larger catalog contract, real tanker/sector matches, incorrect hedge/factor exclusions, ranked aliases/filtering and twelve-result pagination. Existing lifecycle/media tests remain reused; the earlier accelerated ten-minute result was not rerun for this catalog-only change.
The browser found exactly BWET and BOAT for tanker ETFs, selected BWET with the keyboard, filled NYSE Arca / USD / ETF and preserved the 60% user allocation and issuer link. Canadian bond/ETF filters worked; browsing all 435 entries showed 12 options per page and Show more advanced to entries 13β24. The final corrected currency hedged ETFs query returned XQQ, XSP and IAGG only. Desktop 1400 px and mobile 390 px DOM widths matched their viewport widths, with no horizontal overflow or JavaScript errors. The exact observatory logo, source progress, movable/resizable Intelligence panel and Recommendations window remained available; one canonical video was retained. Directory check record.
The catalog is included in the static frontend bundle; the final JavaScript asset is about 528 kB minified / 104 kB gzip. Vite reports its advisory 500 kB chunk-size warning. Search itself has no network requests or inference calls, and the full directory is never sent to MiniCPM. No additional dependency or model was introduced. Both release flavors include all three catalog JSON files and the search module. The prior GPU dependency-install fix is retained. No Docker build, real GPU inference or Hugging Face upload occurred during this change.
Decord wheel metadata build correction, 2026-09-09
The replacement user PDF shows build commit e9c1559 at 17:40:57 UTC. Page 21 confirms that the previous CUDA/PyPI correction worked: dependencies were installed successfully. The failing command is now pip check, which reports decord 0.6.0 is not supported on this platform.
The official Linux artifact is named decord-0.6.0-py3-none-manylinux2010_x86_64.whl, but its internal WHEEL file declares CPython 3.6. Pip installs using the filename tag, then checks the incompatible internal tag against Python 3.10. This exact upstream metadata defect is documented in Decord issue 356, and the behavior is visible in pip 25.3's platform check. The package's C library uses ctypes bindings; its original binaries are retained.
scripts/verify_gpu_install.py now corrects only the exact known WHEEL bytes for Decord 0.6.0, after verifying the version and native-library hash, and updates WHEEL's digest/size in RECORD. Its build entrypoint requires the pinned Python 3.10 Linux x86_64 environment. Unexpected metadata, library or RECORD contents fail instead of being relabeled. The full pip check and exact Torch/Torchaudio CUDA-version checks remain enabled. A one-second generated CPU video must then decode successfully through Decord. Dependency installation is in a separate Docker layer from these checks.
The exact official artifact (SHA256 51997f20be8958e23b7c4061ba45d0efcd86bffd5fe81c695d0befee0d442976) was tested locally with pip 25.3's platform checker and CPython 3.10/Linux target tags: incompatible before correction, compatible afterward. A complete extracted-file hash comparison confirmed that only WHEEL and RECORD changed; rerunning the correction made no changes. Two focused regression cases cover RECORD integrity/idempotency and rejection of unexpected artifacts. The CPU video decode is a required future container-build check, not a locally verified Linux decode. No Docker runtime is installed here, and no model weights, GPU inference or remote actions were used.
The final consolidated local check passed 56 backend tests, 36 frontend tests, TypeScript/Vite production build and allowlisted package validation. The two upstream test-client deprecations and the existing Vite chunk-size advisory remain informational. The 435-instrument directory and audiovisual adapter are unchanged. Both release flavors were regenerated with the corrected Dockerfile and required install-check script. See decord-build-fix.json for the artifact and reproduction record.
Text-only GPU startup correction, 2026-09-09
The latest three-page PDF shows application startup at 18:07:11 UTC: the container built, downloaded 26 snapshot files, and loaded all four checkpoint shards. Its final native message is audio tokenizer type is set to s3tokenizer_step_audio, followed by the application's generic startup error. A read-only Hub check identified commit 900c07fbfd925be7d5f15c8390f9697a2ab296e3 in RUNTIME_ERROR, with a100-large requested. The old error wrapper discarded the underlying exception, so the exact Token2Wav failure cannot be established from this log.
The pinned MiniCPMODuplex.from_existing_model unconditionally calls init_tts despite generate_audio=False. That unnecessary speech-renderer path is now excluded: init_vision=True and init_audio=True remain enabled, init_tts=False skips the TTS module, and a temporary method override on this model instance skips the constructor's renderer call. The original method is restored even if construction fails. Speech-renderer assets are excluded from the pinned snapshot download; the same four model shards are retained. The official audiovisual prefill, decoder, protected context and text-only generation path are unchanged. No model or dependency was substituted.
Startup errors now identify the load stage, exception types and code filenames/line numbers, including wrapped causes. Raw exception messages, URLs, locals and credential values are omitted. This makes another failure actionable without exposing runtime secrets.
Local checks passed: 58 backend cases, 36 frontend cases, TypeScript/Vite production build and allowlisted package validation. Two added regressions cover skipped speech-renderer initialization/method restoration and safe startup failure reporting. The five pinned model-source hashes and AST contracts passed again. An independent fixture executed the exact pinned constructor and prepare method with inert decoder, tokenizer and tensor substitutes: the original constructor reproduced the unwanted renderer call; the revised adapter skipped it and initialized streaming audio processing plus the protected system prompt. This fixture did not execute weights or perform CUDA inference.
Both release flavors were regenerated with this correction and the prior dependency/Decord fixes. The 435-instrument directory is retained. The existing test-client deprecations and Vite bundle-size advisory remain informational. The revised startup path has not yet run on the GPU. No Space upload, restart, hardware change or paid inference was performed by Codex. See runtime-startup-fix.json.
Portfolio editor correction, 2026-09-09
The user's screenshots exposed three connected problems: a small unlabeled-on-screen removal glyph, an always-empty directory input above every selected instrument, and percentage inputs coercing text to numbers on each keystroke. Empty zero-weight rows were included in start validation even when the meaningful holdings summed to 100%; one generic message incorrectly made all failures look like allocation errors. The one-decimal total could also round an invalid sum to 100.0%.
Selected holdings now have explicit Remove and Change instrument controls plus collapsible identity/source details. New additions remain separate drafts until Add to portfolio is selected. Percentages retain editable text until blur; calculations and totals use integer hundredths of a percent. Use remaining and Split equally are explicit user actions, and equal splitting distributes any hundredth-percent remainder deterministically. Duplicate listings, invalid identity fields, zero weights and allocation imbalance have specific messages. Start lists missing media, authorization, objective or portfolio requirements. Completed research retains its original holding identities and weights when the next portfolio is edited.
Three focused frontend regressions were added, with the existing directory test updated for the selected-asset state. They cover typing/deleting percentages, 99.99 versus 100.01 totals, deletion including the last holding, exact equal splits, duplicate listings, an unfinished draft excluded from the actual create-session payload, and original holdings retained in the partial brief after removal. Existing backend validation remains authoritative and is unchanged.
The browser confirmed deletion, instrument replacement with BWET, hidden search on selected assets, and Start enabled at 100.00% while an empty draft remained open. A six-second synthetic local video reached completed in mock mode with six accepted/processed audiovisual chunks, a portfolio implication and an automatically opened Recommendations window. The browser reported an initial 8 ms capture gap (5,992 ms processed audio), so the brief correctly disclosed incomplete coverage; this check does not establish GPU performance or model quality. Desktop 1400 px and mobile 390 px document widths matched their viewports, one canonical video remained, the mobile Remove button was 44 px high, and no browser JavaScript errors were reported.
Final relevant checks passed 58 backend tests and 39 frontend tests, followed by TypeScript/Vite production build and package validation. A test-only unsupported query option caught by TypeScript was removed; the affected eight App cases and production build passed afterward. The existing two backend deprecation warnings and Vite bundle-size advisory remain informational. Both release flavors include the new required portfolio editor/allocation modules and retain the GPU startup correction. No deployment or GPU inference was performed for this UI change.
Immediate allocation and embedded workspace login correction, 2026-09-09
The follow-up screenshot showed BWET at 30%, BOAT at 30% and IEO at 40%, while the total remained 60% because the selected IEO was still a draft. At a full allocation, a new draft received no weight and its disabled confirmation button also made adding more than three assets appear impossible. This supersedes the directory-confirmation behavior described in the previous section.
Selecting a valid directory result now adds the holding immediately. The portfolio allows up to 30 identities before all weights are assigned, displays the current count, and separately identifies holdings that still need weights. Manual entries retain an explicit confirmation step. The balance action now says Set to β¦%, expressing the resulting holding weight instead of confusing it with the unallocated portfolio total. Integer hundredth-percent calculations and authoritative backend allocation validation remain in place.
The password failure had a separate implementation cause: successful login returned only a cookie, the page hid the password field without checking authentication, and Start relied on that cookie. Hugging Face documents that its cross-site embedded Space pages can have cookies blocked. Official cookie limitations. This explains a correct password being accepted while a subsequent Start is unauthorized; the user's actual browser cookie settings were not inspected.
Login now issues a random eight-hour workspace token held only in page memory. Config and Start send it in a same-origin header; config confirms the actual login state. The existing HTTP-only Strict cookie remains a fallback, and origin validation still rejects untrusted browser mutations. Login passwords and GPU/model credentials are not sent with Start. API requests reject redirects. An unauthorized Start clears the page token, returns to idle and restores the password field with the portfolio and video preserved, without starting capture, opening an empty recommendations window or automatically retrying inference.
Three targeted regressions were added in total: immediate directory additions/30+30+40/fourth and fifth assets; cookie-free frontend login plus Start expiry/recovery and no browser-storage writes; and backend cookie-free Start with invalid/expired-token and untrusted-origin rejection. Existing relevant tests were reused. The consolidated bash scripts/check.sh passed 59 backend tests, 41 frontend tests, TypeScript/Vite production build and allowlisted package validation. The same two test-client deprecations and existing Vite chunk-size advisory remain informational.
A fresh local FastAPI mock server started on loopback port 8002 with a dummy password and a temporary test wrapper that stripped every Set-Cookie response header. The production frontend successfully unlocked through that server. In the browser, the exact BWET/BOAT/IEO example immediately displayed 100.00% with weights 30/30/40; Microsoft and Amazon were then added without weights, and Split equally produced five 20% holdings. The logo geometry, noninteractive progress element, one canonical video, movable/resizable Intelligence panel and Recommendations window were checked. Desktop 1280 px and mobile 390 px document widths matched their viewports. Browser console logs were empty. The temporary wrapper is outside the repository and excluded from release packages.
Both app and GPU packages include the updated authentication and portfolio sources, focused tests and documentation; the API module is explicitly required by packaging validation. These are local mock/contract/browser checks. The earlier accelerated ten-minute scheduling checks do not establish real GPU performance, and no new real-model run, paid inference, Space upload, restart or hardware change was performed.
Automatic playback and stalled inference correction, 2026-09-09
The user showed source time 3:34 with one accepted chunk, zero processed chunks and an empty waiting queue. Earlier screenshots showed capture beginning at approximately 27.7 seconds. Read-only runtime logs showed GPU startup at 19:38:55 UTC completing the download of 20 snapshot files, loading four checkpoint shards and starting Uvicorn. App startup also completed. Those logs contained no first-request exception because the previous handler discarded it. The precise remote inference failure is therefore not established by the available evidence, and this patch does not claim it has been reproduced or conclusively repaired on CUDA.
Start previously waited for the network/model before creating and resuming its AudioContext. It now unlocks the canonical media element and audio context directly in the Start click, pauses the source during preparation, attaches capture, and then starts playback automatically. Preview controls cannot advance the source during preparation. Stop aborts setup and rejects late ready responses.
The pinned native prepare implementation performed a full language-decoder forward for every prompt token. The adapter now batches the identical protected text context in groups of at most 256 tokens. An independent CPU probe executed the exact pinned prepare method and the revised helper with inert substitutes: both produced the same ordered prompt and reset sequence and the same protected boundary; 2,369 fixture-token feed calls became 10. These are fixture operation counts, not measured A100 speed. The official batch_vision_feed option also combines image markers and embeddings in one decoder feed. Model identity, dependencies, audiovisual cadence, native listen/decode logic and finalization remain pinned.
Pending analysis now includes the request currently executing on the GPU. At two pending units, playback pauses visibly and resumes when the count falls. An inference failure marks the backend session failed, cancels pending work, requests native stop/reset and exposes a partial brief. The browser stops playback; no automatic reconnect, prompt resubmission or final summary occurs. Protected GPU logs retain failure stage, exception types and source-code locations without raw messages, source content or credentials. Browser errors expose only fixed failure categories and HTTP status codes.
Five targeted regressions were added: immediate browser unlock/abort/single audio graph; delayed preparation followed by automatic play and failure cancellation; Stop during preparation with late readiness; bounded prompt prefill with token/protection preservation; and secret-safe terminal failure without automatic restart. Existing delayed Stop/seek tests now also assert that an in-flight request counts as pending. The consolidated bash scripts/check.sh passed 61 backend tests, 44 frontend tests, TypeScript/Vite production build and allowlisted packaging validation. Existing test-client deprecations and the Vite chunk-size advisory remain informational.
The production frontend was checked in the browser against a temporary localhost-only mock server with a deliberate two-second Start delay. One click on Start kept the same video paused at source 0:00 during setup, then automatically played the six-second synthetic clip, processed six audiovisual chunks, produced a portfolio implication and opened Recommendations. No second Play click was used. The reported initial 8 ms browser capture gap remained explicitly disclosed (5,992 ms processed). A second short run deliberately took 2.5 seconds to process each one-second chunk: the browser displayed Catching up and paused at source 3.127343 seconds with two pending units, then resumed and completed all six chunks automatically. That run reported 5,993.313 ms of mapped audio and a 6.687 ms final alignment limitation. These small browser-clock/capture limitations remain visible rather than being padded or described as complete coverage. The test establishes working pacing, not sample-accurate browser alignment. No browser JavaScript errors were reported. The exact logo, 1280 px three-column layout, one video across media-panel movement/resizing, noninteractive progress and accessible Recommendations were inspected.
The accelerated HTTP run against mock mode passed again with 601 unique chunks, 600,037 ms of processed source audio, a final 592-sample chunk, no gaps, two deduplicated fixture findings/implications and zero summary requests. This validates scheduling, limits, final audio and lifecycle, not ten-minute GPU throughput. Five pinned native-source files and seven official reference files passed their hash/AST audit again, including batched decoder-feed and vision option checks. Machine-readable record.
The local mock smoke command now accepts any HTTP loopback port while still rejecting remote origins, URL credentials and real mode; its former hard-coded port 8000 restriction rejected the port 8002 test server before making any request. Both release packages were regenerated with shared sources after these checks. No Space upload, restart, hardware change or real/paid inference was performed by Codex. A short authorized test after upload is still needed to establish the GPU request outcome and actual latency; the earlier exception cannot be reconstructed from logs that omitted it.
First-chunk decoder statistics fix, 2026-09-10 UTC
The supplied GPU log now identifies the exact failure: Native audiovisual request failed at idle: AttributeError at native.py:282:_feed > native.py:238:_stats > utils.py:2000:get_window_stats. In the verified model revision, line 2000 reads self._system_prompt_template; the decoder's constructor and reset never define that attribute. OmnAI requested the optional statistics dictionary before its first audiovisual prefill, so the request failed before the audio or image reached the encoders. The unused tts.* checkpoint warning is expected with speech generation disabled and did not cause this exception. This new evidence supersedes the unconfirmed-root-cause status of the previous entry.
NativeDuplex._stats now reads decoder.get_cache_length() and len(decoder._unit_history) directly. These are exactly the two native values consumed by the adapter. It does not call the defective diagnostic helper, fabricate default counts, initialize unrelated template state, alter the native KV cache, disable window enforcement or change the model/dependency revision. The previous playback, batching, Stop and allocation corrections remain intact.
The original failure was reproduced locally by executing the exact pinned StreamDecoder constructor, reset, cache-length and statistics methods with inert tokenizer/model/cache substitutes. The original helper raised the matching missing-attribute error. After the adapter correction, metadata reads returned 0/0 initially, the expected 321 cache tokens and two retained units with fixture cache/history, and 0/0 after native reset. The upstream source was unchanged and its SHA256 matched model-lock.json. This checks the actual defective methods without loading model weights or CUDA.
One focused regression was added. It makes the optional statistics helper raise the reported error, sends real encoded PCM/JPEG through the GPU service's authenticated HTTP handler, and verifies that audio and an RGB frame reach the injected duplex, the response succeeds, actual counters remain intact, and an emulated native window drop removes old context references. The earlier mock decoder had supplied a working statistics dictionary and therefore had not exposed this native defect. Existing fixtures now provide the same cache-length and retained-history interfaces used by the corrected adapter.
The consolidated bash scripts/check.sh passed 62 backend tests, 44 frontend tests, TypeScript/Vite production build and allowlisted package validation. Existing ten-minute contract flows processed all 600 unique source chunks and 9,600,000 source samples, including the native 5 ms residual drain. Existing final-partial, Stop, seek/stale response, retry and secret-handling checks passed. Five native source files and seven official references passed hash/AST verification again. No UI code changed for this fix; the browser playback/layout checks in the previous entry were not unnecessarily repeated. The existing deprecation and bundle-size warnings remain informational.
Both upload packages were regenerated and their adapter/backend/frontend files checked against the source tree. This exact first-request crash is corrected locally. A real GPU request using the new package is still needed to verify inference and latency after upload. No paid inference, Space upload/restart or hardware change was performed by Codex. Machine-readable result.
Earlier live-feedback patch, 2026-09-10 (publication policy superseded)
The forced-speak and arbitrary-preview behavior described in this historical entry was replaced by the later targeted latency update. Its earlier browser timing result is historical, not a benchmark of the current patch.
The user's screenshots showed 53 accepted and processed units, with 53 native listening decisions and no public finding. A later screenshot showed 320 seconds of processed audio and missing visual frames from about 121 seconds onward. These establish the observed failures; they are not a controlled GPU latency measurement.
Removed the material-finding-only silence instruction, the 15-second publication gate and the full-turn gate on visible text. Each native text block now updates a source-linked live observation; the completed response retains its ID and enters the evidence ledger. Authenticated revision notifications deliver changes without the 700 ms polling timer. The same MiniCPM session starts a public response on the first real unit and after a bounded silent interval, selecting only its native speak decision. All words still come from the model, with the same per-unit cap and no extra model call. See the exact native policy.
A capture watchdog now samples the current image from the canonical player when presentation callbacks stall, using explicitly estimated media-clock timestamps. Contiguous missing-frame notices are grouped without hiding their intervals. Newly opened Recommendations comes in front of Intelligence.
The final Chrome 153 localhost check used a generated six-second video and a deterministic two-block response. Public text appeared at source 1.28 seconds before any completed finding existed. One Start click began playback automatically; all six chunks contained frames. After deliberately disabling presentation callbacks at two seconds, the fallback continued supplying changing decoded images (distinct JPEG hashes). The source ended at 6,000 ms, with a final 15,872-sample partial chunk. An initial measured 8 ms audio-capture gap remained disclosed: 5,992 ms was processed, so the brief correctly reports incomplete coverage. Recommendations opened in front, panel movement/resizing worked, the logo and one canonical video were preserved, and no JavaScript errors occurred. The recorded 1.56 ms localhost response-delivery interval is not GPU inference latency. Machine-readable result.
The focused regression checks cover streamed public text before turn end, stable IDs, immediate completed findings, Stop/seek notification isolation, split non-public markers, native speak scheduling with one existing call per unit, and 600 seconds of fallback frame capture. Existing ten-minute audio-budget/final-tail, PCM/JPEG, allocation and secret-boundary tests remain in the relevant consolidated check. No paid model inference, Space upload/restart or hardware change was performed. Real A100 output quality and latency under this new decoding policy remain unverified.
Final consolidated result for this fix: 65 backend tests and 46 frontend tests passed, including the existing simulated ten-minute audio/tail contracts; TypeScript/Vite production build and allowlisted package checks passed. Five pinned native files and seven official reference files passed the refreshed fingerprint/AST audit. Existing test-client deprecation warnings and the Vite bundle-size advisory remain informational.
Targeted slicing and latency update, 2026-09-10
The current patch and its limits are documented in native-latency-fix.md. The effective native slice limit is 2; batching and text-only output were already active. GPU-service media is decoded once off the event loop. Complete validated holding blocks can publish before turn-end, while unfinished fragments remain private. The prior application forced-speak policy was removed to preserve native silence as requested. Prompt text, dependency pins, model revision, capture quality/cadence, context and output limits are unchanged.
The single final consolidated run of bash scripts/check.sh passed 66 backend tests and 47 frontend tests, TypeScript/Vite production build, and validation of 100 allowlisted package files. Backend tests took 5.75 seconds; the frontend test runner took 4.74 seconds. Only two regression cases were added (Stop during CPU preparation and bounded browser timing/privacy); existing native, assembly and API tests were updated for the requested behavior. Existing test-client deprecation warnings and the Vite bundle-size advisory remain informational. No dependency upgrade or unrelated test expansion was undertaken.
The tests include the existing accelerated 600-second PCM/JPEG/native-contract run, final 5 ms native carry and tiny final chunks, in-process Start β findings β portfolio implications β natural completion, retries without duplicate decoding/inference, serialized native operations, Stop/seek and delayed-result invalidation. They establish local scheduling and contract correctness, not A100 performance. The protected timing export and browser-local clock arithmetic were checked; no portfolio, media, prompt or credential contents are exported.
The immutable-source audit passed for five pinned model-code/config files and seven official references, including slice/batch support, native no-grad decorators, the text-only return branch and size-dependent slicing. Local comparisons verified unchanged prompt AST, model/dependency locks, stylesheet and exact SVG. Read-only current HF logs had successful startup and no per-unit timing, so the reported 60β120-second delay remains unquantified. No model weights were loaded, no live GPU endpoint was called, and no service was deployed, started/restarted or resized. No fresh external browser/GPU performance result is claimed. The exact diff and matching app/GPU release packages were prepared for the user's upload.