judgetap 0.1.1.dev34__tar.gz → 0.1.1.dev3501__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 (66) hide show
  1. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/.github/workflows/release.yml +12 -2
  2. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/CONTRIBUTING.md +1 -1
  3. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/PKG-INFO +1 -1
  4. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/pyproject.toml +1 -1
  5. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/__init__.py +1 -1
  6. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/.github/workflows/ci.yml +0 -0
  7. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/.github/workflows/demo.yml +0 -0
  8. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/.gitignore +0 -0
  9. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/.python-version +0 -0
  10. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/.release-please-manifest.json +0 -0
  11. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/CHANGELOG.md +0 -0
  12. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/LICENSE +0 -0
  13. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/README.md +0 -0
  14. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/docs/SPEC.md +0 -0
  15. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/docs/demo.tape +0 -0
  16. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/release-please-config.json +0 -0
  17. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/_compat.py +0 -0
  18. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/api.py +0 -0
  19. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/cascade.py +0 -0
  20. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/cli.py +0 -0
  21. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/dashboard/__init__.py +0 -0
  22. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/dashboard/data.py +0 -0
  23. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/dashboard/page.html +0 -0
  24. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/dashboard/server.py +0 -0
  25. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/decision_log.py +0 -0
  26. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/engine.py +0 -0
  27. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/engines/__init__.py +0 -0
  28. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/engines/agentjev.py +0 -0
  29. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/engines/jev.py +0 -0
  30. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/engines/laya.py +0 -0
  31. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/engines/llm.py +0 -0
  32. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/errors.py +0 -0
  33. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/evaluate.py +0 -0
  34. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/guard/__init__.py +0 -0
  35. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/guard/core.py +0 -0
  36. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/guard/hook.py +0 -0
  37. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/guard/install.py +0 -0
  38. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/guard/loop.py +0 -0
  39. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/guard/rules.py +0 -0
  40. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/guard/stop.py +0 -0
  41. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/py.typed +0 -0
  42. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/secrets.py +0 -0
  43. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/testing.py +0 -0
  44. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/src/judgetap/types.py +0 -0
  45. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_api.py +0 -0
  46. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_call_accounting.py +0 -0
  47. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_calls.py +0 -0
  48. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_cascade.py +0 -0
  49. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_dashboard.py +0 -0
  50. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_decision_log.py +0 -0
  51. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_engine_jev.py +0 -0
  52. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_engine_llm.py +0 -0
  53. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_engine_local.py +0 -0
  54. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_evaluate.py +0 -0
  55. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_guard_agents.py +0 -0
  56. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_guard_core.py +0 -0
  57. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_guard_hook.py +0 -0
  58. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_guard_loop.py +0 -0
  59. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_guard_polish_76.py +0 -0
  60. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_guard_rules.py +0 -0
  61. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_guard_stop.py +0 -0
  62. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_guard_trust.py +0 -0
  63. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_questions.py +0 -0
  64. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_robustness_68.py +0 -0
  65. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/tests/test_secrets.py +0 -0
  66. {judgetap-0.1.1.dev34 → judgetap-0.1.1.dev3501}/uv.lock +0 -0
@@ -82,8 +82,15 @@ jobs:
82
82
  steps:
83
83
  - uses: actions/checkout@v4
84
84
  with:
85
- ref: ${{ needs.release-please.outputs.tag || github.event.release.tag_name || inputs.tag }}
85
+ # Always a tag, never a branch that happens to share the name.
86
+ ref: refs/tags/${{ needs.release-please.outputs.tag || github.event.release.tag_name || inputs.tag }}
86
87
  - uses: astral-sh/setup-uv@v6
88
+ - name: A manual publish needs a GitHub Release for the tag
89
+ if: github.event_name == 'workflow_dispatch'
90
+ env:
91
+ GH_TOKEN: ${{ github.token }}
92
+ TAG: ${{ inputs.tag }}
93
+ run: gh release view "$TAG" --repo "$GITHUB_REPOSITORY" >/dev/null
87
94
  - name: Check the tag matches the package version
88
95
  # The tag arrives through the environment, never interpolated into the
89
96
  # script: a release tag is user-controlled text.
@@ -115,10 +122,13 @@ jobs:
115
122
  # and before the next one, and is unique per run.
116
123
  env:
117
124
  RUN_NUMBER: ${{ github.run_number }}
125
+ RUN_ATTEMPT: ${{ github.run_attempt }}
118
126
  run: |
119
127
  uv run --no-project python - <<'EOF'
120
128
  import json, os, re, pathlib
121
- run = int(os.environ["RUN_NUMBER"])
129
+ # run_number * 100 + attempt: a rerun (same run number) still gets a
130
+ # new, higher version; up to 99 attempts per run.
131
+ run = int(os.environ["RUN_NUMBER"]) * 100 + int(os.environ["RUN_ATTEMPT"])
122
132
  current = json.load(open(".release-please-manifest.json"))["."]
123
133
  major, minor, patch = (int(x) for x in current.split("."))
124
134
  dev = f"{major}.{minor}.{patch + 1}.dev{run}"
@@ -48,5 +48,5 @@ By contributing you agree your work is licensed under Apache-2.0.
48
48
  ## Releases
49
49
 
50
50
  - Every merge to `main` publishes a dev build to PyPI (`X.Y.Z.devN`), except merging the release PR itself, which publishes the stable version instead. `pip install judgetap` ignores it; `pip install --pre judgetap` gets it.
51
- - A stable version is published only when a GitHub Release is created: release-please keeps a release PR open with the next version and the changelog, built from conventional commit titles, and merging it tags and publishes. A release published by hand in GitHub is published the same way, after checking the tag matches the package version.
51
+ - A stable version is published only when a GitHub Release is created: release-please keeps a release PR open with the next version and the changelog, built from conventional commit titles, and merging it tags and publishes. A release published by hand in GitHub is published the same way, after checking the tag matches the package version. If a stable publish fails, re-run it from Actions → release → "Run workflow" with the release tag; it only publishes a tag that has a GitHub Release.
52
52
  - Publishing uses PyPI Trusted Publishing (OIDC): no tokens are stored anywhere.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: judgetap
3
- Version: 0.1.1.dev34
3
+ Version: 0.1.1.dev3501
4
4
  Summary: Fast typed decisions (choice, score, yes/no) across Jev-style engines, plus a guard for coding agents. Early development.
5
5
  Project-URL: Homepage, https://github.com/mergesafe-ai/judgetap
6
6
  Author-email: Omer Bar-Ness <omer@zsquared.io>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "judgetap"
3
- version = "0.1.1.dev34"
3
+ version = "0.1.1.dev3501"
4
4
  description = "Fast typed decisions (choice, score, yes/no) across Jev-style engines, plus a guard for coding agents. Early development."
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -23,7 +23,7 @@ from judgetap.errors import (
23
23
  )
24
24
  from judgetap.types import Decision, Question
25
25
 
26
- __version__ = "0.1.1.dev34" # x-release-please-version
26
+ __version__ = "0.1.1.dev3501" # x-release-please-version
27
27
 
28
28
  __all__ = [
29
29
  "Cascade",
File without changes
File without changes