Publish first usable Windows release instructions and validation
This commit is contained in:
1 parent
5eeba29c0d
commit
eabb1fbb54
9 files changed
+490
-19
No files matched your search
@@ -0,0 +1,125 @@
|
||||
# First usable Windows build
|
||||
|
||||
Status: first Windows installer and portable package built and locally installed;
|
||||
unsigned initial release, not production certification.
|
||||
Other-platform and million-record benchmarks are deferred at Karl's request.
|
||||
|
||||
The normal Windows x64 distribution includes the same hardware-detecting native
|
||||
Google worker, optimized/baseline CPU modules, Vulkan provider and loader, and
|
||||
app-local Microsoft C++ runtime. It is not a special CPU distribution. VM
|
||||
inference and WebView rendering checks force CPU/software operation. Real GPU
|
||||
execution and clean-machine/older-CPU compatibility remain unexecuted.
|
||||
|
||||
## Build procedure
|
||||
|
||||
The checked-in Tauri bundle setting remains unchanged. An ignored temporary
|
||||
override enables NSIS and the silent WebView2 download bootstrapper:
|
||||
|
||||
```json
|
||||
{"bundle":{"active":true,"windows":{"webviewInstallMode":{"type":"downloadBootstrapper","silent":true}}}}
|
||||
```
|
||||
|
||||
From `apps/desktop`, with one Cargo job:
|
||||
|
||||
```powershell
|
||||
$env:CARGO_BUILD_JOBS = '1'
|
||||
$env:SEARCHI_FORCE_CPU = '1'
|
||||
$env:WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS = '--disable-gpu --disable-accelerated-video-decode'
|
||||
npm run tauri -- build --features custom-protocol --bundles nsis --config ../../.searchi/qa/windows-first-release-config.json
|
||||
```
|
||||
|
||||
The explicit `custom-protocol` feature is essential: this CLI invocation did
|
||||
not add it automatically, and the first attempt correctly failed the release
|
||||
guard before packaging. The successful artifact must contain the embedded
|
||||
frontend rather than depend on a development server.
|
||||
|
||||
The portable ZIP is prepared from that same executable using
|
||||
`python tools/package_windows.py`, which verifies normal CPU/GPU dependency
|
||||
inventory, architecture, pinned decoder provenance and file hashes. Models,
|
||||
personal settings and indexes are excluded. Managed Google assets download on
|
||||
first use; cached, hash-verified assets are reused.
|
||||
|
||||
## Evidence to record before publication
|
||||
|
||||
- [x] Completed embedded-frontend Release build and source/frontend/executable hashes.
|
||||
- [x] Portable ZIP member integrity and pinned decoder startup.
|
||||
- [x] Extracted normal worker auto-to-CPU query and baseline-only fallback.
|
||||
- [x] Extracted app starts outside the source checkout with isolated data and
|
||||
model cache, and genuine local Google readiness/index generation.
|
||||
- [x] Installer bytes/hash and generated resource mapping inspected.
|
||||
- [ ] Execute installation/upgrade/uninstallation on a clean Windows machine.
|
||||
|
||||
## Executed Windows VM evidence, 2026-10-13
|
||||
|
||||
Source commit: `5eeba29`. The embedded frontend bundle is
|
||||
`index-CtE-o2qW.js`, SHA-256
|
||||
`deb3cdbeb4c4d34f17c0249674b37f7fd5cbdf7a01fef50c76d2eb50870817c5`.
|
||||
Release compilation completed in 1m58s after dependencies were built.
|
||||
|
||||
| Artifact | Bytes | SHA-256 |
|
||||
| --- | ---: | --- |
|
||||
| Portable ZIP | 145,419,558 | `dbab40f77902a5183d986222fadd8417aa46f053ee6066d73a06e7f893692060` |
|
||||
| Embedded-frontend executable | 23,950,336 | `9f9243e15dc7fc907c44af37e45226a24eed642a32e5dc82959fab92516ff564` |
|
||||
| NSIS x64 installer | 98,894,969 | `1494372cfd9b87dd4de38fd347fe0d18f886a51542e2f49218699aa84979bb3d` |
|
||||
|
||||
The ZIP contains 39 individually hash-verified application/resource files. No
|
||||
models, user settings or indexes are included. The normal worker SHA remains
|
||||
`c01cb3ec13cfca722ee768e8350e1399a8b9a4d14a24a35adc3473a5cfc82a73`.
|
||||
|
||||
The real extracted worker ran its query role with 512 tokens, `device=auto`
|
||||
and a child-only disabled Vulkan provider. It selected CPU, loaded no Vulkan
|
||||
module and returned a finite normalized 768-dimensional Google code-query
|
||||
vector. Optimized `ggml-cpu-cascadelake.dll` and baseline-only `ggml-cpu-x64.dll`
|
||||
both passed, including a Unicode relocation directory. Startup/query/exit took
|
||||
1.722s and 1.844s respectively; these are not warm-search or first-UI-input
|
||||
benchmarks. The packaged pinned FFprobe helper also started successfully.
|
||||
|
||||
The extracted desktop launched outside the source tree with isolated settings,
|
||||
data and hardlinked hash-verified Google assets. Two owned text/code fixtures
|
||||
were indexed through the shared engine. The app automatically published actual
|
||||
Google generation 1 with two chunks and a 6,544-byte ANN blob; publication was
|
||||
observed 10.106s after launch. It remained alive for another five seconds. The
|
||||
owned application process tree was then deliberately terminated. This proves
|
||||
native process/setup/indexing operation, not visual interaction or paint timing.
|
||||
|
||||
Ignored raw evidence: `.searchi/qa/windows-first-preview-worker.json`,
|
||||
`.searchi/qa/windows-first-preview-baseline.json`, and
|
||||
`.searchi/packages/first-preview-qa-Gemäß_日本/result.json`.
|
||||
|
||||
The initial NSIS attempt failed after its official ZIP was downloaded and hash
|
||||
verified, during tool extraction (`access denied`). A bundle-only retry uses
|
||||
the cached compiler and preserves the verified executable bytes with
|
||||
`--no-binary-patching`; it does not disable OS security or clear caches.
|
||||
That retry completed successfully with official NSIS 3.11. Its generated
|
||||
script installs app-local worker/CPU/GPU/decoder resources and downloads the
|
||||
Microsoft WebView2 bootstrapper when needed. The produced installer is
|
||||
`apps/desktop/src-tauri/target/release/bundle/nsis/searchi_0.1.0_x64-setup.exe`.
|
||||
No installer was executed during this evidence run: even a custom destination
|
||||
registers uninstall information and creates user shortcuts. User installation
|
||||
is handled separately. There is no signing, clean-machine WebView2 download,
|
||||
upgrade or uninstall claim.
|
||||
|
||||
Native visual interaction, fresh-machine WebView2 acquisition, installer
|
||||
upgrade/uninstall, SmartScreen/signing and actual GPU performance remain
|
||||
separate checks. A working preview does not close those production release gates.
|
||||
|
||||
## Local DEV-WIN11 installation
|
||||
|
||||
The installer was executed on the existing Windows 11 development machine.
|
||||
Installation with an explicit `C:/Users/karl/Applications/searchi` destination
|
||||
returned exit code zero; uninstall registration reports version 0.1.0 at that
|
||||
location. The installed executable SHA matches the packaged executable above.
|
||||
|
||||
An explicit destination avoids this Codex MSIX host's AppData filesystem
|
||||
virtualization. Existing local searchi data was preserved in an independent
|
||||
`C:/Users/karl/.searchi/desktop` profile; both genuine Google assets were
|
||||
hash-verified and hardlinked into the independent managed cache. No user folder
|
||||
was selected automatically. The desktop launcher sets only process-local CPU
|
||||
and software-WebView flags for this VM; the distributed package remains the
|
||||
normal hardware-detecting build.
|
||||
|
||||
The installed app was started with a native `searchi` window (PID 7716, window
|
||||
handle 8324222) and its packaged query worker (PID 19864), using one CPU thread
|
||||
and the independent cache. A desktop shortcut was created. This demonstrates
|
||||
local installation/startup and package selection, not a clean-machine test or
|
||||
native visual interaction audit. The app is left running for Karl to use.
|
||||
Reference in new issue
Block a user