claude-code-conductor 0.3.1__tar.gz → 0.3.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/CHANGELOG.md +32 -0
  2. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/PKG-INFO +1 -1
  3. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/hatch_build.py +4 -0
  4. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/src/c3/__init__.py +1 -1
  5. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/src/c3/_excludes.py +4 -0
  6. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/CLAUDE.md +0 -0
  7. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/agents/architect.md +0 -0
  8. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/agents/code-reviewer.md +0 -0
  9. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/agents/developer.md +0 -0
  10. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/agents/doc-writer.md +0 -0
  11. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/agents/interviewer.md +0 -0
  12. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/agents/planner.md +0 -0
  13. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/agents/project-setup.md +0 -0
  14. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/agents/security-reviewer.md +0 -0
  15. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/agents/tdd-develop.md +0 -0
  16. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/agents/tester.md +0 -0
  17. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/commands/develop.md +0 -0
  18. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/commands/doc.md +0 -0
  19. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/commands/extract-lib.md +0 -0
  20. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/commands/init-session.md +0 -0
  21. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/commands/mcp.md +0 -0
  22. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/commands/promote-pattern.md +0 -0
  23. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/commands/review.md +0 -0
  24. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/commands/setup.md +0 -0
  25. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/commands/start.md +0 -0
  26. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/docs/parallel-orchestra-manifest.md +0 -0
  27. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/hooks/clear_file_history.py +0 -0
  28. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/hooks/enable_sandbox.py +0 -0
  29. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/hooks/pre_compact.py +0 -0
  30. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/hooks/pre_tool.py +0 -0
  31. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/hooks/statusline.py +0 -0
  32. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/hooks/stop.py +0 -0
  33. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/hooks/validate_skill_change.py +0 -0
  34. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/hooks/worktree_guard.py +0 -0
  35. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/memory/.gitkeep +0 -0
  36. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/rules/code-review-checklist.md +0 -0
  37. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/rules/promoted/index.md +0 -0
  38. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/rules/security-review-checklist.md +0 -0
  39. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/settings.json +0 -0
  40. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/settings.local.json +0 -0
  41. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/skills/dev-workflow.md +0 -0
  42. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/skills/promoted/index.md +0 -0
  43. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/skills/wave-execution.md +0 -0
  44. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.claude/skills/worktree-tdd-workflow.md +0 -0
  45. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/.gitignore +0 -0
  46. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/LICENSE +0 -0
  47. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/README.md +0 -0
  48. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/pyproject.toml +0 -0
  49. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/src/c3/__main__.py +0 -0
  50. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/src/c3/cli.py +0 -0
  51. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/src/c3/cli_doctor.py +0 -0
  52. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/src/c3/cli_init.py +0 -0
  53. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/src/c3/cli_list.py +0 -0
  54. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/src/c3/cli_po.py +0 -0
  55. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/src/c3/cli_update.py +0 -0
  56. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/src/c3/paths.py +0 -0
  57. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/src/c3/po/__init__.py +0 -0
  58. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/src/c3/po/detect.py +0 -0
  59. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/src/c3/po/manifest.py +0 -0
  60. {claude_code_conductor-0.3.1 → claude_code_conductor-0.3.3}/src/c3/po/run.py +0 -0
@@ -1,5 +1,37 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.3] - 2026-05-01
4
+
5
+ ### Fixed
6
+ - `__pycache__/` and `.pyc`/`.pyo` artefacts no longer ship in the
7
+ wheel and no longer leak into user projects via `c3 init` /
8
+ `c3 update`. Previous releases shipped Python bytecode caches at
9
+ any path under `.claude/` whenever the dev had run hooks before
10
+ the build (notably `.claude/hooks/__pycache__/*.pyc`). The
11
+ `should_skip` predicate in both `c3._excludes` and `hatch_build.py`
12
+ now short-circuits on any path component named `__pycache__` or
13
+ any `.pyc` / `.pyo` suffix.
14
+ - `tests/test_excludes.py`: regression test
15
+ `test_excludes_pycache_at_any_depth` asserts the new behaviour at
16
+ multiple directory depths and confirms `.py` source files remain
17
+ framework files.
18
+
19
+ ## [0.3.2] - 2026-05-01
20
+
21
+ ### Fixed
22
+ - `c3 update` and `c3 init` no longer overwrite the user's
23
+ `.claude/settings.local.json`. This file is per-machine permission
24
+ state that Claude Code edits when granting tool permissions; the
25
+ bundled template should never replace it. `settings.local.json`
26
+ is now in `EXCLUDE_PATTERNS` in both `c3._excludes` (used at
27
+ runtime by `c3 init` / `c3 update`) and `hatch_build.py` (used at
28
+ wheel-staging time so the file no longer ships in the wheel at
29
+ all). The companion `settings.json` (project-shared permissions)
30
+ remains a framework file and continues to be updated by
31
+ `c3 update`.
32
+ - `tests/test_excludes.py`: regression test asserting the new
33
+ exclusion.
34
+
3
35
  ## [0.3.1] - 2026-05-01
4
36
 
5
37
  ### Docs
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-code-conductor
3
- Version: 0.3.1
3
+ Version: 0.3.3
4
4
  Summary: Multi-agent orchestration framework for Claude Code (C3)
5
5
  Project-URL: Homepage, https://github.com/satoh-y-0323/claude-code-conductor
6
6
  Project-URL: Repository, https://github.com/satoh-y-0323/claude-code-conductor
@@ -29,6 +29,7 @@ EXCLUDE_PATTERNS: tuple[str, ...] = (
29
29
  "docs/decisions.md",
30
30
  "docs/taxonomy.md",
31
31
  "docs/game-studios-research.md",
32
+ "settings.local.json",
32
33
  )
33
34
 
34
35
  KEEP_PATTERNS: tuple[str, ...] = (
@@ -72,6 +73,9 @@ def _copy_filtered(src: Path, dst: Path, claude_root: Path) -> None:
72
73
 
73
74
 
74
75
  def _should_skip(rel: str) -> bool:
76
+ parts = rel.split("/")
77
+ if "__pycache__" in parts or rel.endswith((".pyc", ".pyo")):
78
+ return True
75
79
  if any(fnmatch.fnmatchcase(rel, p) for p in KEEP_PATTERNS):
76
80
  return False
77
81
  return any(fnmatch.fnmatchcase(rel, p) for p in EXCLUDE_PATTERNS)
@@ -1,3 +1,3 @@
1
1
  """Claude Code Conductor (C3) - multi-agent orchestration framework for Claude Code."""
2
2
 
3
- __version__ = "0.3.1"
3
+ __version__ = "0.3.3"
@@ -26,6 +26,7 @@ EXCLUDE_PATTERNS: tuple[str, ...] = (
26
26
  "docs/decisions.md",
27
27
  "docs/taxonomy.md",
28
28
  "docs/game-studios-research.md",
29
+ "settings.local.json",
29
30
  )
30
31
 
31
32
  KEEP_PATTERNS: tuple[str, ...] = (
@@ -38,6 +39,9 @@ KEEP_PATTERNS: tuple[str, ...] = (
38
39
 
39
40
  def should_skip(rel_posix: str) -> bool:
40
41
  """Return True if the path (relative to ``.claude/``) is personal state."""
42
+ parts = rel_posix.split("/")
43
+ if "__pycache__" in parts or rel_posix.endswith((".pyc", ".pyo")):
44
+ return True
41
45
  if any(fnmatch.fnmatchcase(rel_posix, p) for p in KEEP_PATTERNS):
42
46
  return False
43
47
  return any(fnmatch.fnmatchcase(rel_posix, p) for p in EXCLUDE_PATTERNS)