From 40859e7dafb5969f7b5276065a8cae7581e43ea5 Mon Sep 17 00:00:00 2001 From: DevBehindYou Date: Thu, 29 Oct 2026 22:06:44 +0530 Subject: [PATCH] Record verified shared-deadline production release --- docs/LLMISER_OPTIMIZATION_PLAN.md | 6 +++--- docs/LLMISER_SHARED_DEADLINES.md | 15 ++++++++++++--- docs/START_HERE.md | 4 ++-- docs/ai-handover/HANDOVER.md | 8 ++++---- docs/ai-handover/PROGRESS.md | 9 +++++---- 5 files changed, 26 insertions(+), 16 deletions(-) diff --git a/docs/LLMISER_OPTIMIZATION_PLAN.md b/docs/LLMISER_OPTIMIZATION_PLAN.md index 167e7ce..7fae379 100644 --- a/docs/LLMISER_OPTIMIZATION_PLAN.md +++ b/docs/LLMISER_OPTIMIZATION_PLAN.md @@ -4,7 +4,7 @@ Updated 29 October 2026. Work only in LLMiser. This is the current continuation ## Current continuation state -PRs #1–#15 are merged. Retained-result recovery, cron cutover, wake coalescing, shared reader statistics, large-preview control, CSV allocation reduction and Excel/final-result memory changes are released; the old frontend remains the static LLMiser fallback and public migration redirects remain live. The 22 October branch/review statements below are historical evidence for that earlier slice, not current release blockers. Use [START_HERE](START_HERE.md) and [PROGRESS](ai-handover/PROGRESS.md) for deployment state. +PRs #1–#17 are merged. Recovery, cron cutover, wake coalescing, reader statistics, large previews, CSV/Excel/final-result memory and shared conversion deadlines are released. Legacy hosting/redirects remain live. Earlier 22 October branch/review statements below are historical; use [START_HERE](START_HERE.md) and [PROGRESS](ai-handover/PROGRESS.md) for current deployment evidence. Shared reader statistics shipped in PR #9 at `84e510db62ea41f31c131771eb7d32b5e92515f4`: one allocation-bounded helper, one memoized result for reader line/status displays, preserved counting semantics and reproducible before/after measurements. See [reader statistics](LLMISER_READER_STATISTICS.md) for 259-test CI and live verification. Browser profiling follows below; the rest of the queue remains separate. No new production SQL or service retirement was part of this slice. @@ -14,7 +14,7 @@ PR #13 released [a source capacity audit and CSV allocation reduction](LLMISER_P ## Verified starting point -Current candidate: [shared conversion deadlines](LLMISER_SHARED_DEADLINES.md), branch `codex/shared-conversion-deadlines`. Backend cooperative checkpoints and remaining-budget propagation are implemented locally; rollout/acceptance remain separate. This is a per-invocation budget and adds no whole-job lifetime, SQL or capacity setting. +Released [shared conversion deadlines](LLMISER_SHARED_DEADLINES.md), PR #17 at `9131a2ac6163f22b630b008b40accb482ed3e0b3`. Optional authenticated absolute deadlines and monotonic cooperative worker checks preserve legacy callers and durable job/lease rules. All seven CI jobs and six Vercel production statuses passed; all six workers reported the exact revision/readiness. Thirty protocol checks, eight workbook/ZIP comparisons, four post-release Storage conversion/recovery jobs and 20 HTTP checks passed. Native preemption, exact-once writes and capacity tuning remain separate. Controller detail pagination is next. Released [Excel and final-result assembly memory](LLMISER_EXCEL_ASSEMBLY_MEMORY.md), PR #15 at `3db41140521d5cfb1bb3bfd12865feca5a8cc95b`: sequential sheet processing, exact bounded word counts and delayed archive output encoding. Three fresh-process trials per mode preserve complete hashes; local peak reductions are qualified by timing variability/XLS regression. All seven CI jobs passed before/after merge; six production Vercel statuses succeeded; all six N/O/Z workers report the exact revision and readiness. Eight generated multipart probes, two production Storage conversion/recovery checks and 20 HTTP checks passed; all pools are 2/2 ready. No SQL, concurrency, retention or blog changes. @@ -47,7 +47,7 @@ Acceptance: expired link, later-part failure, complete Unicode assembly, restart | --- | --- | | Shared statistics and large previews | Counting released in PR #9; browser profiling and large-preview control released in PR #11; measure native input/devices before deeper editor/worker changes | | Backend parser capacity | CSV released in PR #13; Excel/final-result memory released in PR #15 with production XLSX/ZIP Storage acceptance. Profile native/concurrent parsing and whole-result normalization/serialization on representative hosts before queue tuning | -| Shared deadline | Add an optional, backward-compatible remaining-budget protocol, reserving finalization time; test slow failures/cold starts | +| Shared deadline | Released in PR #17; per-invocation propagation/reserves, simulated slow/cold paths and real protocol/OCR/PDF/ZIP Storage acceptance. Preserve cooperative-cancellation and replay-fencing limits | | Controller detail pagination | Top-level lists already paginate; bound files/tree/events/work-items with stable cursors and truthful totals; query-plan evidence before new indexes | | Replay-stable object identities | Fence attempt-specific writes before deterministic IDs; SQL attempt guards alone do not prevent a stale Storage overwrite; additive rollout for new roots only | | Observability | Allowlisted timing, attempts, cleanup age and cron diagnosis; no content/signed links/secrets; notification destination needs user authorization | diff --git a/docs/LLMISER_SHARED_DEADLINES.md b/docs/LLMISER_SHARED_DEADLINES.md index 9886f7b..f78cde7 100644 --- a/docs/LLMISER_SHARED_DEADLINES.md +++ b/docs/LLMISER_SHARED_DEADLINES.md @@ -1,6 +1,6 @@ # Shared conversion deadlines -Updated 29 October 2026. Candidate on `codex/shared-conversion-deadlines`; release evidence is pending. The preceding [Excel/assembly release](LLMISER_EXCEL_ASSEMBLY_MEMORY.md) remains the last verified runtime snapshot. +Updated 29 October 2026. Released in [PR #17](https://github.com/DevBehindYou/LLMiser/pull/17) at runtime revision `9131a2ac6163f22b630b008b40accb482ed3e0b3`. Later documentation-only commits do not change this verified source snapshot. This follows the [Excel/assembly release](LLMISER_EXCEL_ASSEMBLY_MEMORY.md). ## Scope and behavior @@ -20,10 +20,19 @@ References: [Node AbortSignal](https://nodejs.org/api/globals.html#static-method ## Validation and rollout -Local/generated checks currently pass: 270 frontend tests, 160 normal/PDF tests, 104 archive tests and 11 focused OCR/capacity tests. Coverage includes slow primary failover, no-time-before-dispatch, body decoding timeout, old-backend failover, expired database calls, queue claim suppression and durable retry recording; authenticated malformed/expired fields, valid/legacy output equality, clamping, duplicate fields, concurrent context isolation, upload-worker propagation, drip reads, slow upload acknowledgement, PDF/ZIP expiry, OCR subprocess budgets and image cleanup. Existing common-package integrity checks remain intact. The prior workstation-wide OCR readiness-suite limitation remains documented in the Excel report; full Linux OCR CI is required for release. +Local/generated checks currently pass: 270 frontend tests, 160 normal/PDF tests, 104 archive tests and 11 focused OCR/capacity tests. Coverage includes slow primary failover, no-time-before-dispatch, body decoding timeout, old-backend failover, expired database calls, queue claim suppression and durable retry recording; authenticated malformed/expired fields, valid/legacy output equality, clamping, duplicate fields, concurrent context isolation, upload-worker propagation, drip reads, slow upload acknowledgement, PDF/ZIP expiry, OCR subprocess budgets and image cleanup. Existing common-package integrity checks remain intact. The prior workstation-wide OCR readiness-suite limitation remains documented in the Excel report; full Linux OCR CI passed before merge and on merged main. Local lint, production build and dictionary/SQL/blog consistency passed. Before release, eight generated multipart workbook/ZIP requests with future deadline headers passed on all four document workers, confirming old-worker compatibility. Two actual public Storage conversions (XLSX and workbook ZIP), all four output downloads and exact saved-result recovery also passed as baselines; those two generated jobs follow normal retention. -CI, deployment and post-release acceptance are pending. Mixed versions remain compatible during rollout: old workers ignore the additional header, while new workers accept callers without it. Backend cooperative limits are therefore only verified after every worker has the new revision. Do not infer production deployment or savings from local tests. +All seven CI jobs passed on PR #17 and merged main, including 270 frontend tests, full normal/OCR/archive suites, PostgreSQL, edge and extension. All six production Vercel status contexts succeeded. Every N1/N2/Z1/Z2/O1/O2 health response reported exactly `9131a2ac6163f22b630b008b40accb482ed3e0b3` and engine readiness. Mixed-version compatibility was retained during rollout: old workers ignored the added header and new workers accepted legacy callers. No provider setting was changed for this rollout. No UI/localization/blog/visual, database migration, cron SQL, provider environment, supported-format, file-limit or retention change is included. Operator probes and raw evidence stay ignored under `project-docs/deadline-audit/`. + +Post-release generated acceptance on 29 October: + +- Thirty direct multipart protocol requests passed across N1/N2/Z1/Z2/O1/O2: each returned 401 for wrong authentication, 504 plus the deadline marker for expired authenticated requests, 400 for malformed deadlines, and 200 with complete output for valid/legacy callers. OCR workers read the generated image text correctly. These requests created no Storage jobs. +- Eight workbook/ZIP requests with future deadlines retained exactly the baseline complete Markdown hashes, character/word counts and engines. MarkItDown remains 0.1.9. +- The public frontend Storage flow passed XLSX and workbook-ZIP conversion, all four output-object downloads and fresh-link recovery, matching the pre-release primary Markdown hashes/counts. Two additional jobs completed image-containing ZIP → OCR → project merge and scanned PDF → OCR → PDF merge, preserving both expected OCR sentences, the ZIP Unicode end marker and exact recovered Markdown. Six real generated Storage jobs in total across pre/post/multi-stage checks follow existing retention; no cleanup was manually invoked. +- Twenty public-page/discovery/health and permanent path/query-preserving redirect checks passed. An uncached wake returned normal/OCR/archive each 2/2 ready; existing legacy API routing was unchanged. + +Cold-start/slow-failure boundaries were tested with generated/fake-clock fixtures, not a production stress test or a forced Render sleep. Small-file acceptance is not a maximum-size/concurrency or billing guarantee. Authenticated controller operations, real cleanup execution, hard native-process cancellation and replay-safe Storage fencing remain outside this slice. diff --git a/docs/START_HERE.md b/docs/START_HERE.md index eca3e6a..7cf6324 100644 --- a/docs/START_HERE.md +++ b/docs/START_HERE.md @@ -4,7 +4,7 @@ Updated 29 October 2026. **LLMiser is the sole working repository and the source ## Current state -The app is live at https://llmiser.devbehindyou.com. PRs #1–#15 are merged; the latest verified runtime revision is `3db41140521d5cfb1bb3bfd12865feca5a8cc95b` from PR #15. All seven CI jobs passed before and after merge, including 261 frontend tests; all six production Vercel statuses succeeded. Every N/O/Z worker reports that exact revision and readiness. Eight generated workbook/ZIP multipart checks, two Storage-backed conversion/recovery checks and 20 public HTTP/redirect checks passed after release; all pools are 2/2 ready. See [Excel/assembly release evidence](LLMISER_EXCEL_ASSEMBLY_MEMORY.md), [CSV capacity](LLMISER_PARSER_CAPACITY.md), [large previews](LLMISER_LARGE_PREVIEWS.md) and [retirement evidence](LLMISER_LEGACY_RETIREMENT.md). +The app is live at https://llmiser.devbehindyou.com. PRs #1–#17 are merged; the latest verified runtime revision is `9131a2ac6163f22b630b008b40accb482ed3e0b3` from PR #17. All seven CI jobs passed before and after merge, including 270 frontend tests and Linux OCR; all six production Vercel statuses succeeded. Release checks confirmed that exact revision and readiness on every N/O/Z worker. Thirty protocol checks, eight workbook/ZIP equivalence checks, four post-release Storage conversion/recovery jobs and 20 public HTTP/redirect checks passed; all pools were 2/2 ready. See [shared deadlines](LLMISER_SHARED_DEADLINES.md), [Excel/assembly](LLMISER_EXCEL_ASSEMBLY_MEMORY.md), [CSV capacity](LLMISER_PARSER_CAPACITY.md) and [retirement evidence](LLMISER_LEGACY_RETIREMENT.md). The full app supports English (US), German, Japanese, Spanish, Russian and Simplified Chinese. The browser remembers the interface language; documents are not translated and OCR languages are unchanged. Blogs remain English. Eight articles, eight banners and forty figures are complete. The Chrome extension source is merged, but native acceptance and store publication remain pending. @@ -14,7 +14,7 @@ Released [parser capacity and CSV memory reduction](LLMISER_PARSER_CAPACITY.md) Released [Excel and final-result memory](LLMISER_EXCEL_ASSEMBLY_MEMORY.md) processes workbook sheets sequentially, bounds temporary word-count allocations and defers ZIP output encoding to the existing upload workers. Local untraced peaks fell about 2% for XLSX, 5% for XLS, 15% for ZIP assembly and 17% for profile finalization, with identical output; timing varies and the XLS median regressed. Production output/recovery equivalence passed. Native/concurrent parser peaks, full normalization/serialization, representative-device input behavior and the shared-deadline queue remain separate work. -Current candidate: [shared conversion deadlines](LLMISER_SHARED_DEADLINES.md), branch `codex/shared-conversion-deadlines`. Retries share each invocation's remaining time; workers receive an optional authenticated deadline and reserve finalization time. Existing job lifetime, queue limits and retention stay compatible. Release checks are pending; the runtime revision above remains the last verified release. +Released [shared conversion deadlines](LLMISER_SHARED_DEADLINES.md) let retries share each invocation's remaining time, account for cold-start/transport time and reserve recording/saving time. Optional authenticated worker headers preserve legacy callers. Expiry cannot be hidden as partial PDF/ZIP success. Production checks include real OCR images, an image-containing ZIP and a scanned PDF with exact saved-result recovery. Native parsing/lock waits remain cooperative; this adds no whole-job lifetime or exactly-once Storage guarantee. Controller detail pagination is the next implementation item in the queue. ## Legacy frontend replacement is deployed diff --git a/docs/ai-handover/HANDOVER.md b/docs/ai-handover/HANDOVER.md index 06b7de0..0de1aee 100644 --- a/docs/ai-handover/HANDOVER.md +++ b/docs/ai-handover/HANDOVER.md @@ -4,7 +4,7 @@ Updated 29 October 2026. Start with [START_HERE](../START_HERE.md). This replace ## What the owner wants now -The owner selected Excel conversion and final-result assembly memory optimization after the retirement handover. That slice is now released in PR #15; use its evidence and the remaining optimization queue below. LLMiser must also remain independently maintainable after MDify and MDify-Pro are deleted. Keep immediate permanent redirects on the old public hosts and the minimal LLMiser-only fallback; repository/service deletion is not being executed here. +The owner resumed the optimization queue after the Excel/assembly release. Shared conversion deadlines are now released in PR #17. Continue from the remaining queue rather than repeating either slice. LLMiser must also remain independently maintainable after MDify and MDify-Pro are deleted. Keep immediate permanent redirects on the old public hosts and the minimal LLMiser-only fallback; repository/service deletion is not being executed here. ## Work already shipped @@ -16,7 +16,7 @@ The owner selected Excel conversion and final-result assembly memory optimizatio - Product-focused README with screenshots, recorded language demo, steps, format limits and measured-versus-unmeasured keyword notes. - Chrome extension 0.2.0 source: one Converter toolbar popup, file picker/drop, manual Paste into detected AI sites, uploaded-job recovery. No public store release or completed native acceptance is claimed. -PRs #1–#15 merged. Latest verified runtime revision: `3db41140521d5cfb1bb3bfd12865feca5a8cc95b`. [PR #15](https://github.com/DevBehindYou/LLMiser/pull/15) released Excel/assembly memory changes after all seven CI jobs passed, including 261 frontend tests and Linux OCR. Main CI passed all seven again. All six production Vercel statuses succeeded, and every N/O/Z worker reported the same revision and readiness. Eight generated multipart workbook/ZIP checks, two production Storage conversion/recovery checks and 20 HTTP/redirect checks passed; all pools were 2/2 ready. See [Excel/assembly evidence](../LLMISER_EXCEL_ASSEMBLY_MEMORY.md), [CSV capacity](../LLMISER_PARSER_CAPACITY.md), [large previews](../LLMISER_LARGE_PREVIEWS.md) and [retirement acceptance](../LLMISER_LEGACY_RETIREMENT.md). +PRs #1–#17 merged. Latest verified runtime revision: `9131a2ac6163f22b630b008b40accb482ed3e0b3`. [PR #17](https://github.com/DevBehindYou/LLMiser/pull/17) released shared deadlines after all seven CI jobs passed, including 270 frontend tests and full Linux OCR; merged main passed the same jobs. All six production Vercel statuses succeeded, and every N/O/Z worker reported the exact revision and readiness. Thirty protocol requests, eight workbook/ZIP equivalence checks, four post-release production Storage conversion/recovery jobs and 20 HTTP/redirect checks passed; all pools were 2/2 ready. See [deadline evidence](../LLMISER_SHARED_DEADLINES.md), [Excel/assembly](../LLMISER_EXCEL_ASSEMBLY_MEMORY.md) and [retirement acceptance](../LLMISER_LEGACY_RETIREMENT.md). ## Repository and private-material boundaries @@ -54,7 +54,7 @@ Active local tooling now has zero absolute references to either old checkout. LL ## Verification commands -Current candidate: [shared conversion deadlines](../LLMISER_SHARED_DEADLINES.md), `codex/shared-conversion-deadlines`. Distinguish its pending release from the verified Excel runtime. The protocol is optional and per invocation, with a 60-second frontend recording/signing reserve and ten-second worker finalization reserve. Preserve legacy callers, auth precedence, context isolation, complete-result semantics and existing durable retry/lease rules. Native parser execution and lock waits remain cooperative rather than forcibly cancelled. +Released [shared conversion deadlines](../LLMISER_SHARED_DEADLINES.md), PR #17 at 9131a2a. Conversion/start/advance/tick establish a 300-second invocation budget; dispatch/failover reserves 60 seconds for recording/signing. Workers receive an optional authenticated absolute deadline, convert it to monotonic request-local time and reserve ten seconds at compute boundaries. Keep auth precedence, explicit deadline markers, ContextVar isolation/worker propagation, legacy fallback and existing retry/lease rules intact. Native parser execution/lock waits are cooperative, not forcibly cancelled; partial writes can exist and attempt fencing remains separate. There is no new whole-job lifetime, SQL, retention or concurrency setting. Released optimization: [Excel and final-result memory](../LLMISER_EXCEL_ASSEMBLY_MEMORY.md), PR #15 at 3db4114. N/Z Excel adapters use verified MarkItDown 0.1.8/0.1.9, the same per-sheet pandas/HTML formatting, sequential frame release and XLS on-demand sheet unloading. Shared 64 Ki-character word counting preserves Python whitespace/token semantics across N/O/Z. Archive writes retain text/byte counts and encode within the existing four upload workers after full preflight. Preserve unknown-version/image-hook fallback, complete results and preflight-before-write behavior. Local measurements are not hosting/concurrency guarantees; the small production Storage fixtures do not establish large-job capacity. @@ -62,7 +62,7 @@ The owner asked to continue the optimization plan after the retirement handover. PR #13 released [a parser-capacity audit and bounded CSV memory reduction](../LLMISER_PARSER_CAPACITY.md) at 165d2b0. N/Z use identical `app/csv_converter.py` modules, outside the three-pool shared `common/` package so OCR gains no MarkItDown dependency. Enable only on verified upstream 0.1.8/0.1.9; unknown versions/missing helper retain the original converter. Never expand the version allowlist without output-equivalence tests. Generated before/after hashes match, including synchronized conversions; queue limits and all other parsers stay unchanged. Local suites passed 118 normal/98 archive tests, 25 tests on 0.1.8, and the expected 0.1.7 fallback checks. CI/deployment and post-release generated multipart probes passed. These direct worker probes created no Storage jobs and do not replace browser/Storage-backed acceptance. -Next investigate native textarea/input behavior and representative devices before editor virtualization, profile native/concurrent parser and normalization/serialization peaks, or take the shared-deadline item from [the optimization queue](../LLMISER_OPTIMIZATION_PLAN.md). Do not repeat released Excel/preview changes or truncate outputs. The 29 October generated XLSX/ZIP acceptance includes actual production Storage downloads/recovery; scanned-PDF, live OCR-image, authenticated admin and cleanup execution were outside that acceptance. The optimization plan's 22 October unmerged-branch statements are historical. +Next implementation item: controller detail pagination for files/tree/events/work-items, with stable cursors and accurate totals. Native browser/input profiling, native/concurrent parser peaks, response serialization, replay-safe Storage attempts and other items remain in [the queue](../LLMISER_OPTIMIZATION_PLAN.md). Do not repeat released preview/Excel/deadline changes or truncate outputs. The deadline acceptance includes actual Storage recovery, real multipart OCR and multi-stage image-ZIP/scanned-PDF jobs; authenticated admin and actual cleanup execution were outside it. Earlier unmerged-branch statements in the optimization plan are historical. Use Node.js 22. From `frontend`: diff --git a/docs/ai-handover/PROGRESS.md b/docs/ai-handover/PROGRESS.md index 1f5def1..2db3e3a 100644 --- a/docs/ai-handover/PROGRESS.md +++ b/docs/ai-handover/PROGRESS.md @@ -15,13 +15,14 @@ Updated 29 October 2026. This is the current tracker. Earlier phase-specific num | Six-language web app | PR #5 released; English US, German, Japanese, Spanish, Russian, Simplified Chinese; now 631 messages each after PR #11 | | Final display-label fixes | PR #6 merged/deployed; preview labels/tooltips, mobile theme and retention labels | | Public README | Screenshots, recorded demo, steps, formats, profiles, privacy and FAQs; separate keyword evidence | -| Final frontend CI | PR #15 and merged main: 261 tests passed; lint, dictionaries, SQL/blog consistency and production build passed | +| Final frontend CI | PR #17 and merged main: 270 tests passed; lint, dictionaries, SQL/blog consistency and production build passed | | Other CI | Backend N/O/Z, PostgreSQL, edge and extension jobs passed | -| Production deployment | Latest runtime change `3db41140521d5cfb1bb3bfd12865feca5a8cc95b`; all six Vercel statuses successful; exact revision/readiness confirmed on N1/N2/Z1/Z2/O1/O2 | +| Production deployment | Latest runtime change `9131a2ac6163f22b630b008b40accb482ed3e0b3`; all six Vercel statuses successful; exact revision/readiness confirmed on N1/N2/Z1/Z2/O1/O2 | | Shared reader statistics | PR #9 merged/deployed; allocation-bounded counting and shared reader line/status metrics; preserved count semantics; synthetic benchmark and limits documented | | Large-preview control | PR #11 merged/deployed; generated browser profiling, explicit formatting above 50,000 characters, complete raw/copy/download acceptance, six-language notices | | CSV parser memory | PR #13 merged/deployed; verified-version output preservation in N/Z, synchronized generated measurements, and successful pre/post-release multipart CSV/ZIP probes on all four document workers | | Excel and final-result memory | PR #15 merged/deployed; sequential sheets, exact bounded word counts and bounded output encoding; generated multipart and actual Storage/download/recovery acceptance passed | +| Shared conversion deadlines | PR #17 merged/deployed; shared invocation/attempt time, worker checkpoints and OCR/I/O limits; 30 protocol checks and real multi-stage Storage acceptance passed | | Production HTTP audit | 29 October: 20 public-page/discovery/health and permanent-redirect checks passed; documented legacy API routing unchanged | | Backend readiness | 29 October: all six workers report the released revision and ready; uncached public wake shows normal/OCR/archive each 2/2 | | Browser acceptance | All six languages, persistence, English-only blogs, translated policy/controller login; German 390px viewport had no horizontal overflow | @@ -50,7 +51,7 @@ See [release record](../LLMISER_RELEASE_2026-10-26.md), [localization](../LLMISE ## Remaining work -In progress: [shared conversion deadlines](../LLMISER_SHARED_DEADLINES.md). Candidate code and generated tests are complete; production build, CI and deployed protocol/Storage acceptance are pending. This does not replace the released Excel evidence below. +Released: [shared conversion deadlines](../LLMISER_SHARED_DEADLINES.md), PR #17 at 9131a2a. All seven CI jobs passed before/after merge, all six Vercel statuses succeeded and all six workers reported the exact revision/readiness. Thirty production auth/expired/invalid/valid/legacy protocol requests passed; eight future-header workbook/ZIP comparisons and two Storage baselines retained identical output/counts. Two additional Storage jobs exercised image-ZIP OCR/merge and scanned-PDF OCR/merge with exact recovery. Twenty public HTTP checks passed and all pools were 2/2 ready. Six generated Storage jobs in total across pre/post/multi-stage probes follow existing retention; cleanup was not manually run. Controller detail pagination is next; no whole-job lifetime or exactly-once write guarantee is claimed. Released: [Excel conversion and final-result assembly memory](../LLMISER_EXCEL_ASSEMBLY_MEMORY.md), explicitly selected by the owner, PR #15 at 3db4114. Local suites: 144 normal/101 archive tests; installed-version checks passed. All seven Linux CI jobs and six Vercel production statuses passed, with exact revision/readiness verified on all six workers including Render. Eight post-release generated multipart probes and two Storage-backed XLSX/ZIP conversions passed, including all four output objects and exact saved-result recovery. Before/after Markdown, counts and index hashes match; manifest job IDs correctly differ. All 20 HTTP checks passed and all pools were 2/2 ready. Four real jobs across before/after tests follow normal retention; cleanup execution itself was not tested. Local Windows OCR readiness-suite failure is preserved in the report; Linux OCR CI passed. @@ -64,7 +65,7 @@ The owner resumed the implementation plan after the handover was merged in PR #8 - Audit provider Git connections and all consumers before retiring old backend services or deleting their source repositories. Do not delete shared data, bucket, Vault entries, cleanup functions or compatibility contracts. - Complete native Chrome 0.2.0 acceptance and store publication; source merge does not publish the extension. - Native-language review and broader device testing remain useful; UI localization does not expand OCR languages. -- The 29 October slice freshly accepted generated XLSX/ZIP production uploads, all output downloads and recovery. Scanned-PDF/live OCR-image/admin/actual-cleanup acceptance was outside this slice; prior evidence for those remains dated. +- The latest deadline slice accepted actual OCR multipart conversion and generated XLSX/workbook-ZIP/image-ZIP/scanned-PDF Storage downloads/recovery. Authenticated admin and actual cleanup execution remain separate; historical releases retain their own acceptance limits. - Continue Search Console/Bing monitoring and old-domain redirect retention. Do not claim Google has completely replaced old results without current evidence. ## Blog maintenance