generated from coulomb/repo-seed
session-memory: session-quality filter (WP-0005 T01)
detect/quality.py: is_real_coding_session drops health-checks / smoke-tests / interrupted / trivially-short sessions (event floor, repo present, substantive tool activity, non-trivial prompt). Wired into run_detect so signals only form over real sessions — fixes the abandoned false-positive. [detect.quality] knobs; existing detect/curate fixtures made realistic. 8 new tests; suite 80/80. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -16,13 +16,14 @@ import os
|
||||
from ..core.store import Store
|
||||
from ..ingest import _expand, load_config
|
||||
from .cluster import cluster
|
||||
from .quality import filter_real, quality_config
|
||||
from .signals import extract_signals
|
||||
|
||||
|
||||
def run_detect(config: dict, *, min_frequency: int = 2) -> list[dict]:
|
||||
store_cfg = config.get("store", {})
|
||||
store = Store(_expand(store_cfg["db_path"]), _expand(store_cfg["blob_dir"]))
|
||||
digests = store.list_digests()
|
||||
digests = filter_real(store.list_digests(), quality_config(config))
|
||||
signals = extract_signals(digests)
|
||||
patterns = [p.to_dict() for p in cluster(signals, min_frequency=min_frequency)]
|
||||
store.save_patterns(patterns)
|
||||
@@ -56,7 +57,8 @@ def main(argv=None) -> int:
|
||||
|
||||
config = load_config(args.config)
|
||||
store_cfg = config.get("store", {})
|
||||
n = len(Store(_expand(store_cfg["db_path"]), _expand(store_cfg["blob_dir"])).list_digests())
|
||||
all_digests = Store(_expand(store_cfg["db_path"]), _expand(store_cfg["blob_dir"])).list_digests()
|
||||
n = len(filter_real(all_digests, quality_config(config)))
|
||||
patterns = run_detect(config, min_frequency=args.min_frequency)
|
||||
|
||||
if args.json:
|
||||
|
||||
Reference in New Issue
Block a user