pycastle 0.2.0.1.dev0__tar.gz → 0.2.0.2.dev0__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 (104) hide show
  1. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/.github/workflows/publish.yml +17 -2
  2. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/PKG-INFO +1 -1
  3. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle.egg-info/PKG-INFO +1 -1
  4. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/.gitignore +0 -0
  5. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/.python-version +0 -0
  6. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/CLAUDE.md +0 -0
  7. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/CONTEXT.md +0 -0
  8. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/LICENSE +0 -0
  9. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/README.md +0 -0
  10. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/docs/adr/0001-runtime-dependency-installation.md +0 -0
  11. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/docs/adr/0002-cli-native-model-shorthand-resolution.md +0 -0
  12. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/docs/agents/domain.md +0 -0
  13. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/docs/agents/issue-tracker.md +0 -0
  14. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/docs/agents/triage-labels.md +0 -0
  15. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/pyproject.toml +0 -0
  16. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/setup.cfg +0 -0
  17. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/__init__.py +0 -0
  18. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/_types.py +0 -0
  19. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/agent_output_protocol.py +0 -0
  20. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/agent_result.py +0 -0
  21. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/agent_runner.py +0 -0
  22. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/build_command.py +0 -0
  23. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/config/__init__.py +0 -0
  24. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/config/loader.py +0 -0
  25. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/container_runner.py +0 -0
  26. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/defaults/.gitignore +0 -0
  27. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/defaults/Dockerfile +0 -0
  28. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/defaults/config.py +0 -0
  29. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/defaults/prompts/coding-standards/deep-modules.md +0 -0
  30. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/defaults/prompts/coding-standards/interfaces.md +0 -0
  31. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/defaults/prompts/coding-standards/mocking.md +0 -0
  32. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/defaults/prompts/coding-standards/refactoring.md +0 -0
  33. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/defaults/prompts/coding-standards/tests.md +0 -0
  34. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/defaults/prompts/implement-prompt.md +0 -0
  35. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/defaults/prompts/merge-prompt.md +0 -0
  36. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/defaults/prompts/plan-prompt.md +0 -0
  37. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/defaults/prompts/preflight-issue.md +0 -0
  38. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/defaults/prompts/review-prompt.md +0 -0
  39. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/docker_session.py +0 -0
  40. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/errors.py +0 -0
  41. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/init_command.py +0 -0
  42. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/iteration/__init__.py +0 -0
  43. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/iteration/_deps.py +0 -0
  44. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/iteration/_phase_row.py +0 -0
  45. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/iteration/_utils.py +0 -0
  46. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/iteration/implement.py +0 -0
  47. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/iteration/merge.py +0 -0
  48. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/iteration/planning.py +0 -0
  49. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/iteration/preflight.py +0 -0
  50. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/labels.py +0 -0
  51. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/main.py +0 -0
  52. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/orchestrator.py +0 -0
  53. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/prompt_pipeline.py +0 -0
  54. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/rich_status_display.py +0 -0
  55. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/services/__init__.py +0 -0
  56. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/services/_base.py +0 -0
  57. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/services/claude_service.py +0 -0
  58. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/services/docker_service.py +0 -0
  59. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/services/git_service.py +0 -0
  60. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/services/github_service.py +0 -0
  61. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/status_display.py +0 -0
  62. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/stream_session.py +0 -0
  63. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle/worktree.py +0 -0
  64. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle.egg-info/SOURCES.txt +0 -0
  65. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle.egg-info/dependency_links.txt +0 -0
  66. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle.egg-info/entry_points.txt +0 -0
  67. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle.egg-info/requires.txt +0 -0
  68. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/src/pycastle.egg-info/top_level.txt +0 -0
  69. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/__init__.py +0 -0
  70. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/conftest.py +0 -0
  71. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_agent_output_protocol.py +0 -0
  72. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_agent_result.py +0 -0
  73. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_agent_runner.py +0 -0
  74. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_build_command.py +0 -0
  75. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_claude_service.py +0 -0
  76. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_config_new.py +0 -0
  77. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_container_runner.py +0 -0
  78. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_default_prompts.py +0 -0
  79. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_deps.py +0 -0
  80. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_docker_service.py +0 -0
  81. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_docker_session.py +0 -0
  82. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_errors.py +0 -0
  83. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_git_service.py +0 -0
  84. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_github_service.py +0 -0
  85. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_implement.py +0 -0
  86. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_init_command.py +0 -0
  87. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_integration.py +0 -0
  88. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_iteration.py +0 -0
  89. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_labels.py +0 -0
  90. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_main.py +0 -0
  91. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_merge.py +0 -0
  92. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_orchestrator.py +0 -0
  93. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_phase_row.py +0 -0
  94. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_plain_status_display.py +0 -0
  95. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_plan.py +0 -0
  96. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_planning.py +0 -0
  97. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_preflight.py +0 -0
  98. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_prompt_pipeline.py +0 -0
  99. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_prompt_utils.py +0 -0
  100. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_status_display.py +0 -0
  101. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_stream_session.py +0 -0
  102. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_subprocess_service.py +0 -0
  103. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_utils.py +0 -0
  104. {pycastle-0.2.0.1.dev0 → pycastle-0.2.0.2.dev0}/tests/test_worktree.py +0 -0
@@ -46,13 +46,17 @@ jobs:
46
46
  - uses: actions/checkout@v4
47
47
  with:
48
48
  fetch-depth: 0
49
+ fetch-tags: true
49
50
 
50
51
  - uses: actions/setup-python@v5
51
52
  with:
52
53
  python-version: "3.12"
53
54
 
54
55
  - name: Install build
55
- run: pip install build
56
+ run: pip install build setuptools-scm
57
+
58
+ - name: Show computed version
59
+ run: python -m setuptools_scm
56
60
 
57
61
  - name: Build
58
62
  run: python -m build
@@ -74,13 +78,24 @@ jobs:
74
78
  - uses: actions/checkout@v4
75
79
  with:
76
80
  fetch-depth: 0
81
+ fetch-tags: true
77
82
 
78
83
  - uses: actions/setup-python@v5
79
84
  with:
80
85
  python-version: "3.12"
81
86
 
82
87
  - name: Install build
83
- run: pip install build
88
+ run: pip install build setuptools-scm
89
+
90
+ - name: Verify tag matches HEAD and version is final
91
+ run: |
92
+ git describe --tags --exact-match HEAD
93
+ VERSION=$(python -m setuptools_scm)
94
+ echo "Computed version: $VERSION"
95
+ if [[ "$VERSION" == *".dev"* ]]; then
96
+ echo "ERROR: dev version on tag build — tag not visible to setuptools-scm" >&2
97
+ exit 1
98
+ fi
84
99
 
85
100
  - name: Build
86
101
  run: python -m build
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pycastle
3
- Version: 0.2.0.1.dev0
3
+ Version: 0.2.0.2.dev0
4
4
  Summary: Python orchestrator for autonomous Claude Code agents in Docker
5
5
  License: MIT License
6
6
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pycastle
3
- Version: 0.2.0.1.dev0
3
+ Version: 0.2.0.2.dev0
4
4
  Summary: Python orchestrator for autonomous Claude Code agents in Docker
5
5
  License: MIT License
6
6
 
File without changes