feat: highlight search matches and document the working UI
Core CI / core (ubuntu-latest) (push) Failing after 3m29s
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 7m23s
Core CI / desktop (macos-latest) (push) Canceled after 0s
Core CI / desktop (windows-latest) (push) Canceled after 0s

This commit is contained in:
karl committed 2026-10-12 19:57:34 +02:00
1 parent b8400c4fbf
commit 79553ce921
26 files changed
+4124 -50

No files matched your search

+17 -1
View File
@@ -9,7 +9,7 @@ and `SEARCHI_FORCE_CPU=1`.
- Native desktop: **9/9 tests passed**, including structured trace/basic responses.
Post-generation cached query warmup is implemented but its interactive first-query gate remains open.
Frontend: **18/18 tests passed**, TypeScript/Vite production build and
Frontend: **31/31 tests passed**, TypeScript/Vite production build and
formatting passed. Preview policy tests cover fractional timestamp seeking,
image labels, one active/latest pending request, stale replies and Escape.
- Semantic adapter: **8 default tests passed**; the explicit 48 MP resource test
@@ -75,6 +75,22 @@ mirroring; they do not run merely because code is pushed to Gitea. The current
workflow checks do not automatically certify downloaded Google assets or the
separately built worker. CI configuration is not remote job evidence.
## README capture evidence (2026-10-12)
The README now includes four visually inspected browser captures of the
production frontend over a real, retained Google CPU engine: light/dark PDF
search, image search and granular performance details. The independent capture
backend passed three tests and strict Clippy. Live capture assertions verified
the first PDF result and page 2, its notice clause, loaded photo pixels, and
actual worker inference counters. All captures use an owned headless browser
with CPU flags and licensed/generated fixture content; no recorded responses
are replayed. These checks supplement native desktop QA, which remains open.
Literal highlights are checked in result snippets and the actual preview text.
The small match explanation is closed by default and can be opened to inspect
the real page location. Media placeholder text receives no invented word marks.
[Reproduction](../tools/desktop-capture/README.md),
[runtime/query/image evidence](screenshots/capture-manifest.json).
## Historical evidence
Initial engine/CLI checks covered retrieval, persistence, filesystem changes,
+450
View File
@@ -0,0 +1,450 @@
{
"kind": "browser-rendered-production-ui-real-cpu-engine",
"source": {
"base_commit": "b8400c4fbf4038820c383ed429207a3b339bf0a5",
"working_tree_dirty": true
},
"viewport": {
"width": 1440,
"height": 1000
},
"runner": {
"playwright": "1.64.0",
"chromium": "156.0.8078.4"
},
"backend": {
"mode": "readme-capture",
"model": "google/embeddinggemma-2",
"device": "cpu",
"runtime": "b11461-no-logits-v1",
"threads": 1,
"dimensions": 768,
"ready": true,
"rust_build_profile": "debug"
},
"cpu_flags": [
"--disable-gpu",
"--disable-accelerated-video-decode",
"--disable-webgl"
],
"native_window_chrome": false,
"native_visual_qa_complete": false,
"measured_queries": [
{
"query": "cancel the supplier partnership",
"mode": "basic",
"result_count": 7,
"metrics": {
"dropped_spans": 0,
"result_count": 7,
"total_ms": 84.7475,
"trace": null
},
"first_filename": "Supplier Agreement.pdf",
"first_source": {
"kind": "page",
"number": 2
},
"ui_checks": {
"literal_query_marks": true,
"actual_page_explanation": true,
"why_disclosure_collapsed_by_default": true
}
},
{
"query": "mountains reflected in calm water",
"mode": "basic",
"result_count": 7,
"metrics": {
"dropped_spans": 0,
"result_count": 7,
"total_ms": 83.50019999999999,
"trace": null
},
"first_filename": "Mountain Lake.jpg",
"first_source": {
"kind": "image",
"number": 0
},
"ui_checks": {
"meaning_only_image_has_no_text_marks": true
}
},
{
"query": "cancel the supplier partnership",
"mode": "debug",
"result_count": 7,
"metrics": {
"dropped_spans": 0,
"result_count": 7,
"total_ms": 81.5728,
"trace": [
{
"counters": {},
"duration_ms": 81.5544,
"name": "hybrid.search",
"parent": null,
"start_ms": 0.0106
},
{
"counters": {},
"duration_ms": 1.5203,
"name": "lexical.search",
"parent": 0,
"start_ms": 0.0281
},
{
"counters": {
"query_bytes": 31
},
"duration_ms": 0.0383,
"name": "lexical.normalization",
"parent": 1,
"start_ms": 0.0386
},
{
"counters": {
"frequency_cache_hits": 29,
"frequency_cache_misses": 0,
"trigram_index": 1
},
"duration_ms": 0.1389,
"name": "lexical.candidate_plan",
"parent": 1,
"start_ms": 0.0871
},
{
"counters": {},
"duration_ms": 0.1952,
"name": "lexical.exact_filename",
"parent": 1,
"start_ms": 0.2358
},
{
"counters": {
"filters_active": 0,
"rows": 0
},
"duration_ms": 0.16620000000000001,
"name": "lexical.filtered_sql",
"parent": 4,
"start_ms": 0.254
},
{
"counters": {},
"duration_ms": 0.183,
"name": "lexical.filename_substring",
"parent": 1,
"start_ms": 0.44539999999999996
},
{
"counters": {
"filters_active": 0,
"rows": 0
},
"duration_ms": 0.15589999999999998,
"name": "lexical.filtered_sql",
"parent": 6,
"start_ms": 0.4609
},
{
"counters": {},
"duration_ms": 0.1605,
"name": "lexical.path_substring",
"parent": 1,
"start_ms": 0.642
},
{
"counters": {
"filters_active": 0,
"rows": 0
},
"duration_ms": 0.1332,
"name": "lexical.filtered_sql",
"parent": 8,
"start_ms": 0.6575
},
{
"counters": {},
"duration_ms": 0.1908,
"name": "lexical.content",
"parent": 1,
"start_ms": 0.8159000000000001
},
{
"counters": {
"filters_active": 0,
"rows": 0
},
"duration_ms": 0.1622,
"name": "lexical.filtered_sql",
"parent": 10,
"start_ms": 0.8313
},
{
"counters": {},
"duration_ms": 0.21509999999999999,
"name": "lexical.filename_terms",
"parent": 1,
"start_ms": 1.0205
},
{
"counters": {
"filters_active": 0,
"rows": 0
},
"duration_ms": 0.1858,
"name": "lexical.filtered_sql",
"parent": 12,
"start_ms": 1.0362
},
{
"counters": {},
"duration_ms": 0.27109999999999995,
"name": "lexical.media_metadata",
"parent": 1,
"start_ms": 1.2537
},
{
"counters": {
"filters_active": 0,
"rows": 0
},
"duration_ms": 0.2419,
"name": "lexical.filtered_sql",
"parent": 14,
"start_ms": 1.2715999999999998
},
{
"counters": {},
"duration_ms": 0.0155,
"name": "hybrid.identifier_priority",
"parent": 0,
"start_ms": 1.5598999999999998
},
{
"counters": {
"failed": 0,
"request_encode_us": 20,
"request_write_us": 54,
"response_validate_us": 94,
"worker_batch_prepare_us": 16,
"worker_inference_us": 77535,
"worker_pool_normalize_us": 18,
"worker_token_count": 13,
"worker_tokenization_us": 146,
"worker_wait_and_response_decode_us": 78781
},
"duration_ms": 79.06530000000001,
"name": "semantic.query_embedding",
"parent": 0,
"start_ms": 1.5843999999999998
},
{
"counters": {
"general_lane": 1
},
"duration_ms": 0.8277,
"name": "semantic.routing",
"parent": 0,
"start_ms": 80.6811
},
{
"counters": {
"ann_passes": 1,
"filesystem_checks": 2,
"result_files": 7
},
"duration_ms": 0.7831,
"name": "semantic.retrieval",
"parent": 18,
"start_ms": 80.71549999999999
},
{
"counters": {},
"duration_ms": 0.1451,
"name": "semantic.generation_snapshot",
"parent": 19,
"start_ms": 80.73429999999999
},
{
"counters": {
"cache_hit": 1
},
"duration_ms": 0.017499999999999998,
"name": "semantic.ann_load",
"parent": 19,
"start_ms": 80.89150000000001
},
{
"counters": {},
"duration_ms": 0.0108,
"name": "semantic.filter_normalization",
"parent": 19,
"start_ms": 80.9172
},
{
"counters": {
"cache_hit": 1,
"eligible_chunks": 8
},
"duration_ms": 0.0245,
"name": "semantic.eligibility",
"parent": 19,
"start_ms": 80.93599999999999
},
{
"counters": {
"requested_chunks": 8
},
"duration_ms": 0.49450000000000005,
"name": "semantic.ann_pass",
"parent": 19,
"start_ms": 80.9745
},
{
"counters": {
"returned_chunks": 8
},
"duration_ms": 0.036000000000000004,
"name": "semantic.ann_search",
"parent": 24,
"start_ms": 80.9829
},
{
"counters": {
"filesystem_checks": 2,
"unique_parents": 7
},
"duration_ms": 0.4331,
"name": "semantic.parent_materialization",
"parent": 24,
"start_ms": 81.0271
},
{
"counters": {
"valid": 1
},
"duration_ms": 0.1684,
"name": "semantic.parent_filesystem_validation",
"parent": 26,
"start_ms": 81.1383
},
{
"counters": {
"valid": 1
},
"duration_ms": 0.0964,
"name": "semantic.parent_filesystem_validation",
"parent": 26,
"start_ms": 81.333
},
{
"counters": {
"lexical_files": 0,
"semantic_files": 7
},
"duration_ms": 0.0385,
"name": "hybrid.rank_fusion",
"parent": 0,
"start_ms": 81.5188
}
]
},
"first_filename": "Supplier Agreement.pdf",
"first_source": {
"kind": "page",
"number": 2
},
"ui_checks": {
"literal_query_marks": true,
"actual_page_explanation": true,
"why_disclosure_collapsed_by_default": true
}
}
],
"screenshots": [
{
"file": "search-light.png",
"sha256": "a8347729d7995d0354fd45c1d0762d3fe33adbf0dfcf9ac3387073e522710b15",
"query": "cancel the supplier partnership",
"mode": "basic",
"result_count": 7,
"selected_filename": "Supplier Agreement.pdf",
"first_source_kind": "page",
"first_source_number": 2,
"theme": "light",
"summary": "7 RESULTS · KEYWORD + MEANING · SEARCH 85 MS · SHOWN 543 MS",
"state_assertions": {
"semantic_ready": true,
"hybrid_final": true,
"image_visible": false,
"actual_worker_inference": false,
"literal_query_marks": true,
"actual_page_explanation": true,
"why_disclosure_collapsed_by_default": true
}
},
{
"file": "search-dark.png",
"sha256": "b8cf9505ada4afb439edd469d58868fff92dd99cf9b62b6d4a5127307c1e36a7",
"query": "cancel the supplier partnership",
"mode": "basic",
"result_count": 7,
"selected_filename": "Supplier Agreement.pdf",
"first_source_kind": "page",
"first_source_number": 2,
"theme": "dark",
"summary": "7 RESULTS · KEYWORD + MEANING · SEARCH 85 MS · SHOWN 543 MS",
"state_assertions": {
"semantic_ready": true,
"hybrid_final": true,
"image_visible": false,
"actual_worker_inference": false,
"literal_query_marks": true,
"actual_page_explanation": true,
"why_disclosure_collapsed_by_default": true
}
},
{
"file": "media-search.png",
"sha256": "db832104e3b2fc59bd07a4ea393d38d363c00385023e5f9e469726e076e9b9fe",
"query": "mountains reflected in calm water",
"mode": "basic",
"result_count": 7,
"selected_filename": "Mountain Lake.jpg",
"first_source_kind": "image",
"first_source_number": 0,
"theme": "light",
"summary": "7 RESULTS · KEYWORD + MEANING · SEARCH 84 MS · SHOWN 519 MS",
"state_assertions": {
"semantic_ready": true,
"hybrid_final": true,
"image_visible": true,
"actual_worker_inference": false,
"meaning_only_image_has_no_text_marks": true
}
},
{
"file": "performance-details.png",
"sha256": "149753ca90cda5d81254d43e15118b61325a61d7f0fb366b783d4e2dfac5d96d",
"query": "cancel the supplier partnership",
"mode": "debug",
"result_count": 7,
"selected_filename": "Supplier Agreement.pdf",
"first_source_kind": "page",
"first_source_number": 2,
"theme": "light",
"summary": "7 RESULTS · KEYWORD + MEANING · SEARCH 82 MS · SHOWN 514 MS",
"state_assertions": {
"semantic_ready": true,
"hybrid_final": true,
"image_visible": false,
"actual_worker_inference": true,
"literal_query_marks": true,
"actual_page_explanation": true,
"why_disclosure_collapsed_by_default": true
}
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 439 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB