ai-push-hooks 0.2.1 → 0.3.1
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 +73 -1
- package/README.md +80 -525
- package/SECURITY.md +102 -14
- package/ai-push-hooks.toml +9 -2
- package/bin/ai-push-hooks.js +6 -6
- package/package.json +3 -2
- package/pyproject.toml +1 -1
- package/src/ai_push_hooks/artifacts.py +67 -13
- package/src/ai_push_hooks/config.py +575 -22
- package/src/ai_push_hooks/engine.py +116 -7
- package/src/ai_push_hooks/executors/apply.py +75 -36
- package/src/ai_push_hooks/executors/ask.py +224 -0
- package/src/ai_push_hooks/executors/exec.py +17 -801
- package/src/ai_push_hooks/executors/runner_workflow.py +478 -0
- package/src/ai_push_hooks/executors/runners/__init__.py +78 -0
- package/src/ai_push_hooks/executors/runners/claude.py +286 -0
- package/src/ai_push_hooks/executors/runners/codex.py +254 -0
- package/src/ai_push_hooks/executors/runners/command.py +178 -0
- package/src/ai_push_hooks/executors/runners/contracts.py +597 -0
- package/src/ai_push_hooks/executors/runners/opencode.py +528 -0
- package/src/ai_push_hooks/executors/runners/opencode_support.py +276 -0
- package/src/ai_push_hooks/executors/runners/process.py +464 -0
- package/src/ai_push_hooks/executors/runners/registry.py +117 -0
- package/src/ai_push_hooks/executors/step_commands.py +478 -0
- package/src/ai_push_hooks/git_utils.py +834 -0
- package/src/ai_push_hooks/hook.py +1 -1
- package/src/ai_push_hooks/modules/beads.py +1 -1
- package/src/ai_push_hooks/modules/docs.py +129 -89
- package/src/ai_push_hooks/modules/pr.py +1 -1
- package/src/ai_push_hooks/plugin_loader.py +422 -0
- package/src/ai_push_hooks/plugins.py +134 -0
- package/src/ai_push_hooks/prompts_builtin.py +9 -2
- package/src/ai_push_hooks/types.py +407 -75
- 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/src/ai_push_hooks/executors/llm.py +0 -624
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,76 @@ All notable changes to this project are documented here. The format is based on
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.3.1] - 2026-09-10
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Rewrote the README around npm-first setup, modular workflows, and AI
|
|
12
|
+
ask/apply examples; moved detailed configuration into a separate guide.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- Bundled the Python 3.10 TOML dependency in the npm package, removing the
|
|
17
|
+
separate `tomli` installation step even for offline, script-disabled installs.
|
|
18
|
+
- Hardened release recovery around source-bound checksum manifests, safe
|
|
19
|
+
artifact paths, and exact artifact identity; recovery remains npm-only after
|
|
20
|
+
PyPI is complete and does not rebuild or republish the Python artifacts.
|
|
21
|
+
- Tightened bounded child-process output handling and cleanup when a stream
|
|
22
|
+
reaches its limit.
|
|
23
|
+
|
|
24
|
+
### Performance
|
|
25
|
+
|
|
26
|
+
- Reduced documentation context-search work by reading each candidate document
|
|
27
|
+
once and bounding retained query-match metadata.
|
|
28
|
+
- Allowed independent runner types and callback sources to initialize in
|
|
29
|
+
parallel while preserving per-source/per-adapter initialization safety.
|
|
30
|
+
|
|
31
|
+
### Cleanup
|
|
32
|
+
|
|
33
|
+
- Consolidated hook-owned artifact validation and shared process handling across
|
|
34
|
+
runner adapters, removing duplicated OpenCode-specific plumbing.
|
|
35
|
+
|
|
36
|
+
## [0.3.0] - 2026-09-09
|
|
37
|
+
|
|
38
|
+
This is a beta feature release. Python and npm both use `0.3.0`, the canonical
|
|
39
|
+
Git tag is `v0.3.0`, npm uses the `beta` dist-tag, and GitHub marks the release
|
|
40
|
+
as a prerelease. PyPI does not provide a separate beta channel, so Python users
|
|
41
|
+
must select the exact `0.3.0` version.
|
|
42
|
+
|
|
43
|
+
### Added
|
|
44
|
+
|
|
45
|
+
- Added strict named runner profiles for OpenCode, Codex, Claude, and direct
|
|
46
|
+
shell-free command adapters, with global and per-`ask`/`apply` selection.
|
|
47
|
+
- Added explicit project-aware analysis and broad, bounded project apply staging
|
|
48
|
+
while retaining allowlisted propagation and the artifact-only OpenCode default.
|
|
49
|
+
- Added repository-local Python callbacks for `collect`, `exec`, and `assert`,
|
|
50
|
+
plus direct argv commands for `exec` and `assert`.
|
|
51
|
+
|
|
52
|
+
### Changed
|
|
53
|
+
|
|
54
|
+
- Made model/schema retries runner-neutral and session-optional, with fresh
|
|
55
|
+
invocation fallback when reuse is unavailable; added truthful session,
|
|
56
|
+
transcript, colored status, JSONL, and normalized redacted-output reporting.
|
|
57
|
+
- Documented authentication ownership, provider data exposure, custom-command
|
|
58
|
+
and Pi trust/concurrency, protected and ignored apply inputs, and the
|
|
59
|
+
no-sandbox boundary.
|
|
60
|
+
- Renamed the workflow step spelling from `llm` to `ask` without an `llm` or
|
|
61
|
+
`agent` alias. The shared `[llm]` model policy keeps its historical name.
|
|
62
|
+
|
|
63
|
+
### Fixed
|
|
64
|
+
|
|
65
|
+
- Fixed bounded child-process capture and timeout cleanup for descendant process
|
|
66
|
+
trees on POSIX where possible, while preventing pipe descriptors from being
|
|
67
|
+
reused and closed by a later invocation.
|
|
68
|
+
|
|
69
|
+
### Compatibility and deferred work
|
|
70
|
+
|
|
71
|
+
- Published `0.2.1` remains the historical beta baseline and used `llm` as the
|
|
72
|
+
model-backed workflow-step spelling. Upgrading to `0.3.0` requires changing
|
|
73
|
+
that step spelling to `ask`; the old spelling is not accepted.
|
|
74
|
+
- [Deferred/proposed] Automatic discovery, an SDK, installed-module hooks,
|
|
75
|
+
sandboxing, and a universal external-agent observer remain out of scope.
|
|
76
|
+
|
|
7
77
|
## [0.2.1] - 2026-09-08
|
|
8
78
|
|
|
9
79
|
This is a beta patch release. Python and npm both use `0.2.1`, the canonical
|
|
@@ -79,7 +149,9 @@ the exact `0.2.0` version rather than a PyPI beta channel.
|
|
|
79
149
|
- Preserved Git porcelain paths and protected pre-existing dirty allowlisted files during apply steps.
|
|
80
150
|
- Clarified module-local artifact references and standardized the repository hook integration.
|
|
81
151
|
|
|
82
|
-
[Unreleased]: https://github.com/shanebishop1/ai-push-hooks/compare/v0.
|
|
152
|
+
[Unreleased]: https://github.com/shanebishop1/ai-push-hooks/compare/v0.3.1...HEAD
|
|
153
|
+
[0.3.1]: https://github.com/shanebishop1/ai-push-hooks/compare/v0.3.0...v0.3.1
|
|
154
|
+
[0.3.0]: https://github.com/shanebishop1/ai-push-hooks/compare/v0.2.1...v0.3.0
|
|
83
155
|
[0.2.1]: https://github.com/shanebishop1/ai-push-hooks/compare/v0.2.0...v0.2.1
|
|
84
156
|
[0.2.0]: https://github.com/shanebishop1/ai-push-hooks/compare/v0.1.19...v0.2.0
|
|
85
157
|
[0.1.19]: https://github.com/shanebishop1/ai-push-hooks/compare/v0.1.18...v0.1.19
|