126 lines
6.7 KiB
Markdown
126 lines
6.7 KiB
Markdown
# 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.
|