memorymaster 3.17.0__tar.gz → 3.17.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {memorymaster-3.17.0/memorymaster.egg-info → memorymaster-3.17.1}/PKG-INFO +1 -1
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/steward.py +22 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1/memorymaster.egg-info}/PKG-INFO +1 -1
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster.egg-info/SOURCES.txt +1 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/pyproject.toml +1 -1
- memorymaster-3.17.1/tests/test_steward_daydream_hook.py +116 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/LICENSE +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/README.md +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/artifacts/bm25-per-field-eval-harness.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/benchmarks/longmemeval_runner.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/benchmarks/longmemeval_vector_runner.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/benchmarks/perf_smoke.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/__init__.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/__main__.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/_storage_lifecycle.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/_storage_read.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/_storage_schema.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/_storage_shared.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/_storage_sources.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/_storage_write_claims.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/access_control.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/action_exporters.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/action_extractor.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/atlas_claim_extractor.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/atlas_contract.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/auto_extractor.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/auto_resolver.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/candidate_dedupe.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/claim_edges.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/claim_verifier.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/cli.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/cli_handlers_basic.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/cli_handlers_curation.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/cli_helpers.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/closets.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/config.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/config_templates/claude-md-append.md +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/config_templates/codex-agents-md-append.md +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/config_templates/hooks/memorymaster-auto-ingest.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/config_templates/hooks/memorymaster-classify.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/config_templates/hooks/memorymaster-dream-sync.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/config_templates/hooks/memorymaster-precompact.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/config_templates/hooks/memorymaster-recall.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/config_templates/hooks/memorymaster-session-start.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/config_templates/hooks/memorymaster-steward-cycle.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/config_templates/hooks/memorymaster-validate-wiki.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/conflict_resolver.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/connectors/__init__.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/connectors/whatsapp.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/context_hook.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/context_optimizer.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/daily_notes.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/dashboard.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/db_merge.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/dream_bridge.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/embeddings.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/entity_extractor.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/entity_graph.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/entity_registry.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/federated_graphify.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/feedback.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/graph_store.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/hook_log.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/jobs/__init__.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/jobs/calibration.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/jobs/compact_summaries.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/jobs/compactor.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/jobs/daydream_ingest.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/jobs/decay.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/jobs/dedup.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/jobs/deterministic.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/jobs/entity_graph_export.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/jobs/extractor.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/jobs/staleness.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/jobs/validator.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/key_rotator.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/lifecycle.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/llm_provider.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/llm_rerank.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/llm_steward.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/mcp_server.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/mcp_usage.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/media_processing.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/media_providers.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/metrics_exporter.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/models.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/observability.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/operator.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/operator_queue.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/plugins.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/policy.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/postgres_store.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/qdrant_backend.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/qdrant_recall_fallback.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/qmd_bridge.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/query_classifier.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/query_expansion.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/recall_fusion.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/recall_tokenizer.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/retrieval.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/retry.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/review.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/rl_trainer.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/scheduler.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/schema.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/schema.sql +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/schema_postgres.sql +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/scope_utils.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/security.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/service.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/session_tracker.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/setup_hooks.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/skill_evolver.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/snapshot.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/steward_classifier.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/steward_features.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/storage.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/store_factory.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/transcript_miner.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/turn_schema.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/vault_bases.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/vault_curator.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/vault_exporter.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/vault_linter.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/vault_log.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/vault_query_capture.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/vault_synthesis.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/verbatim_recall.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/verbatim_store.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/webhook.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/wiki_engine.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/wiki_freshness.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/wiki_similarity.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/wiki_suggest.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/wiki_validate.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster.egg-info/dependency_links.txt +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster.egg-info/entry_points.txt +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster.egg-info/requires.txt +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster.egg-info/top_level.txt +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/agg_recall_latency.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/alert_operator_metrics.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/audit_dedupe_precision.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/autoresearch_daemon.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/backfill_entity_extraction.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/backfill_graph_store.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/backfill_stop_hook_citations.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/backtest_steward_classifier.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/build_steward_training_set.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/check_hook_template_drift.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/claude_to_turns.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/codex_live_to_turns.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/compaction_edge_cases.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/compaction_trace_report.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/compaction_trace_validate.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/confusion_matrix_eval.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/conversation_importer.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/conversation_to_turns.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/e2e_operator.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/email_live_to_turns.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/eval_bm25_sweep.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/eval_classify_f1.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/eval_memorymaster.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/eval_recall_precision_at_5.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/eval_recall_quality.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/eval_steward_pareto.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/eval_verbatim_recall.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/expand_recall_eval.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/generate_drill_signoff.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/git_to_turns.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/github_live_to_turns.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/gitnexus_to_claims.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/grid_recall_weights.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/index_claims_to_qdrant.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/ingest_planning_docs.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/jira_live_to_turns.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/label_prompts_with_judge.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/llm_benchmark.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/measure_dedupe_thresholds.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/merge_scope_variants.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/messages_to_turns.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/operator_metrics.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/precompute_candidates.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/recurring_incident_drill.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/release_readiness.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/run_codex_autologger.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/run_incident_drill.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/scheduled_ingest.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/setup-hooks.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/slack_live_to_turns.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/sync_hook_templates.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/tickets_to_turns.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/train_steward_classifier.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/scripts/webhook_to_turns.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/setup.cfg +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/bench_longmemeval.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/conftest.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/integration/test_extract_llm_ollama_live.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_access_control.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_action_exporters.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_action_extractor.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_atlas_claim_extractor.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_atlas_contract.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_atlas_source_schema.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_auto_extractor.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_auto_ingest_hook_citations.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_auto_ingest_hook_schema.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_auto_resolver.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_auto_validate.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_bm25_per_field.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_calibration.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_calibration_priors_applied.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_candidate_dedupe.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_claim_edges.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_claim_links.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_claim_type_ranking.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_classify_hook_f1.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_classify_hook_latency.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_claude_to_turns.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_cli_dry_run.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_cli_json_flag.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_cli_ready.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_cli_review_queue.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_cli_subcommands.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_closets.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_closets_recall_integration.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_compact_summaries.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_compact_summaries_sensitivity.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_compaction_trace.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_compactor_artifact_order.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_config.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_conflict_resolver.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_confusion_matrix_eval.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_connection_retry.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_connectors.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_context_hook.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_context_optimizer.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_context_optimizer_provider.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_conversation_to_turns.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_dashboard.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_dashboard_coverage.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_dashboard_latency.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_dashboard_lineage.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_dashboard_review_queue.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_daydream_ingest.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_db_merge_confidence_conflict.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_db_merge_coverage_v2.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_decay_coverage.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_decay_respects_pinned.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_dedup.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_dedup_cli.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_dedup_conflict_disambiguation.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_deterministic_predicates.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_dream_bridge_coverage_v2.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_dream_bridge_sensitivity.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_embeddings_coverage.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_entity_extractor.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_entity_extractor_llm.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_entity_graph.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_entity_graph_export.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_entity_new_kinds.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_entity_regex_v3.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_entity_registry.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_eval_harness.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_events_schema.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_extract_llm_ollama.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_federated_graphify_mcp.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_federated_query_safety.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_feedback.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_fts5_search.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_graph_distance.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_graph_store.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_handler_regressions.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_hook_env_isolation.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_human_id.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_incident_drill_runner.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_integration_workflows.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_key_rotator.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_lifecycle.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_lifecycle_supersede_invariant.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_llm_fallback.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_llm_provider_claude_cli.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_llm_provider_key_rotation.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_llm_steward_coverage.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_llm_steward_key_rotation.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_mcp_filter_bypass.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_mcp_helpers.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_mcp_rate_limit.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_mcp_server_validation.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_mcp_usage.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_media_processing.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_meta_decisions.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_metrics_exporter.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_observability.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_obsidian_mind_patterns.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_operator.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_operator_queue.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_perf_smoke_config.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_plugins.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_policy_coverage.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_policy_mode_env.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_postgres_parity.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_qdrant_backend.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_qmd_bridge.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_query_classifier.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_query_expansion.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_recall_entity_fanout.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_recall_fusion.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_recall_latency.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_recall_precision_at_5.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_recall_tokenizer.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_recall_vector_fallback.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_reliability_hardening.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_resolvers_concurrent_supersede.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_retrieval_profile.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_retrieval_rrf_tiebreaker.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_retrieval_weights.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_review.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_rl_trainer.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_rrf_auto_gate.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_scheduler.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_schema.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_scope_boost.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_scope_utils.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_security_access.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_security_patterns.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_sensitivity_filter_adversarial.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_sensitivity_filter_adversarial_v2.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_sensitivity_filter_t07.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_service_coverage.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_session_tracker.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_snapshot.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_snapshot_roundtrip.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_sqlite_core.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_staleness.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_stealth_mode.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_steward.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_steward_classifier.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_steward_features.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_steward_features_v3.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_steward_resolution_parity.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_storage_parity.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_store_factory.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_tenant_isolation.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_turn_schema.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_two_pass_recall.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_v311_fixes.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_v313_e2e.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_v313_run_cycle_dedupe.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_v390_e2e.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_v391_strict_warnings.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_vault_exporter.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_vault_linter_orphan.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_vector_search.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_verbatim_dedup.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_verbatim_recall.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_verbatim_store.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_verbatim_store_qdrant.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_webhook.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_whatsapp_importer.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_wiki_autopromote.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_wiki_binding.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_wiki_engine_idempotency.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_wiki_explored_and_contradictions.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_wiki_freshness.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_wiki_similarity_multiscope.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_wiki_suggest.py +0 -0
- {memorymaster-3.17.0 → memorymaster-3.17.1}/tests/test_wiki_validate_cli.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: memorymaster
|
|
3
|
-
Version: 3.17.
|
|
3
|
+
Version: 3.17.1
|
|
4
4
|
Summary: Production-grade memory reliability system for AI coding agents. Lifecycle-managed claims with citations, conflict detection, steward governance, and MCP integration.
|
|
5
5
|
Author: wolverin0
|
|
6
6
|
License: MIT
|
|
@@ -1625,5 +1625,27 @@ def run_steward(
|
|
|
1625
1625
|
},
|
|
1626
1626
|
"artifact_path": str(Path(artifact_path)),
|
|
1627
1627
|
}
|
|
1628
|
+
import os
|
|
1629
|
+
|
|
1630
|
+
daydream_dir = os.environ.get("MEMORYMASTER_DAYDREAM_INGEST_DIR")
|
|
1631
|
+
if daydream_dir:
|
|
1632
|
+
try:
|
|
1633
|
+
import logging
|
|
1634
|
+
|
|
1635
|
+
from memorymaster.jobs.daydream_ingest import ingest_insights
|
|
1636
|
+
|
|
1637
|
+
verbose = os.environ.get("MEMORYMASTER_DAYDREAM_VERBOSE") == "1"
|
|
1638
|
+
path = Path(daydream_dir)
|
|
1639
|
+
if path.is_dir():
|
|
1640
|
+
summary = ingest_insights(service, path, dry_run=False)
|
|
1641
|
+
report["daydream"] = summary
|
|
1642
|
+
if verbose:
|
|
1643
|
+
logging.getLogger(__name__).info("daydream auto-ingest: %s", summary)
|
|
1644
|
+
else:
|
|
1645
|
+
report["daydream"] = {"skipped": "dir-not-found", "path": str(path)}
|
|
1646
|
+
except Exception as exc:
|
|
1647
|
+
report["daydream"] = {"error": str(exc)[:200]}
|
|
1648
|
+
if os.environ.get("MEMORYMASTER_DAYDREAM_VERBOSE") == "1":
|
|
1649
|
+
logging.getLogger(__name__).warning("daydream auto-ingest failed: %s", exc)
|
|
1628
1650
|
_write_artifact(Path(artifact_path), report)
|
|
1629
1651
|
return report
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: memorymaster
|
|
3
|
-
Version: 3.17.
|
|
3
|
+
Version: 3.17.1
|
|
4
4
|
Summary: Production-grade memory reliability system for AI coding agents. Lifecycle-managed claims with citations, conflict detection, steward governance, and MCP integration.
|
|
5
5
|
Author: wolverin0
|
|
6
6
|
License: MIT
|
|
@@ -331,6 +331,7 @@ tests/test_staleness.py
|
|
|
331
331
|
tests/test_stealth_mode.py
|
|
332
332
|
tests/test_steward.py
|
|
333
333
|
tests/test_steward_classifier.py
|
|
334
|
+
tests/test_steward_daydream_hook.py
|
|
334
335
|
tests/test_steward_features.py
|
|
335
336
|
tests/test_steward_features_v3.py
|
|
336
337
|
tests/test_steward_resolution_parity.py
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "memorymaster"
|
|
7
|
-
version = "3.17.
|
|
7
|
+
version = "3.17.1"
|
|
8
8
|
description = "Production-grade memory reliability system for AI coding agents. Lifecycle-managed claims with citations, conflict detection, steward governance, and MCP integration."
|
|
9
9
|
license = {text = "MIT"}
|
|
10
10
|
authors = [{name = "wolverin0"}]
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
import pytest
|
|
7
|
+
|
|
8
|
+
from memorymaster.service import MemoryService
|
|
9
|
+
from memorymaster.steward import run_steward
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@pytest.fixture()
|
|
13
|
+
def service(tmp_path: Path) -> MemoryService:
|
|
14
|
+
svc = MemoryService(tmp_path / "memorymaster.db", workspace_root=tmp_path / "workspace")
|
|
15
|
+
svc.init_db()
|
|
16
|
+
return svc
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def _run_clean_steward(service: MemoryService, tmp_path: Path) -> dict:
|
|
20
|
+
return run_steward(
|
|
21
|
+
service,
|
|
22
|
+
mode="manual",
|
|
23
|
+
max_cycles=1,
|
|
24
|
+
max_claims=10,
|
|
25
|
+
max_proposals=10,
|
|
26
|
+
max_probe_files=10,
|
|
27
|
+
artifact_path=tmp_path / "steward_report.json",
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def _write_insight(directory: Path) -> None:
|
|
32
|
+
directory.mkdir(parents=True, exist_ok=True)
|
|
33
|
+
(directory / "20260516-linking-patterns.md").write_text(
|
|
34
|
+
"""---
|
|
35
|
+
type: daydream
|
|
36
|
+
created_date: 2026-05-16
|
|
37
|
+
scores:
|
|
38
|
+
average: 8.5
|
|
39
|
+
source_notes:
|
|
40
|
+
- [[notes/source-a]]
|
|
41
|
+
---
|
|
42
|
+
# Linking Patterns
|
|
43
|
+
|
|
44
|
+
> Connection between steward output and daydream insight closure
|
|
45
|
+
|
|
46
|
+
Steward cycles can close the loop by ingesting high-scoring daydream insights.
|
|
47
|
+
|
|
48
|
+
## Implication
|
|
49
|
+
|
|
50
|
+
Accepted insights become candidate hypotheses for later validation.
|
|
51
|
+
""",
|
|
52
|
+
encoding="utf-8",
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def test_no_env_no_op(service: MemoryService, tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
|
|
57
|
+
monkeypatch.delenv("MEMORYMASTER_DAYDREAM_INGEST_DIR", raising=False)
|
|
58
|
+
|
|
59
|
+
report = _run_clean_steward(service, tmp_path)
|
|
60
|
+
|
|
61
|
+
assert report["cycles_completed"] == 1
|
|
62
|
+
assert "daydream" not in report
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def test_env_set_dir_missing_no_crash(
|
|
66
|
+
service: MemoryService,
|
|
67
|
+
tmp_path: Path,
|
|
68
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
69
|
+
) -> None:
|
|
70
|
+
missing = tmp_path / "missing-daydreams"
|
|
71
|
+
monkeypatch.setenv("MEMORYMASTER_DAYDREAM_INGEST_DIR", str(missing))
|
|
72
|
+
|
|
73
|
+
report = _run_clean_steward(service, tmp_path)
|
|
74
|
+
|
|
75
|
+
assert report["cycles_completed"] == 1
|
|
76
|
+
assert report["daydream"] == {"skipped": "dir-not-found", "path": str(missing)}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def test_env_set_dir_with_insights_ingests(
|
|
80
|
+
service: MemoryService,
|
|
81
|
+
tmp_path: Path,
|
|
82
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
83
|
+
) -> None:
|
|
84
|
+
insights_dir = tmp_path / "Daydreams"
|
|
85
|
+
_write_insight(insights_dir)
|
|
86
|
+
monkeypatch.setenv("MEMORYMASTER_DAYDREAM_INGEST_DIR", str(insights_dir))
|
|
87
|
+
|
|
88
|
+
report = _run_clean_steward(service, tmp_path)
|
|
89
|
+
|
|
90
|
+
assert report["daydream"]["ingested"] == 1
|
|
91
|
+
claims = service.list_claims(status="candidate", limit=20, allow_sensitive=True)
|
|
92
|
+
assert len(claims) == 1
|
|
93
|
+
assert claims[0].source_agent == "daydream"
|
|
94
|
+
assert claims[0].claim_type == "hypothesis"
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def test_ingest_exception_does_not_break_steward(
|
|
98
|
+
service: MemoryService,
|
|
99
|
+
tmp_path: Path,
|
|
100
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
101
|
+
) -> None:
|
|
102
|
+
insights_dir = tmp_path / "Daydreams"
|
|
103
|
+
insights_dir.mkdir()
|
|
104
|
+
monkeypatch.setenv("MEMORYMASTER_DAYDREAM_INGEST_DIR", str(insights_dir))
|
|
105
|
+
|
|
106
|
+
def raise_ingest(*_args: object, **_kwargs: object) -> dict:
|
|
107
|
+
raise RuntimeError("boom from daydream ingest")
|
|
108
|
+
|
|
109
|
+
monkeypatch.setattr("memorymaster.jobs.daydream_ingest.ingest_insights", raise_ingest)
|
|
110
|
+
|
|
111
|
+
report = _run_clean_steward(service, tmp_path)
|
|
112
|
+
|
|
113
|
+
assert report["cycles_completed"] == 1
|
|
114
|
+
assert report["cycles"][0]["budget"]["claims_scanned"] == 0
|
|
115
|
+
assert json.dumps(report["cycles"])
|
|
116
|
+
assert report["daydream"] == {"error": "boom from daydream ingest"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/config_templates/claude-md-append.md
RENAMED
|
File without changes
|
{memorymaster-3.17.0 → memorymaster-3.17.1}/memorymaster/config_templates/codex-agents-md-append.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|