ReMe/tests/unit
Ziyang Guo 0024d3a8de fix(stat): put mtime in the answer where the job description promises it
The ``stat`` job is advertised to agents as "Stat path (size, mtime, exists,
is_dir, is_file)", but the answer only ever carried the path, type and size —
``mtime`` lived solely in metadata, and MCP returns only ``response.answer``.
So an agent asking how fresh a file is got no answer, even though the tool
description told it the field was there.

Render mtime in both branches of the answer:

    stat: topics/n.md (file, 20 bytes, mtime 2026-09-21T15:50:52.880316)
    stat: topics (dir, mtime 2026-09-21T15:50:52.880316)

The value is hoisted into a local so the answer and ``metadata["mtime"]`` are
guaranteed to come from the same ``stat()`` call rather than two reads. The
module docstring claimed the agent receives "size, mtime, mime type, and ...
frontmatter"; it now states that size and mtime are in the answer while mime
and frontmatter stay in metadata, matching reality.

Metadata is unchanged, so programmatic consumers see no difference. This is
the same answer-completeness class as #564, found while auditing which
advertised job fields actually reach the LLM.
2026-09-21 15:53:43 +08:00
..
__init__.py init: reme version 0.4.0 (#284) 2026-06-22 15:41:19 +08:00
auto_resource_test_plugin.py feat(auto_resource): interpret image resources into daily notes (#500) 2026-09-07 12:00:38 +08:00
auto_resource_test_support.py feat(auto_resource): interpret image resources into daily notes (#500) 2026-09-07 12:00:38 +08:00
test_app_config_step.py feat: add workspace web APIs and star growth report (#416) 2026-08-05 18:03:37 +08:00
test_application_config.py feat: add entry-point plugin system and extract Auto Fin (#459) 2026-08-19 17:23:23 +08:00
test_as_embedding_lazy.py fix(embedding): isolate caches by vector space (#442) 2026-08-10 22:42:16 +08:00
test_auto_dream.py feat(proactive): separate proactive refresh from auto dream (#488) 2026-09-07 17:23:37 +08:00
test_auto_image_steps.py feat(auto_resource): interpret image resources into daily notes (#500) 2026-09-07 12:00:38 +08:00
test_auto_memory_cc.py refactor(agent): unify agent subprocess env, sessions, skills, and MCP/service jobs (#382) 2026-07-20 23:52:14 +08:00
test_auto_resource_review_regressions.py feat(auto_resource): interpret image resources into daily notes (#500) 2026-09-07 12:00:38 +08:00
test_background_steps.py feat(Tag filter): Add an optional rebuildable tag index for file frontmatter (#517) 2026-09-07 15:52:17 +08:00
test_base_agent_wrapper.py feat: refine local-first research and memory workflows (#444) 2026-08-11 23:32:34 +08:00
test_base_component.py feat(core): support live component replacement (#505) 2026-08-28 16:04:02 +08:00
test_cc_agent_wrapper.py feat(evaluation): track job calls and agent token usage in benchmarks (#406) 2026-08-04 11:42:18 +08:00
test_codex_agent_wrapper.py feat(evaluation): track job calls and agent token usage in benchmarks (#406) 2026-08-04 11:42:18 +08:00
test_common_steps.py feat: add frontend-ready wikilink graph APIs (#414) 2026-08-05 16:45:50 +08:00
test_component_registry.py feat: add entry-point plugin system and extract Auto Fin (#459) 2026-08-19 17:23:23 +08:00
test_compressor_step.py feat(benchmark): enhance session memory retrieval and isolate benchmark assets (#409) 2026-08-05 19:23:42 +08:00
test_config_parser.py feat(proactive): separate proactive refresh from auto dream (#488) 2026-09-07 17:23:37 +08:00
test_crud_steps.py fix(stat): put mtime in the answer where the job description promises it 2026-09-21 15:53:43 +08:00
test_daily_steps.py fix(auto-memory): preserve message timestamps (#310) 2026-07-01 17:15:07 +08:00
test_default_file_chunker.py fix(index): tolerate invalid text encoding (#490) 2026-08-26 16:16:26 +08:00
test_dingtalk_wait.py fix(release): harden embedding store and plugins for ReMe 0.4.1.9 (#503) 2026-08-28 11:35:04 +08:00
test_embedded_consumer_compat.py feat(core): support live component replacement (#505) 2026-08-28 16:04:02 +08:00
test_evaluation_interface.py feat(evaluation): track job calls and agent token usage in benchmarks (#406) 2026-08-04 11:42:18 +08:00
test_evolve_utils.py feat(Tag filter): Add an optional rebuildable tag index for file frontmatter (#517) 2026-09-07 15:52:17 +08:00
test_faiss_index_maintenance.py feat(faiss_file_store): upgrade FAISS to HNSW index with async reindex (#390) 2026-07-27 19:54:38 +08:00
test_file_catalog.py feat(core): support live component replacement (#505) 2026-08-28 16:04:02 +08:00
test_file_graph.py fix(persistence): avoid duplicate index dumps (#489) 2026-08-26 16:51:00 +08:00
test_file_store_consistency.py feat(Tag filter): Add an optional rebuildable tag index for file frontmatter (#517) 2026-09-07 15:52:17 +08:00
test_frontmatter_steps.py fix(file_io): auto appending suffix for all related steps (#430) 2026-08-11 11:09:28 +08:00
test_graph_snapshot_step.py feat: add frontend-ready wikilink graph APIs (#414) 2026-08-05 16:45:50 +08:00
test_http_client.py feat(benchmark): add lme benchmark steps (#326) 2026-07-07 18:53:39 +09:00
test_http_web_workspace.py feat(service): expose MCP through HTTP backend (#498) 2026-08-27 17:23:11 +08:00
test_injected_job_kwargs.py feat(Tag filter): Add an optional rebuildable tag index for file frontmatter (#517) 2026-09-07 15:52:17 +08:00
test_job.py feat(core): support live component replacement (#505) 2026-08-28 16:04:02 +08:00
test_json_file_chunker.py refactor(agent): unify agent subprocess env, sessions, skills, and MCP/service jobs (#382) 2026-07-20 23:52:14 +08:00
test_jsonl_file_chunker.py feat: add Auto Fin cookbook and managed outbound proxy support (#392) 2026-07-25 18:09:39 +08:00
test_keyword_index.py fix(index): make embedding rebuild explicit and scoped (#508) 2026-08-28 23:25:17 +08:00
test_line_anchor.py feat: simplify wikilink semantics and support line anchors (#412) 2026-08-05 11:47:50 +08:00
test_link_expansion.py feat: simplify wikilink semantics and support line anchors (#412) 2026-08-05 11:47:50 +08:00
test_local_embedding_store.py fix(embedding): retry 429 rate-limit errors instead of dropping the batch (#525) 2026-09-07 14:31:48 +08:00
test_logging_config.py feat: add Auto Fin cookbook and managed outbound proxy support (#392) 2026-07-25 18:09:39 +08:00
test_logo_utils.py feat(service): expose MCP through HTTP backend (#498) 2026-08-27 17:23:11 +08:00
test_markdown_file_chunker.py fix(index): tolerate invalid text encoding (#490) 2026-08-26 16:16:26 +08:00
test_outbound_proxy.py feat: add Auto Fin cookbook and managed outbound proxy support (#392) 2026-07-25 18:09:39 +08:00
test_package_versions.py ci(deps): automate AgentScope updates (#504) 2026-08-28 13:27:21 +08:00
test_packaging.py init: reme version 0.4.0 (#284) 2026-06-22 15:41:19 +08:00
test_path_permission.py feat(Step tools): add white/black path prefix permission filtering to read, edit, write (#391) 2026-07-27 17:20:21 +08:00
test_plugin.py feat(benchmark): extract BEAM and LongMemEval into standalone plugins (#512) 2026-09-03 14:06:39 +08:00
test_plugin_cli.py fix(release): harden embedding store and plugins for ReMe 0.4.1.9 (#503) 2026-08-28 11:35:04 +08:00
test_proactive_refresh.py feat(proactive): separate proactive refresh from auto dream (#488) 2026-09-07 17:23:37 +08:00
test_prompt_handler.py fix(prompt): default omitted conditional flags to false (#424) 2026-08-06 16:22:59 +08:00
test_read_image_steps.py docs: rename vault_dir to workspace_dir in documentation and examples (#286) 2026-06-22 16:58:57 +08:00
test_read_with_neighbors.py feat: simplify wikilink semantics and support line anchors (#412) 2026-08-05 11:47:50 +08:00
test_reindex.py feat(Tag filter): Add an optional rebuildable tag index for file frontmatter (#517) 2026-09-07 15:52:17 +08:00
test_reme_cli.py feat: simplify plugin setup and add management CLI (#485) 2026-08-23 17:58:20 +08:00
test_runtime_context.py feat(benchmark): add lme benchmark steps (#326) 2026-07-07 18:53:39 +09:00
test_search_step.py feat(benchmark): extract BEAM and LongMemEval into standalone plugins (#512) 2026-09-03 14:06:39 +08:00
test_service.py refactor(agent): unify agent subprocess env, sessions, skills, and MCP/service jobs (#382) 2026-07-20 23:52:14 +08:00
test_service_utils.py feat: add entry-point plugin system and extract Auto Fin (#459) 2026-08-19 17:23:23 +08:00
test_shell_step.py feat(core): add shell execution and runtime memory status (#344) 2026-07-14 16:31:41 +08:00
test_source_format_merge.py refactor: derive dialog paths from session_dir (#421) 2026-08-06 17:07:14 +08:00
test_status_step.py fix: skip dependency bindings in status memory walk (#510) 2026-08-31 16:24:41 +08:00
test_tag_index.py feat(Tag filter): Add an optional rebuildable tag index for file frontmatter (#517) 2026-09-07 15:52:17 +08:00
test_token_usage.py feat(evaluation): track job calls and agent token usage in benchmarks (#406) 2026-08-04 11:42:18 +08:00
test_tokenizer.py init: reme version 0.4.0 (#284) 2026-06-22 15:41:19 +08:00
test_tushare.py refactor: rebuild auto-fin and daily-paper cookbooks on structured-output agents (#432) 2026-08-07 23:53:14 +08:00
test_utils.py feat(evaluation): track job calls and agent token usage in benchmarks (#406) 2026-08-04 11:42:18 +08:00
test_wikilink_utils.py feat: simplify wikilink semantics and support line anchors (#412) 2026-08-05 11:47:50 +08:00
test_workspace_web_steps.py feat(backend): improve workspace support for web clients (#420) 2026-08-07 23:52:56 +08:00
test_write_metadata_lock.py init: reme version 0.4.0 (#284) 2026-06-22 15:41:19 +08:00
test_zvec_file_store.py feat(file_store): add ZvecLocalFileStore backend (#410) 2026-08-05 22:08:30 +08:00