Skip to content

Commit 0a2cecb

Browse files
committed
docs(readme): sync project tree, test counts, backup format (v0.12.3)
- Project structure: hooks/ package, installer.py, 10 test files (382 tests) - Backup format: .enc (encrypted) instead of directory - scripts/ nesting corrected (cloakmcp/scripts/, not docs/scripts/) - Latest changelog summary updated to v0.12.2 - Version bump 0.12.2 → 0.12.3
1 parent ee3df9c commit 0a2cecb

4 files changed

Lines changed: 35 additions & 19 deletions

File tree

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.12.3] - 2026-03-02
11+
12+
### Changed
13+
- **README.md**: Updated project structure tree (hooks/ package, installer.py, 10 test files,
14+
382 tests), corrected backup format (`.enc`), fixed scripts/ nesting under docs/, updated
15+
latest changelog summary to v0.12.2
16+
1017
## [0.12.2] - 2026-02-26
1118

1219
### Fixed
@@ -457,7 +464,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
457464
- HMAC-based pseudonymization
458465
- JSONL audit logging
459466

460-
[Unreleased]: https://github.com/ovitrac/CloakMCP/compare/v0.12.2...HEAD
467+
[Unreleased]: https://github.com/ovitrac/CloakMCP/compare/v0.12.3...HEAD
468+
[0.12.3]: https://github.com/ovitrac/CloakMCP/compare/v0.12.2...v0.12.3
461469
[0.12.2]: https://github.com/ovitrac/CloakMCP/compare/v0.12.1...v0.12.2
462470
[0.12.1]: https://github.com/ovitrac/CloakMCP/compare/v0.12.0...v0.12.1
463471
[0.12.0]: https://github.com/ovitrac/CloakMCP/compare/v0.11.0...v0.12.0

README.md

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
1313
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
1414
[![PyPI](https://img.shields.io/pypi/v/cloakmcp.svg)](https://pypi.org/project/cloakmcp/)
15-
[![Version](https://img.shields.io/badge/version-0.12.2-orange.svg)](https://github.com/ovitrac/CloakMCP/releases)
15+
[![Version](https://img.shields.io/badge/version-0.12.3-orange.svg)](https://github.com/ovitrac/CloakMCP/releases)
1616
[![Tests](https://img.shields.io/badge/tests-382%20passing-brightgreen.svg)](./tests)
1717
[![MCP](https://img.shields.io/badge/MCP-6%20tools-blueviolet.svg)](#mcp-tool-server--6-tools)
1818
[![DeepWiki](https://img.shields.io/badge/Docs-DeepWiki-purple.svg)](https://deepwiki.com/ovitrac/CloakMCP)
@@ -428,7 +428,7 @@ sequenceDiagram
428428
│ └── <project-slug>.vault # Encrypted JSON mapping {TAG → secret}
429429
└── backups/
430430
└── <project-slug>/ # Pre-redaction backups (auto-cleaned on session end)
431-
└── <timestamp>/ # Timestamped snapshot (outside project tree)
431+
└── <timestamp>.enc # Encrypted backup (Fernet + HKDF-derived key)
432432
```
433433

434434
Backups can be restored with `cloak restore --from-backup --backup-id <timestamp> --force`.
@@ -678,56 +678,64 @@ All endpoints require Bearer token authentication. Server binds to `127.0.0.1` o
678678
```bash
679679
pip install -e ".[test]"
680680

681-
# Run all tests (282 passing)
681+
# Run all tests (382 passing)
682682
pytest
683683

684684
# Run with coverage
685685
pytest --cov=cloakmcp --cov-report=term
686686
```
687687

688-
**Test suite**: 282 tests across 7 test files covering unit tests, integration tests, API tests, hook tests, MCP server tests, and enterprise policy tests.
688+
**Test suite**: 382 tests across 10 test files covering unit tests, integration tests, API tests, hook tests, MCP server tests, enterprise policy tests, backup encryption, key wrapping, backup lifecycle, and cross-platform hooks.
689689

690690
---
691691

692692
## Project Structure
693693

694694
```
695695
CloakMCP/
696-
├── cloakmcp/ # Main package (15 modules, ~3,800 LOC)
696+
├── cloakmcp/ # Main package (16 modules, ~4,200 LOC)
697697
│ ├── __init__.py
698698
│ ├── actions.py # Action engine (redact, pseudonymize, etc.)
699699
│ ├── audit.py # Audit logging
700-
│ ├── cli.py # CLI entry point (scan, sanitize, pack, unpack, hook)
700+
│ ├── cli.py # CLI entry point (scan, sanitize, pack, unpack, hook, install)
701701
│ ├── dirpack.py # Directory pack/unpack walker
702702
│ ├── fastmcp_server.py # FastMCP server (cloak serve, 6 tools)
703703
│ ├── filepack.py # Text-level pack/unpack with overlap dedup
704-
│ ├── hooks.py # Claude Code hooks (session-start/end, guard-write)
704+
│ ├── hooks/ # Claude Code hooks package (v0.12.0)
705+
│ │ ├── __init__.py # Hook handlers (session, guard-write, prompt-guard, etc.)
706+
│ │ └── __main__.py # python -m cloakmcp.hooks entrypoint
707+
│ ├── installer.py # Cross-platform hook installer (cloak install)
705708
│ ├── mcp_server.py # MCP tool server (JSON-RPC 2.0 over stdio)
706709
│ ├── normalizer.py # Text normalization
707710
│ ├── policy.py # Policy engine (YAML, inheritance, merging)
708711
│ ├── scanner.py # Secret detectors (regex, entropy, IP, URL, email)
709712
│ ├── server.py # FastAPI REST server (localhost)
710-
│ ├── storage.py # Vault encryption (Fernet AES-128)
713+
│ ├── storage.py # Vault encryption (Fernet AES-128, scrypt key wrapping)
711714
│ └── utils.py # Utilities (hashing, encoding)
712-
├── tests/ # Test suite (282 tests, 7 files)
715+
├── tests/ # Test suite (382 tests, 10 files)
716+
│ ├── conftest.py # Autouse fixture for ~/.cloakmcp/ artifact cleanup
713717
│ ├── test_comprehensive.py # Full feature tests
714718
│ ├── test_api.py # API endpoint tests
715719
│ ├── test_filepack.py # Pack/unpack round-trip tests
716720
│ ├── test_hooks.py # Claude Code hook tests (session, guard, repack)
717721
│ ├── test_mcp_server.py # MCP server protocol tests
718722
│ ├── test_policy_enterprise.py # Enterprise policy profile tests
723+
│ ├── test_backup_encryption.py # HKDF backup encryption tests
724+
│ ├── test_key_wrapping.py # Tier 1 scrypt key wrapping tests
725+
│ ├── test_backup_lifecycle.py # Backup migrate/prune tests
726+
│ ├── test_cross_platform_hooks.py # Cross-platform hook installer tests
719727
│ └── test_smoke.py # Basic smoke test
720728
├── docs/ # Developer documentation
721729
│ ├── QUICKSTART.md # First-time setup, FAQ, compatibility
722730
│ ├── QUICKREF.md # Cheat sheet (all CLI commands)
723731
│ ├── SERVER.md # Server configuration and security model
724732
│ ├── VSCODE_MANUAL.md # Complete VS Code integration guide
725733
│ ├── GROUP_POLICY_IMPLEMENTATION.md # Group policy inheritance details
726-
│ └── THREAT_MODEL.md # Threat model and security analysis
727-
│ └── scripts/ # Bundled installer + hooks (included in PyPI wheel)
728-
├── install_claude.sh # Idempotent hook installer (--profile, --dry-run)
729-
├── hooks/ # Hook shell scripts (7 tracked scripts)
730-
└── settings/ # Settings templates (hooks.json, hooks-hardened.json)
734+
│ └── THREAT_MODEL.md # Threat model and security analysis (v0.12.0)
735+
── cloakmcp/scripts/ # Bundled installer + hooks (included in PyPI wheel)
736+
│ ├── install_claude.sh # Legacy bash installer (use cloak install instead)
737+
│ ├── hooks/ # 7 .sh + 7 .py hook scripts (cross-platform)
738+
│ └── settings/ # Settings templates (hooks-cli.json, hooks-hardened.json, etc.)
731739
├── demo/ # Live demo (Spring Boot banking service)
732740
│ ├── llm_demo.sh # LLM demo (Ollama / Claude)
733741
│ ├── mcp_demo.sh # MCP protocol + hook lifecycle demo
@@ -749,7 +757,7 @@ CloakMCP/
749757
├── .mcp.json # MCP server discovery for Claude Code
750758
├── .vscode/ # VS Code integration (tasks, keybindings)
751759
├── .mcpignore # Pack/unpack exclusion patterns
752-
├── pyproject.toml # Package metadata (v0.10.1)
760+
├── pyproject.toml # Package metadata (v0.12.3)
753761
├── pytest.ini # Pytest configuration
754762
├── CHANGELOG.md # Full release history
755763
├── SECURITY.md # Security policy and disclosure
@@ -806,7 +814,7 @@ Commit convention: `type(scope): description` (e.g., `feat(hooks): add guard-wri
806814

807815
See **[`CHANGELOG.md`](CHANGELOG.md)** for the full release history.
808816

809-
**Latest**: v0.10.1Test artifact cleanup (v0.10.0: encrypted backups at rest, v0.9.0: G1-G5)
817+
**Latest**: v0.12.3README sync (v0.12.2: demo fix, v0.12.0: cross-platform hooks, v0.11.0: key hardening)
810818

811819
---
812820

cloakmcp/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '0.12.2'
1+
__version__ = '0.12.3'

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "cloakmcp"
7-
version = "0.12.2"
7+
version = "0.12.3"
88
description = "Micro-Cleanse Preprocessor: local secret-removal agent (with vault pack/unpack)"
99
readme = "README.md"
1010
requires-python = ">=3.10"

0 commit comments

Comments
 (0)