feat: integrate Google semantic search and branded desktop launcher
Core CI / core (ubuntu-latest) (push) Failing after 3m27s
Core CI / core (macos-latest) (push) Canceled after 0s
Core CI / core (windows-latest) (push) Canceled after 0s
Core CI / desktop (ubuntu-latest) (push) Successful in 5m45s
Core CI / desktop (macos-latest) (push) Canceled after 0s
Core CI / desktop (windows-latest) (push) Canceled after 0s
Core CI / core (ubuntu-latest) (push) Failing after 3m27s
Core CI / core (macos-latest) (push) Canceled after 0s
Core CI / core (windows-latest) (push) Canceled after 0s
Core CI / desktop (ubuntu-latest) (push) Successful in 5m45s
Core CI / desktop (macos-latest) (push) Canceled after 0s
Core CI / desktop (windows-latest) (push) Canceled after 0s
This commit is contained in:
1 parent
a90df15503
commit
caf6a2f82e
80 files changed
+14971
-837
No files matched your search
@@ -102,3 +102,127 @@ is still not established. Query distribution and filters are not represented by
|
||||
this four-case fixture; restrictive broad filters and sub-three-character searches
|
||||
remain potentially slow, while correctness tests ensure late matching files are
|
||||
not lost through arbitrary pre-filter caps.
|
||||
|
||||
## Actual first foreground inputs, schema 8
|
||||
|
||||
The schema-8 run persists trigram frequency statistics in background preparation
|
||||
before allowing the measured inputs. Preparation took **17.21 seconds** and
|
||||
loaded 1,268 frequency entries. That time is reported separately and is not
|
||||
subtracted from a foreground query. The same 1M/100K fixture was reused.
|
||||
|
||||
The harness measures 20 different exact filenames, spread across the corpus,
|
||||
with no preceding query warmups. It then measures 20 different filenames, each
|
||||
on a newly opened reader without calling `prewarm` again, using persisted stats.
|
||||
This second set includes reader-open time. Both sets validate exact-match priority
|
||||
and record every raw query and duration. They are disjoint from each other and
|
||||
from the four-case exact query for this full fixture.
|
||||
|
||||
| Distinct first-input set | p50 | p95 | Actual very first input | Samples ≥50 ms |
|
||||
| --- | ---: | ---: | ---: | ---: |
|
||||
| Prepared reader, 20 names | 13.96 ms | 18.97 ms | **98.49 ms** | 1/20 |
|
||||
| Fresh readers, 20 other names | 16.78 ms | 22.73 ms | **103.57 ms** | 1/20 |
|
||||
|
||||
The p95 filename targets pass, but the very first zero-heavy filename in each
|
||||
set fails the 50 ms target. The nearest-rank p95 excludes one maximum sample
|
||||
when there are 20 samples, so p95 alone must not be used to claim that the actual
|
||||
first input is always fast. Explicit first-sample flags and maximum durations
|
||||
are included in the report, derived directly from the recorded raw samples.
|
||||
|
||||
| Existing case, first execution before its warmups | First input | First target | Repeated warm p95 |
|
||||
| --- | ---: | --- | ---: |
|
||||
| Exact filename at end of corpus | 16.31 ms | Passed <50 ms | 13.80 ms |
|
||||
| Broad filename substring | 13.01 ms | Passed <50 ms | 0.47 ms |
|
||||
| Unique content token | 14.07 ms | Passed <150 ms | 0.49 ms |
|
||||
| Broad keyword | **264.53 ms** | **Failed <150 ms** | 145.19 ms |
|
||||
|
||||
These measurements expose remaining first-input work even after frequency
|
||||
preparation. Zero-heavy names produce larger candidate sets, and broad content
|
||||
retrieval has a first-use penalty. This report does not establish the requested
|
||||
fast-first-input behavior as complete. It also does not represent a cold OS
|
||||
page-cache test: background preparation and previous operations can warm disk
|
||||
pages. Host workload isolation remains unverified. The retained report is
|
||||
`windows-cpu-full-prepared-v8.json`; engine code was not changed during this run.
|
||||
|
||||
## Background representative search and restart cost, schema 9
|
||||
|
||||
Schema 9 refreshes frequency statistics only when filename/path membership is
|
||||
dirty. It also runs representative searches in background. The report explicitly
|
||||
records the actual five background inputs from this corpus: `invoice_0000000.txt`,
|
||||
`invoice_0999999.txt`, `Supplier`, `termination`, and `cancellation`. Consequently
|
||||
the later first foreground executions of overlapping inputs are prepared inputs,
|
||||
not never-before-executed queries. This behavior is intentional application
|
||||
preparation, rather than an undisclosed benchmark warmup.
|
||||
|
||||
Initial preparation took **17.723 seconds**. A second `prewarm()` on a newly
|
||||
opened reader took **0.396 seconds**, reusing clean persisted statistics. That
|
||||
second call occurred only after all foreground measurements, so it could not
|
||||
improve their recorded first timings. Startup time is amortized when names have
|
||||
not changed; refresh after mutations still has an explicit background cost.
|
||||
|
||||
| Twenty distinct foreground names | p50 | p95 | Very first name | ≥50 ms |
|
||||
| --- | ---: | ---: | ---: | ---: |
|
||||
| Prepared reader | 12.75 ms | 14.40 ms | **85.38 ms** | 1/20 |
|
||||
| Newly reopened readers | 16.31 ms | 31.42 ms | **100.07 ms** | 1/20 |
|
||||
|
||||
The remaining zero-heavy filename outliers fail the first-input target even
|
||||
after representative preparation. Repeating that representative query in
|
||||
background does not eliminate its candidate-processing cost. The 20 distinct
|
||||
query sets remain unchanged from schema 8, and every raw sample and explicit
|
||||
first/max failure flag is retained.
|
||||
|
||||
| Existing case | First foreground | Repeated p95 | Target |
|
||||
| --- | ---: | ---: | --- |
|
||||
| Exact filename at corpus end | 13.48 ms | 13.22 ms | Passed <50 ms |
|
||||
| Filename substring | 3.20 ms | 0.43 ms | Passed <50 ms |
|
||||
| Unique content token | 2.57 ms | 0.53 ms | Passed <150 ms |
|
||||
| Broad keyword | 99.10 ms | 106.20 ms | Passed <150 ms |
|
||||
|
||||
Background initialization fixes the observed broad-keyword first-use penalty,
|
||||
but the full fast-first-input requirement remains incomplete because of the
|
||||
filename outliers. Further algorithmic filename work is required; the report
|
||||
does not infer that preparation makes every unseen query fast. This Windows
|
||||
CPU-only run is stored in `windows-cpu-full-prepared-v9.json`.
|
||||
|
||||
## Positional candidate correction and finalist projection
|
||||
|
||||
Extending the rarest trigram through the entire suffix regressed retrieval:
|
||||
the unchanged 20-name sets had p95 **136.60/129.17 ms**, and the first reopened
|
||||
zero-heavy name took **554.32 ms**. That rejected experiment remains recorded in
|
||||
`windows-cpu-full-suffix-anchor.json`. A long phrase can initialize dense suffix
|
||||
postings even when its first term is rare.
|
||||
|
||||
The replacement grows a positional anchor only through neighboring grams within
|
||||
a bounded frequency factor, with a maximum of 32 Unicode characters. Full literal
|
||||
verification and filter-before-limit completeness remain unchanged. Temporary
|
||||
lane profiling separated cheap indexed equality (about 0.06 ms in the diagnostic
|
||||
run) from first-use broad-prefix filename retrieval (about 67 ms). Generic
|
||||
alphabetic tokens derived from representative names now initialize those common
|
||||
postings in background. Unfiltered content searches rank compact IDs before
|
||||
materializing finalist paths/snippets; filtered ranking is kept complete.
|
||||
|
||||
The final unchanged 1M/100K corpus run uses these disclosed background inputs:
|
||||
first/last filenames, `invoice`, `txt`, and the first document words `Supplier`,
|
||||
`termination`, and `cancellation`. Clean-statistics preparation took **0.709 s**;
|
||||
a subsequent new-reader preparation took **0.264 s**. Earlier initial dirty
|
||||
statistics refresh still took roughly 17 seconds; this run does not erase that
|
||||
startup/refresh cost.
|
||||
|
||||
| Twenty distinct first inputs | p95 | Very first | Maximum | Samples ≥50 ms |
|
||||
| --- | ---: | ---: | ---: | ---: |
|
||||
| Prepared reader | 18.15 ms | 6.14 ms | 22.94 ms | 0/20 |
|
||||
| Newly reopened readers, including open | 30.86 ms | 30.86 ms | 34.28 ms | 0/20 |
|
||||
|
||||
| Existing case | First foreground | Repeated p95 | Target |
|
||||
| --- | ---: | ---: | --- |
|
||||
| Exact filename at corpus end | 4.37 ms | 3.77 ms | Passed <50 ms |
|
||||
| Filename substring | 14.18 ms | 1.23 ms | Passed <50 ms |
|
||||
| Unique content token | 10.06 ms | 0.72 ms | Passed <150 ms |
|
||||
| Broad keyword | 114.44 ms | 117.88 ms | Passed <150 ms |
|
||||
|
||||
All measured first-input samples and repeated-query p95 values pass in this
|
||||
Windows CPU run. The retained final report is
|
||||
`windows-cpu-full-candidate-first-final.json`, with every raw filename/sample.
|
||||
This establishes the measured fixture result, not a guarantee for all queries,
|
||||
filters, corpus distributions, cold OS caches, or other operating systems. The
|
||||
intermediate density-only reports retain remaining failures and are not promoted
|
||||
as final acceptance evidence.
|
||||
Reference in new issue
Block a user