- Remove unused imports: time/asyncio/Path/Optional/re/Counter/jieba across backfill_embeddings, bucket_manager, embedding_engine, import_memory - Drop unused local var `old_primary` in reclassify_domains - Fix 3 placeholder-less f-strings in backfill_embeddings, migrate_to_domains, reclassify_domains - Delete legacy quick-check scripts test_smoke.py / test_tools.py (replaced by tests/ pytest suite, never collected by pytest) - Delete backup_20260405_2124/ (stale local snapshot, no code references) Verified: pyflakes *.py → 0 warnings; pytest tests/ → 237 passed, 7 skipped.
Apply ×0.3 resolved penalty *after* fuzzy_threshold filter so resolved buckets that genuinely match the query still surface in search results (penalty only affects ranking order). Update BEHAVIOR_SPEC.md scoring section to document new order.
- Add BEHAVIOR_SPEC.md as full system behaviour reference - B-01: stop auto-archiving resolved buckets in update() - B-03: keep activation_count as float in calculate_score - B-04: initialise activation_count=0 on create - B-05: time score coefficient 0.1 -> 0.02 - B-06: w_time default 2.5 -> 1.5 - B-07: content_weight default 3.0 -> 1.0 - B-08: refresh local meta after auto_resolve - B-09: user-supplied valence/arousal takes priority over analyze() - B-10: allow empty domain for feel buckets - Refresh INTERNALS/README/dashboard accordingly
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>