Optional JSONPath query/extract support, FTS5 section/block search, mkt cache query and search. Local SQLite backend now supports parsed snapshot persistence, incremental refresh, cached querying, and ranked full-text search

This commit is contained in:
2026-05-04 10:32:06 +02:00
parent 36ff4cedab
commit 0015c8a385
11 changed files with 540 additions and 22 deletions

View File

@@ -3,7 +3,7 @@ id: MKTT-WP-0007
type: workplan
title: "Advanced Query and Local Index Backend"
domain: markitect
status: todo
status: done
owner: markitect-tool
topic_slug: markitect
planning_priority: P2
@@ -97,7 +97,7 @@ tree/text output modes.
```task
id: MKTT-WP-0007-T003
status: todo
status: done
priority: high
state_hub_task_id: "a7b46b32-f322-4fe0-a6fb-60b0b823593c"
```
@@ -105,6 +105,11 @@ state_hub_task_id: "a7b46b32-f322-4fe0-a6fb-60b0b823593c"
Support JSONPath over `Document.to_dict()` behind an optional dependency and
shared query result envelope.
Implemented: `query_document_jsonpath()` and `extract_document_jsonpath()` use
the optional `jsonpath-ng` dependency and return the same `QueryMatch` envelope
as the compact selector engine. CLI `mkt query` and `mkt extract` accept
`--engine jsonpath`.
## P7.4 - Build SQLite metadata and JSON index
```task
@@ -137,7 +142,7 @@ target.
```task
id: MKTT-WP-0007-T005
status: todo
status: done
priority: medium
state_hub_task_id: "0f03e9be-b6f0-4e4b-8220-3bbf638a892b"
```
@@ -145,6 +150,10 @@ state_hub_task_id: "0f03e9be-b6f0-4e4b-8220-3bbf638a892b"
Add full-text search over section and block text with source spans and
relevance ranking.
Implemented: local SQLite index creates an FTS5 `search_units` virtual table
for sections and blocks, including path, snapshot id, unit kind/index, heading,
text, source spans, and BM25 rank. CLI `mkt search <text>` queries it.
## P7.6 - Add incremental refresh
```task
@@ -177,7 +186,7 @@ deletes removed files.
```task
id: MKTT-WP-0007-T007
status: todo
status: done
priority: high
state_hub_task_id: "35cc63ff-3723-43d5-aaf6-f9312efa0f4b"
```
@@ -191,9 +200,15 @@ mkt cache query <selector-or-query>
mkt search <text>
```
Partial implementation: `mkt cache init` initializes the local SQLite store and
`mkt cache index <path>` builds or refreshes it. Cache-backed query and FTS
search remain part of this task.
Implemented:
- `mkt cache init`
- `mkt cache index <path>`
- `mkt cache query <selector-or-query>`
- `mkt search <text>`
The older lightweight manifest commands remain available as `mkt cache build`,
`mkt cache status`, and `mkt cache fingerprint`.
## Exit Criteria