"""Executable and static quality gates for isolated HUX-02 memory controls.""" from __future__ import annotations from pathlib import Path from hux_node_gate import run_node_coverage ROOT = Path(__file__).resolve().parents[2] MEMORY = ROOT / "dockerfiles" / "hermes-webui-hux" / "memory" def test_hux_memory_model_node_suite_and_coverage(): run_node_coverage( [ "dockerfiles/hermes-webui-hux/memory/model.ts", "dockerfiles/hermes-webui-hux/memory/security.ts", "dockerfiles/hermes-webui-hux/memory/endpoints.ts", ], [ "testing/tests/test_hermes_hux_ui_memory.mjs", ], {"branches": 95, "functions": 95, "lines": 95}, strip_types=True, ) def test_hux_memory_component_is_flagged_accessible_and_privacy_safe(): component = (MEMORY / "MemoryControlCenter.tsx").read_text(encoding="utf-8") model = (MEMORY / "model.ts").read_text(encoding="utf-8") endpoints = (MEMORY / "endpoints.ts").read_text(encoding="utf-8") styles = (MEMORY / "styles.css").read_text(encoding="utf-8") assert "if (!enabled) return null" in component assert "workspace scope could not be verified" in component assert "memoryControlEnabled(props.flags)" in component assert all(name in model for name in ("FOUNDATION_FLAG", "PRIVACY_FLAG", "MEMORY_CONTROL_FLAG")) assert 'aria-label="Memory ledger"' in component assert 'role="status"' in component assert "Suggest only" in component assert "Edit as new entry" in component and "Delete & forget" in component assert "View source message" in component assert "This message" in component and "Block topic" in component assert "dangerouslySetInnerHTML" not in component assert "JSON.stringify" not in component assert "source.id" not in component and "actor.id" not in component assert "fetch(" not in endpoints and "axios" not in endpoints assert ".hux-memory" in styles assert "body" not in styles and ":root" not in styles assert "prefers-reduced-motion" in styles def test_hux_memory_sources_respect_size_and_isolated_scope(): sources = sorted(MEMORY.glob("*")) assert {path.name for path in sources} == { "MemoryControlCenter.tsx", "endpoints.ts", "index.ts", "model.ts", "security.ts", "styles.css", "types.ts", } for path in sources: assert len(path.read_text(encoding="utf-8").splitlines()) <= 500 assert "dockerfiles/hermes-webui-hux/memory" not in ( ROOT / "dockerfiles" / "Dockerfile.hermes-agent" ).read_text(encoding="utf-8")