Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions .jcodemunch.jsonc
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
// Source: jgravelle/jcodemunch-mcp v1.108.319,
// src/jcodemunch_mcp/config.py L346-354, L536-544, L1230-1254.
// https://github.com/jgravelle/jcodemunch-mcp/blob/v1.108.319/src/jcodemunch_mcp/config.py
// UTF-8 JSONC at the indexed project root; loader rules are at L630-727.
// Source: installed jgravelle/jcodemunch-mcp v1.108.333 (bbe30fa299c4),
// src/jcodemunch_mcp/config.py L351-358, L542-548, L1278-1305.
// https://github.com/jgravelle/jcodemunch-mcp/blob/v1.108.333/src/jcodemunch_mcp/config.py
// UTF-8 JSONC at the indexed project root; loader rules are at L642-739.
{
// 2026-09-27: git ls-files measured 7,883 tracked paths, 4,907 excluded,
// 2,976 remaining: 1,024 paths (34.4%) of growth above that inventory.
// 2026-10-10: main f6ae0de74 has 12,123 tracked paths, 8,149 excluded,
// 3,974 remaining: cap 8,000 leaves 4,026 paths (101.3%) of growth.
// Counting all retained extensions is conservative; this is not a reindex
// result. This config and its new test add two paths when they are tracked.
// result. The regression also checks 1,000 added retained source paths.
// tests/test_jcodemunch_config.py recomputes the count on each test run.
// Upstream's default 2,000-file folder cap: security.py L589-592.
// Project override: security.py L717-743; config.py L1084-1091.
// Walked-root repo key: tools/index_folder.py L1234, L1692 (v1.108.319).
"max_folder_files": 4000,
// Upstream's default 2,000-file folder cap: security.py L587-592.
// Project override: security.py L717-743; config.py L1145-1152.
// Walked-root repo key: tools/index_folder.py L1231-1234, L1685-1692.
"max_folder_files": 8000,

// External context providers (for example git_blame, which writes per-file
// authors and dates into the index) stay off. The MCP index_folder call has no
// context_providers argument (server.py L1597-1645, L5915-5932); providers are
// context_providers argument; providers are
// gated by this config key through the project overlay instead:
// tools/index_folder.py L796-803; config.py L48, L374, L548, L1084-1091.
// tools/index_folder.py L798-804; config.py L60, L386, L560, L1145-1152.
"context_providers": false,

// Project patterns are merged by security.py L554-577 and compiled using
// pathspec's gitignore dialect by tools/index_folder.py L1273-1279, at
// https://github.com/jgravelle/jcodemunch-mcp/tree/v1.108.319/src/jcodemunch_mcp
// https://github.com/jgravelle/jcodemunch-mcp/tree/v1.108.333/src/jcodemunch_mcp
// Keep scripts, tools, tests, docs, examples, adoption, observability and
// catalogs intact. Mixed blueprint trees retain their source/config files.
"extra_ignore_patterns": [
Expand Down
8 changes: 4 additions & 4 deletions manifests/evidence.json
Original file line number Diff line number Diff line change
Expand Up @@ -5221,8 +5221,8 @@
},
{
"path": ".jcodemunch.jsonc",
"sha256": "54f9c2a44f6d8ceac528a9369468f3af9dd84e1c6f1230f269c63700782f2cdd",
"bytes": 2751
"sha256": "e7ea177b1364d2bef9e4b18429b504ff0714a8cc63010b5fa987f034b9f3b7c0",
"bytes": 2729
},
{
"path": "AGENTS.md",
Expand Down Expand Up @@ -60257,8 +60257,8 @@
},
{
"path": "tests/test_jcodemunch_config.py",
"sha256": "8316931b0d82ddb539518ed3322736879d7da6ea358c9ccd5344031eb4e859da",
"bytes": 13287
"sha256": "1559b0ced6e703e285b7e28c16c0430b3d841c43ee79f9b820378f88c6948b05",
"bytes": 13941
},
{
"path": "tests/test_jev_p1_casepack.py",
Expand Down
20 changes: 17 additions & 3 deletions tests/test_jcodemunch_config.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
"""Local checks of the repository's pinned jCodeMunch project configuration.

Sources: jgravelle/jcodemunch-mcp v1.108.319, src/jcodemunch_mcp/config.py
L536-544 (schema), L630-727 (JSONC algorithm), L1230-1254 (project loading):
https://github.com/jgravelle/jcodemunch-mcp/blob/v1.108.319/src/jcodemunch_mcp/config.py
Sources: jgravelle/jcodemunch-mcp v1.108.333, src/jcodemunch_mcp/config.py
L542-548 (schema), L642-739 (JSONC algorithm), L1278-1305 (project loading):
https://github.com/jgravelle/jcodemunch-mcp/blob/v1.108.333/src/jcodemunch_mcp/config.py

The JSONC helper follows the pinned loader, including its adjacent-comment
handling. Keeping this small, sourced helper here lets ordinary stdlib unittest
Expand Down Expand Up @@ -290,6 +290,20 @@ def test_data_text_file_does_not_require_an_unconfigured_exclusion(self):
result = self.run_coverage(files, self.ignored)
self.assertTrue(result.wasSuccessful(), result.failures + result.errors)

def test_retained_wave_sources_fit_configured_cap(self):
# Keep every current coverage obligation and add retained source files
# as the consolidation wave does, without creating files on disk.
additions = {
f"tests/jcodemunch_wave/source_{number:04d}.py"
for number in range(1000)
}
self.assertFalse(additions & self.files)
files = self.files | additions
self.assertGreater(len(files - self.ignored), 4000)
result = self.run_coverage(files, self.ignored)
self.assertFalse(result.errors)
self.assertTrue(result.wasSuccessful(), result.failures)

def test_empty_blueprint_output_union_is_rejected(self):
directories = {"receipts", "native-outputs", "judge_results", "data"}
files = {
Expand Down
Loading