Coverage for session_buddy / tools / feature_flags_tools.py: 90.00%
10 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-04 00:43 -0800
« prev ^ index » next coverage.py v7.13.1, created at 2026-01-04 00:43 -0800
1#!/usr/bin/env python3
2"""MCP tools to inspect feature flags and rollout guidance."""
4from __future__ import annotations
6from typing import TYPE_CHECKING, Any
8from session_buddy.config.feature_flags import get_feature_flags
10if TYPE_CHECKING:
11 from fastmcp import FastMCP
14def register_feature_flags_tools(mcp: FastMCP) -> None:
15 @mcp.tool() # type: ignore[no-untyped-call]
16 async def feature_flags_status() -> dict[str, Any]:
17 """Return current feature flag values."""
18 flags = get_feature_flags()
19 return {
20 "use_schema_v2": flags.use_schema_v2,
21 "enable_llm_entity_extraction": flags.enable_llm_entity_extraction,
22 "enable_anthropic": flags.enable_anthropic,
23 "enable_ollama": flags.enable_ollama,
24 "enable_conscious_agent": flags.enable_conscious_agent,
25 "enable_filesystem_extraction": flags.enable_filesystem_extraction,
26 }
28 @mcp.tool() # type: ignore[no-untyped-call]
29 async def rollout_plan() -> dict[str, Any]:
30 """Return a staged enablement plan for features (read-only guidance)."""
31 return {
32 "day_1_2": [
33 "Enable SESSION_MGMT_USE_SCHEMA_V2=true (parallel with v1)",
34 "Verify migration: use migration_status tool",
35 ],
36 "day_3_4": [
37 "Enable SESSION_MGMT_ENABLE_LLM_ENTITY_EXTRACTION=true",
38 "Optionally set ANTHROPIC_API_KEY/OPENAI_API_KEY/GEMINI_API_KEY",
39 "Check provider distribution via access_log_stats (by_provider)",
40 ],
41 "day_5_6": [
42 "Enable SESSION_MGMT_ENABLE_CONSCIOUS_AGENT=true",
43 "Start agent with start_conscious_agent",
44 "Monitor promotions/demotions using access_log_stats",
45 ],
46 "day_7": [
47 "Enable SESSION_MGMT_ENABLE_FILESYSTEM_EXTRACTION=true",
48 "Tune filesystem settings (TTL, size, ignore dirs)",
49 ],
50 "rollback": [
51 "Use trigger_migration(dry_run=true) to preview",
52 "Create backup via trigger_migration(create_backup_first=true)",
53 "If needed, restore with rollback_migration(backup_path)",
54 ],
55 "notes": "All flags default to false; enable progressively. Monitor via access_log_stats.",
56 }