claude-code-conductor 0.3.2__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.2 → claude_code_conductor-0.3.3}/CHANGELOG.md +16 -0
  2. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/PKG-INFO +1 -1
  3. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/hatch_build.py +3 -0
  4. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/src/c3/__init__.py +1 -1
  5. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/src/c3/_excludes.py +3 -0
  6. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/CLAUDE.md +0 -0
  7. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/agents/architect.md +0 -0
  8. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/agents/code-reviewer.md +0 -0
  9. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/agents/developer.md +0 -0
  10. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/agents/doc-writer.md +0 -0
  11. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/agents/interviewer.md +0 -0
  12. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/agents/planner.md +0 -0
  13. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/agents/project-setup.md +0 -0
  14. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/agents/security-reviewer.md +0 -0
  15. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/agents/tdd-develop.md +0 -0
  16. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/agents/tester.md +0 -0
  17. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/commands/develop.md +0 -0
  18. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/commands/doc.md +0 -0
  19. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/commands/extract-lib.md +0 -0
  20. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/commands/init-session.md +0 -0
  21. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/commands/mcp.md +0 -0
  22. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/commands/promote-pattern.md +0 -0
  23. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/commands/review.md +0 -0
  24. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/commands/setup.md +0 -0
  25. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/commands/start.md +0 -0
  26. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/docs/parallel-orchestra-manifest.md +0 -0
  27. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/hooks/clear_file_history.py +0 -0
  28. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/hooks/enable_sandbox.py +0 -0
  29. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/hooks/pre_compact.py +0 -0
  30. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/hooks/pre_tool.py +0 -0
  31. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/hooks/statusline.py +0 -0
  32. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/hooks/stop.py +0 -0
  33. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/hooks/validate_skill_change.py +0 -0
  34. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/hooks/worktree_guard.py +0 -0
  35. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/memory/.gitkeep +0 -0
  36. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/rules/code-review-checklist.md +0 -0
  37. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/rules/promoted/index.md +0 -0
  38. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/rules/security-review-checklist.md +0 -0
  39. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/settings.json +0 -0
  40. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/settings.local.json +0 -0
  41. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/skills/dev-workflow.md +0 -0
  42. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/skills/promoted/index.md +0 -0
  43. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/skills/wave-execution.md +0 -0
  44. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.claude/skills/worktree-tdd-workflow.md +0 -0
  45. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/.gitignore +0 -0
  46. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/LICENSE +0 -0
  47. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/README.md +0 -0
  48. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/pyproject.toml +0 -0
  49. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/src/c3/__main__.py +0 -0
  50. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/src/c3/cli.py +0 -0
  51. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/src/c3/cli_doctor.py +0 -0
  52. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/src/c3/cli_init.py +0 -0
  53. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/src/c3/cli_list.py +0 -0
  54. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/src/c3/cli_po.py +0 -0
  55. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/src/c3/cli_update.py +0 -0
  56. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/src/c3/paths.py +0 -0
  57. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/src/c3/po/__init__.py +0 -0
  58. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/src/c3/po/detect.py +0 -0
  59. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/src/c3/po/manifest.py +0 -0
  60. {claude_code_conductor-0.3.2 → claude_code_conductor-0.3.3}/src/c3/po/run.py +0 -0
@@ -1,5 +1,21 @@
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
+
3
19
  ## [0.3.2] - 2026-05-01
4
20
 
5
21
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-code-conductor
3
- Version: 0.3.2
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
@@ -73,6 +73,9 @@ def _copy_filtered(src: Path, dst: Path, claude_root: Path) -> None:
73
73
 
74
74
 
75
75
  def _should_skip(rel: str) -> bool:
76
+ parts = rel.split("/")
77
+ if "__pycache__" in parts or rel.endswith((".pyc", ".pyo")):
78
+ return True
76
79
  if any(fnmatch.fnmatchcase(rel, p) for p in KEEP_PATTERNS):
77
80
  return False
78
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.2"
3
+ __version__ = "0.3.3"
@@ -39,6 +39,9 @@ KEEP_PATTERNS: tuple[str, ...] = (
39
39
 
40
40
  def should_skip(rel_posix: str) -> bool:
41
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
42
45
  if any(fnmatch.fnmatchcase(rel_posix, p) for p in KEEP_PATTERNS):
43
46
  return False
44
47
  return any(fnmatch.fnmatchcase(rel_posix, p) for p in EXCLUDE_PATTERNS)