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.
- package/CHANGELOG.md +78 -2
- package/README.md +80 -993
- package/SECURITY.md +21 -16
- package/ai-push-hooks.toml +1 -1
- package/bin/ai-push-hooks.js +6 -6
- package/docs/configuration.md +263 -0
- package/package.json +4 -3
- package/pyproject.toml +12 -3
- package/src/ai_push_hooks/artifacts.py +19 -19
- package/src/ai_push_hooks/cli.py +24 -8
- package/src/ai_push_hooks/config.py +239 -54
- package/src/ai_push_hooks/engine.py +94 -43
- package/src/ai_push_hooks/executors/apply.py +124 -46
- package/src/ai_push_hooks/executors/ask.py +30 -536
- package/src/ai_push_hooks/executors/exec.py +73 -818
- package/src/ai_push_hooks/executors/runner_workflow.py +42 -20
- package/src/ai_push_hooks/executors/runners/claude.py +18 -6
- package/src/ai_push_hooks/executors/runners/codex.py +9 -3
- package/src/ai_push_hooks/executors/runners/command.py +25 -9
- package/src/ai_push_hooks/executors/runners/contracts.py +52 -25
- package/src/ai_push_hooks/executors/runners/opencode.py +109 -27
- package/src/ai_push_hooks/executors/runners/opencode_support.py +286 -0
- package/src/ai_push_hooks/executors/runners/process.py +97 -17
- package/src/ai_push_hooks/executors/runners/registry.py +31 -9
- package/src/ai_push_hooks/executors/step_commands.py +65 -20
- package/src/ai_push_hooks/git_utils.py +899 -0
- package/src/ai_push_hooks/hook.py +49 -13
- package/src/ai_push_hooks/install.py +40 -18
- package/src/ai_push_hooks/modules/beads.py +19 -8
- package/src/ai_push_hooks/modules/docs.py +146 -96
- package/src/ai_push_hooks/modules/pr.py +19 -8
- package/src/ai_push_hooks/paths.py +6 -2
- package/src/ai_push_hooks/plugin_loader.py +182 -105
- package/src/ai_push_hooks/plugins.py +3 -1
- package/src/ai_push_hooks/prompts_builtin.py +1 -1
- package/src/ai_push_hooks/types.py +48 -27
- package/vendor/README.md +15 -0
- package/vendor/requirements.txt +1 -0
- package/vendor/tomli-2.4.0-py3-none-any.whl +0 -0
- 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
|
-
|
|
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.
|
|
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
|