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.
Files changed (37) hide show
  1. package/CHANGELOG.md +73 -1
  2. package/README.md +80 -525
  3. package/SECURITY.md +102 -14
  4. package/ai-push-hooks.toml +9 -2
  5. package/bin/ai-push-hooks.js +6 -6
  6. package/package.json +3 -2
  7. package/pyproject.toml +1 -1
  8. package/src/ai_push_hooks/artifacts.py +67 -13
  9. package/src/ai_push_hooks/config.py +575 -22
  10. package/src/ai_push_hooks/engine.py +116 -7
  11. package/src/ai_push_hooks/executors/apply.py +75 -36
  12. package/src/ai_push_hooks/executors/ask.py +224 -0
  13. package/src/ai_push_hooks/executors/exec.py +17 -801
  14. package/src/ai_push_hooks/executors/runner_workflow.py +478 -0
  15. package/src/ai_push_hooks/executors/runners/__init__.py +78 -0
  16. package/src/ai_push_hooks/executors/runners/claude.py +286 -0
  17. package/src/ai_push_hooks/executors/runners/codex.py +254 -0
  18. package/src/ai_push_hooks/executors/runners/command.py +178 -0
  19. package/src/ai_push_hooks/executors/runners/contracts.py +597 -0
  20. package/src/ai_push_hooks/executors/runners/opencode.py +528 -0
  21. package/src/ai_push_hooks/executors/runners/opencode_support.py +276 -0
  22. package/src/ai_push_hooks/executors/runners/process.py +464 -0
  23. package/src/ai_push_hooks/executors/runners/registry.py +117 -0
  24. package/src/ai_push_hooks/executors/step_commands.py +478 -0
  25. package/src/ai_push_hooks/git_utils.py +834 -0
  26. package/src/ai_push_hooks/hook.py +1 -1
  27. package/src/ai_push_hooks/modules/beads.py +1 -1
  28. package/src/ai_push_hooks/modules/docs.py +129 -89
  29. package/src/ai_push_hooks/modules/pr.py +1 -1
  30. package/src/ai_push_hooks/plugin_loader.py +422 -0
  31. package/src/ai_push_hooks/plugins.py +134 -0
  32. package/src/ai_push_hooks/prompts_builtin.py +9 -2
  33. package/src/ai_push_hooks/types.py +407 -75
  34. package/vendor/README.md +15 -0
  35. package/vendor/requirements.txt +1 -0
  36. package/vendor/tomli-2.4.0-py3-none-any.whl +0 -0
  37. 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.2.1...HEAD
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