ReMe/reme/steps/index
Ziyang Guo a99459ac93
Some checks are pending
CI / Python packages / Build and verify distributions (push) Waiting to run
CI / Python quality / GitHub Actions (push) Waiting to run
CI / Python tests / Unit Tests - py3.11 (push) Waiting to run
CI / Python tests / Unit Tests - py3.12 (push) Waiting to run
CI / Windows / CLI smoke - py3.11 (push) Waiting to run
CI and Release / Docker / Build and test / amd64 (push) Waiting to run
CI and Release / Docker / Publish multi-platform tags (push) Blocked by required conditions
Security / CodeQL / Analyze javascript-typescript (push) Waiting to run
CI / Python quality / Pre-commit (push) Waiting to run
CI / Python tests / Unit Tests - py3.13 (push) Waiting to run
CI / Python tests / Unit Tests - py3.14 (push) Waiting to run
CI and Release / Docker / Build and test / arm64 (push) Waiting to run
Security / CodeQL / Analyze python (push) Waiting to run
fix(reindex): return a readable summary so Studio stops showing a placeholder (#565)
* fix(reindex): return a readable summary so Studio stops showing a placeholder

`ReindexStep` assigned the store's report dict straight to
`response.answer`. ReMe Studio's settings panel already anticipates a string
answer:

    typeof result.answer === "string" && result.answer ? result.answer : t("indexRebuilt")

(`reme_studio/app/settings-center.tsx`), so with a dict answer that branch was
unreachable and every rebuild reported the generic "index rebuilt" text. The
operator never saw which scopes ran or how many entries each indexed.

Render the report as one summary line — `Reindexed scope=all: bm25=7,
embedding=5, tag=2` for the composite scope and `Reindexed scope=bm25: 3
indexed` for a single one. The report itself still lands in metadata, so
programmatic consumers are unaffected, and Studio needs no change because its
string branch now fires.

`reindex` is the only answer-carrying consumer of this step; no test asserted
the answer content, only metadata, so nothing else moved.

* chore(reindex): tighten the renderer and deduplicate the summary test

Review on #565: the helper's docstring carried the Studio background
that already lives in the PR description; the intermediate per_scope
dict collapses into the join generator; and the all-scope delegation
test now uses distinct counts (7, 5, 2) so it alone pins both the exact
summary answer and the full metadata report, replacing the overlapping
summary test.

* refactor(reindex): share summary return formatting

---------

Co-authored-by: jinli.yl <jinli.yl@alibaba-inc.com>
2026-10-14 11:25:48 +08:00
..
__init__.py feat(tags): add configurable tag indexing and filtered hybrid search (#530) 2026-09-10 18:01:09 +08:00
_change_batch.py init: reme version 0.4.0 (#284) 2026-06-22 15:41:19 +08:00
_dedup.py fix(search): isolate range dedup state (#465) 2026-08-20 16:15:30 +08:00
_source_format.py refactor: derive dialog paths from session_dir (#421) 2026-08-06 17:07:14 +08:00
_watch_rules.py feat(auto_resource): interpret image resources into daily notes (#500) 2026-09-07 12:00:38 +08:00
bm25_search.py refactor: derive dialog paths from session_dir (#421) 2026-08-06 17:07:14 +08:00
clear_paths.py feat(benchmark): add LongMemEval golden answer validation (#335) 2026-07-13 21:26:27 +08:00
clear_store.py init: reme version 0.4.0 (#284) 2026-06-22 15:41:19 +08:00
draft.py feat(lme): add cli execution and agentic search tooling (#334) 2026-07-08 17:43:09 +09:00
graph_snapshot.py feat: add frontend-ready wikilink graph APIs (#414) 2026-08-05 16:45:50 +08:00
init_changes.py docs: rename vault_dir to workspace_dir in documentation and examples (#286) 2026-06-22 16:58:57 +08:00
list_tags.py feat(tags): add configurable tag indexing and filtered hybrid search (#530) 2026-09-10 18:01:09 +08:00
log_changes.py init: reme version 0.4.0 (#284) 2026-06-22 15:41:19 +08:00
node_search.py init: reme version 0.4.0 (#284) 2026-06-22 15:41:19 +08:00
optimize_index.py feat(faiss_file_store): upgrade FAISS to HNSW index with async reindex (#390) 2026-07-27 19:54:38 +08:00
reindex.py fix(reindex): return a readable summary so Studio stops showing a placeholder (#565) 2026-10-14 11:25:48 +08:00
search.py refactor(auto-fin): one note per topic, merged by a separate digest step (#558) 2026-09-20 14:52:56 +08:00
traverse.py feat: add frontend-ready wikilink graph APIs (#414) 2026-08-05 16:45:50 +08:00
update_changes.py feat(tags): add configurable tag indexing and filtered hybrid search (#530) 2026-09-10 18:01:09 +08:00
vector_search.py refactor: derive dialog paths from session_dir (#421) 2026-08-06 17:07:14 +08:00
wait_for_paths.py feat(benchmark): add LongMemEval golden answer validation (#335) 2026-07-13 21:26:27 +08:00
watch_changes.py feat(benchmark): add lme benchmark steps (#326) 2026-07-07 18:53:39 +09:00