Conversation
9 tasks
Collaborator
Author
|
Closing unmerged in favor of the detailed investigation and colleague handoff in #4413. That issue records original symptoms, controlled timings and CPU profiles, causes, trade-offs, known prototype risks, proposed fixes, and acceptance criteria. The branch is retained for code reference and reproduction. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Human comments
What was wrong
Implementation handoff: issue #4413. This PR is retained as an unmerged prototype and evidence reference for a colleague.
Full-text SQLite searches blocked the server. File typeahead repeated workspace discovery and sorting, while plugin mentions waited for the slowest provider.
What changed
Provider selection is additive; the existing unfiltered mention endpoint remains supported. The raw route allowance increases by 1 KiB.
An optional CI profiling job preserves reproducible fixtures, individual timings, packaged runtimes, and CPU profiles. Reproduction instructions.
How you verified
3374bc3deb56c38e94e1c6ae9e2fcc8be305d327, including the paired profiling job.Trade-off: first search in a fresh packaged process increased from 143 to 245 ms median. Warm query time stayed about 132–136 ms; the worker removes server blocking without reducing SQL cost.
Matched timing and CPU evidence
Before:
a8cc3d740016b9e55cc80e222745525b4bbe6a27(merge base).After:
3374bc3deb56c38e94e1c6ae9e2fcc8be305d327.Download raw CI evidence: exact harness, fixture archive, runtime archives and hashes, machine manifest, individual samples, result hashes, logs, and 15 CPU profiles. CI retention is 90 days; a second copy is retained in this task's worktree.
Same four-vCPU Linux runner and Node 22.22.0; before/after/after/before order. One 54,000-segment SQLite fixture and a 10,000-file workspace. Cold means a fresh process and connection, not a flushed OS page cache. API latency excludes rendering, frontend debounce, and Connect.
All comparable result hashes matched. CPU-profile runs are excluded from timings.
Browser measurements use the same isolated app fixture, route, 1280 × 900 viewport at 2×, and deterministic 20 ms/1,600 ms providers. Ten unique queries per revision, typed at 80 ms per character. Timing starts on the final input event and ends on the first animation frame containing the matching row. Recording and tracing runs are separate from these samples.
CPU profiles locate about 1,213 ms of SQLite work on the main server before and 1,201 ms on the search worker after. The daemon's sampled
node:pathself-time fell from 268 to 51 ms across the matched profiling workload. These are sampled costs, not latency percentiles; startup and shutdown are present in the raw profiles. Browser traces and the exact UI fixture are retained with the task artifacts.All comparable search results, ordering, snippets, totals, file suggestions, and provider groups had matching hashes. Focused regressions cover discovery reuse/invalidation/expiry, independent providers, compatibility, worker responsiveness/cancellation, later writes, and result ordering.
The initial final-head CI attempt had two command-palette lazy-loading timeouts. That shard passed on retry at the same commit; no test assertions or product code were changed to obtain the pass.
Slop Cop review and P2 follow-ups
Reviewed head:
6548367b68d8d68e9fa34da1f7754664a8fe1ab2.Base:
a19b3ed4f7f834a1ecaa474161d031de219f5005.Scope:
git diff a19b3ed4f7f834a1ecaa474161d031de219f5005 6548367b68d8d68e9fa34da1f7754664a8fe1ab2(23 files).Verdict: PASS WITH FOLLOW-UPS. This consumes the PR's one deliberate code review.
undefined. Verify result delivery and rejection recovery remain intact. Performance finding.P2s remain follow-ups; none were implemented.
The initial slimming pass retained all 26 files. A subsequent simplification discussion identified the 699 lines of profiling tooling as evidence infrastructure rather than required product code, plus redundant worker error/cleanup handling and a route result wrapper. No simplification edits were applied before implementation was handed to a colleague through #4413. The branch remains intact for reference and reproduction.
The completed Slop Cop review was reused; no second code review ran. Later work added the profiling harness and evidence, then resolved the bundle-budget conflict with main. CI-equivalent checks ran remotely.
Before and after
Before:
a8cc3d7400· After:3374bc3deb· Captured at 2×.Same fixture, route, theme, and query replacement, approximately 500 ms after the final keystroke.
Before recording · After recording
This prototype was not approved through user QA and has not been merged. Issue #4413 owns the replacement implementation and its validation.
BB-Thread-ID: thr_kz4aksn579