ai-push-hooks 0.3.0 → 0.3.2

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 (40) hide show
  1. package/CHANGELOG.md +78 -2
  2. package/README.md +80 -993
  3. package/SECURITY.md +21 -16
  4. package/ai-push-hooks.toml +1 -1
  5. package/bin/ai-push-hooks.js +6 -6
  6. package/docs/configuration.md +263 -0
  7. package/package.json +4 -3
  8. package/pyproject.toml +12 -3
  9. package/src/ai_push_hooks/artifacts.py +19 -19
  10. package/src/ai_push_hooks/cli.py +24 -8
  11. package/src/ai_push_hooks/config.py +239 -54
  12. package/src/ai_push_hooks/engine.py +94 -43
  13. package/src/ai_push_hooks/executors/apply.py +124 -46
  14. package/src/ai_push_hooks/executors/ask.py +30 -536
  15. package/src/ai_push_hooks/executors/exec.py +73 -818
  16. package/src/ai_push_hooks/executors/runner_workflow.py +42 -20
  17. package/src/ai_push_hooks/executors/runners/claude.py +18 -6
  18. package/src/ai_push_hooks/executors/runners/codex.py +9 -3
  19. package/src/ai_push_hooks/executors/runners/command.py +25 -9
  20. package/src/ai_push_hooks/executors/runners/contracts.py +52 -25
  21. package/src/ai_push_hooks/executors/runners/opencode.py +109 -27
  22. package/src/ai_push_hooks/executors/runners/opencode_support.py +286 -0
  23. package/src/ai_push_hooks/executors/runners/process.py +97 -17
  24. package/src/ai_push_hooks/executors/runners/registry.py +31 -9
  25. package/src/ai_push_hooks/executors/step_commands.py +65 -20
  26. package/src/ai_push_hooks/git_utils.py +899 -0
  27. package/src/ai_push_hooks/hook.py +49 -13
  28. package/src/ai_push_hooks/install.py +40 -18
  29. package/src/ai_push_hooks/modules/beads.py +19 -8
  30. package/src/ai_push_hooks/modules/docs.py +146 -96
  31. package/src/ai_push_hooks/modules/pr.py +19 -8
  32. package/src/ai_push_hooks/paths.py +6 -2
  33. package/src/ai_push_hooks/plugin_loader.py +182 -105
  34. package/src/ai_push_hooks/plugins.py +3 -1
  35. package/src/ai_push_hooks/prompts_builtin.py +1 -1
  36. package/src/ai_push_hooks/types.py +48 -27
  37. package/vendor/README.md +15 -0
  38. package/vendor/requirements.txt +1 -0
  39. package/vendor/tomli-2.4.0-py3-none-any.whl +0 -0
  40. package/run.sh +0 -29
package/CHANGELOG.md CHANGED
@@ -4,7 +4,81 @@ All notable changes to this project are documented here. The format is based on
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
- No unreleased changes.
7
+ ## [0.3.2] - 2026-09-12
8
+
9
+ This is a beta patch release. Python and npm both use `0.3.2`, the canonical
10
+ Git tag is `v0.3.2`, npm uses the `beta` dist-tag, and GitHub marks the release
11
+ as a prerelease. PyPI does not provide a separate beta channel, so Python users
12
+ must select the exact `0.3.2` version.
13
+
14
+ ### Changed
15
+
16
+ - Added a pinned Ruff 0.13.3 formatting policy for Python sources, tests, and scripts.
17
+ - Updated the default OpenCode model and README positioning to
18
+ `openai/gpt-5.6-luna`.
19
+ - Clarified that built-in mutating steps are serialized, while trusted custom
20
+ command runners, including project-access `ask` commands, are not enforced
21
+ read-only.
22
+ - Removed the unused secondary shell launcher in favor of the canonical Python
23
+ console script and npm wrapper.
24
+
25
+ ### Fixed
26
+
27
+ - Review initial publication of the configured base branch against the empty
28
+ tree, while retaining configured-base comparison for new feature branches.
29
+ - Persist bounded diffs as valid UTF-8, truncating at character boundaries and
30
+ representing malformed bytes with replacement characters within the budget.
31
+ - Hardened pull-request creation by validating generated payload types,
32
+ reconciling failed `gh` calls against GitHub, and keeping remote credentials
33
+ out of diagnostics.
34
+ - Bounded config, prompt, and callback source reads and rejected unsafe config
35
+ file types.
36
+ - Rejected duplicate workflow identifiers and simplified workflow step result
37
+ handling.
38
+ - Made source distributions complete and added validation of their unpacked
39
+ test suite and wheel builds with the minimum supported setuptools 77 backend.
40
+ - Standardized development and release validation on the isolated project
41
+ `.[dev]` extra instead of repeating tool lists.
42
+ - Restored the PyPI release job's checkout permission and pinned the OpenCode
43
+ contract test's base container image.
44
+
45
+ ### Documentation
46
+
47
+ - Added an agent setup skill, CI/npm beta badges, and a reproducible,
48
+ deterministic review/fail/fix/commit/pass demo, explicitly not live AI footage.
49
+ - Explained the manual-commit assertion and why applied edits are not part of
50
+ the commit already being pushed.
51
+ - Included the configuration guide in the npm package and removed its link to
52
+ the local-only runner verification report.
53
+
54
+ ## [0.3.1] - 2026-09-10
55
+
56
+ ### Changed
57
+
58
+ - Rewrote the README around npm-first setup, modular workflows, and AI
59
+ ask/apply examples; moved detailed configuration into a separate guide.
60
+
61
+ ### Fixed
62
+
63
+ - Bundled the Python 3.10 TOML dependency in the npm package, removing the
64
+ separate `tomli` installation step even for offline, script-disabled installs.
65
+ - Hardened release recovery around source-bound checksum manifests, safe
66
+ artifact paths, and exact artifact identity; recovery remains npm-only after
67
+ PyPI is complete and does not rebuild or republish the Python artifacts.
68
+ - Tightened bounded child-process output handling and cleanup when a stream
69
+ reaches its limit.
70
+
71
+ ### Performance
72
+
73
+ - Reduced documentation context-search work by reading each candidate document
74
+ once and bounding retained query-match metadata.
75
+ - Allowed independent runner types and callback sources to initialize in
76
+ parallel while preserving per-source/per-adapter initialization safety.
77
+
78
+ ### Cleanup
79
+
80
+ - Consolidated hook-owned artifact validation and shared process handling across
81
+ runner adapters, removing duplicated OpenCode-specific plumbing.
8
82
 
9
83
  ## [0.3.0] - 2026-09-09
10
84
 
@@ -122,7 +196,9 @@ the exact `0.2.0` version rather than a PyPI beta channel.
122
196
  - Preserved Git porcelain paths and protected pre-existing dirty allowlisted files during apply steps.
123
197
  - Clarified module-local artifact references and standardized the repository hook integration.
124
198
 
125
- [Unreleased]: https://github.com/shanebishop1/ai-push-hooks/compare/v0.3.0...HEAD
199
+ [Unreleased]: https://github.com/shanebishop1/ai-push-hooks/compare/v0.3.2...HEAD
200
+ [0.3.2]: https://github.com/shanebishop1/ai-push-hooks/compare/v0.3.1...v0.3.2
201
+ [0.3.1]: https://github.com/shanebishop1/ai-push-hooks/compare/v0.3.0...v0.3.1
126
202
  [0.3.0]: https://github.com/shanebishop1/ai-push-hooks/compare/v0.2.1...v0.3.0
127
203
  [0.2.1]: https://github.com/shanebishop1/ai-push-hooks/compare/v0.2.0...v0.2.1
128
204
  [0.2.0]: https://github.com/shanebishop1/ai-push-hooks/compare/v0.1.19...v0.2.0