Repository navigation
feat(session-query): CJK search recall, merged session_search scopes, summary extraction, O(1) live fingerprints - #104
Merged
Conversation
… summary extraction, O(1) live fingerprints CJK recall: FTS5 unicode61 gains bigram folding on the indexing and query sides (ngramFtsText), two-character sub-words match inside CJK/kana/hangul runs, whitespace-separated terms AND as independent quoted phrases, and snippet presentation strips the inserted joins; SESSION_QUERY_SQLITE_SCHEMA_VERSION bumps to 10 so derived indexes rebuild. Tool merge: session_event_search is withdrawn and session_search absorbs the one-session scope — exactly one session_ids entry routes to the full event listing (caller's own session allowed, stopping before the active step, per-target authorization preserved) while absent or multiple ids keep the per-session best-match reading. Prompt text and descriptions are rewritten as decision-path guidance that names compacted-turn searchability and the compaction-history recovery path. Extraction: compaction/summary events project their summary blocks into shared search documents (dsh-session-query gains the dsh-compaction type-only dependency). Performance: live fingerprints become the O(1) (event count, last seq, surface replace generation) identity, and an unchanged fingerprint skips cloning, folding, and document rebuilding before every search.
…aul SHA The previous ledger commit truncated PLUGINS.md to zero bytes (a failed in-place edit swallowed the whole file); restore it from the feature commit and fill the placeholder with 60d6848.
…dens The shipped-composition expectation loses session_event_search (36 tools), the fresh-round-trip system-prompt golden carries the rewritten session-query guidance, and docs/module-graph.md regenerates for the new dsh-session-query -> dsh-compaction type-only edge.
… folders The /goal retry treated the mounted command bubble as pollution: on slow runners the bubble mounts before the composer re-renders the '/goal ' prefix, the poll timed out, and the pollution check counted the bubble itself. Accept either signal as engagement. The workspace dialog's Open could run before the host mkdir landed the new folder's selection on slow runners, adopting the parent and failing the follow-up realpath with ENOENT (8-test cascade). Wait for the created folder row before Open.
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.
Summary
unicode61gains bigram folding on the indexing and query sides (ngramFtsText); two-character sub-words now match inside CJK/kana/hangul runs, whitespace-separated query terms AND as independent quoted phrases (quoteFtsData), and snippet presentation strips the inserted joins.SESSION_QUERY_SQLITE_SCHEMA_VERSION9 → 10 so derived indexes rebuild. Verified againstnode:sqlitethat the previous tokenizer made Chinese sub-word queries return nothing (the root cause behind "messages unsearchable after compaction" misattribution).session_event_searchis withdrawn;session_searchabsorbs the one-session scope — exactly onesession_idsentry returns every matching event in that session (caller's own session allowed, stopping before the active step; per-target authorization andSESSION_QUERY_TOOL_NO_CURRENT_STEPpreserved), zero/several ids keep the per-session best-match reading.compaction_history_searchstays current-session-only by decision.compaction/summaryevents project summary blocks into shared search documents (dsh-session-querygains a type-onlydsh-compactiondependency, token-meter precedent).Tests
compaction/summaryextraction spec; merged-scope routing (authorization, step clamp, paging cap, cancellation, diagnostics sanitization, exclusivity).quoteFtsDataand unordered-term ranking (AND semantics is the intended contract change), tool catalogs (en/zh/website), acp/headless prompt & schema snapshots re-recorded keyless.rescope-vendor --checkfails identically on a clean tree ofdev.Agent Note:
.agents/notes/implemented/feature/2026-09-15-session-search-cjk-and-merged-scopes.md(+zh, +i18n). PLUGINS.md ledger row records60d68484ee.