diff --git a/README.md b/README.md index c1d2156..fe76be2 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@

- Version + Version Python License PyPI @@ -23,11 +23,11 @@ ## AI Cost Tracking -![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-2.1.291-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green) -![AI Cost](https://img.shields.io/badge/AI%20Cost-$1.15-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-143.1h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fx--ai%2Fgrok--code--fast--1-lightgrey) +![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-2.1.292-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green) +![AI Cost](https://img.shields.io/badge/AI%20Cost-$1.00-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-144.8h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fx--ai%2Fgrok--code--fast--1-lightgrey) -- 🤖 **LLM usage:** $1.1471 (408 commits) -- 👤 **Human dev:** ~$14309 (143.1h @ $100/h, 30min dedup) +- 🤖 **LLM usage:** $1.0015 (422 commits) +- 👤 **Human dev:** ~$14481 (144.8h @ $100/h, 30min dedup) Generated on 2026-08-10 using [openrouter/x-ai/grok-code-fast-1](https://openrouter.ai/x-ai/grok-code-fast-1) diff --git a/TODO.md b/TODO.md index d827a5c..99a713a 100644 --- a/TODO.md +++ b/TODO.md @@ -64,6 +64,9 @@ - [x] Deliver [ticket-021](project/ticket-021/README.md): detect only writable Python `__version__` declarations and support conventional version modules. State: `DONE / PUBLICATION`; classification: `BUG / application`. +- [ ] Deliver [ticket-023](project/ticket-023/README.md): publish the merged + Python carrier fix as Goal 2.1.292 and verify a clean public install. + State: `IN_PROGRESS / EDIT`; classification: `SERVICE / integration`. - [ ] After governance bootstrap, execute the sequential phases defined in [the refactoring plan](docs/GOAL_KORU_SUBACTOR_REFACTORING_PLAN.md), with one narrowly scoped ticket active at a time. @@ -74,7 +77,8 @@ > `ticket-010 DONE`; `ticket-011 DONE`; `ticket-012 DONE`; > `ticket-013 DONE`; `ticket-014 CANCELLED`; `ticket-015 DONE`; > `ticket-016 DONE`; `ticket-017 DONE`; `ticket-018 DONE`; -> `ticket-019 DONE`; `ticket-020 DONE`; `ticket-021 DONE`. +> `ticket-019 DONE`; `ticket-020 DONE`; `ticket-021 DONE`; +> `ticket-023 IN_PROGRESS`. > **Recently shipped (manual note):** `goal all [PATHS...]` monorepo sweep — > runs `goal -a` in every git repo with uncommitted changes under the given diff --git a/VERSION b/VERSION index b6d69f4..3c05fb2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1.291 +2.1.292 diff --git a/goal/__init__.py b/goal/__init__.py index 96a0067..76ba8b7 100644 --- a/goal/__init__.py +++ b/goal/__init__.py @@ -1,3 +1,3 @@ """Goal - Automated git push with smart commit messages, changelog updates, and version tagging.""" -__version__ = "2.1.291" +__version__ = "2.1.292" diff --git a/project/TICKETS.md b/project/TICKETS.md index dcc945b..bd25678 100644 --- a/project/TICKETS.md +++ b/project/TICKETS.md @@ -27,4 +27,5 @@ This file indexes governance tickets without taking ownership of | **ticket-019** | [`README.md`](./ticket-019/README.md) | [`preprompt.md`](./ticket-019/preprompt.md) | - | [`ai-codex.md`](./ticket-019/ai-codex.md) | [`ai-codex-logs.txt`](./ticket-019/ai-codex-logs.txt) | [`changelog.md`](./ticket-019/changelog.md) | | **ticket-020** | [`README.md`](./ticket-020/README.md) | [`preprompt.md`](./ticket-020/preprompt.md) | - | [`ai-codex.md`](./ticket-020/ai-codex.md) | [`ai-codex-logs.txt`](./ticket-020/ai-codex-logs.txt) | [`changelog.md`](./ticket-020/changelog.md) | | **ticket-021** | [`README.md`](./ticket-021/README.md) | [`preprompt.md`](./ticket-021/preprompt.md) | - | [`ai-codex.md`](./ticket-021/ai-codex.md) | [`ai-codex-logs.txt`](./ticket-021/ai-codex-logs.txt) | [`changelog.md`](./ticket-021/changelog.md) | +| **ticket-023** | [`README.md`](./ticket-023/README.md) | [`preprompt.md`](./ticket-023/preprompt.md) | - | [`ai-codex.md`](./ticket-023/ai-codex.md) | [`ai-codex-logs.txt`](./ticket-023/ai-codex-logs.txt) | [`changelog.md`](./ticket-023/changelog.md) | diff --git a/project/ticket-023/README.md b/project/ticket-023/README.md new file mode 100644 index 0000000..0c608bf --- /dev/null +++ b/project/ticket-023/README.md @@ -0,0 +1,43 @@ +# Ticket 023: Publish Goal 2.1.292 Python carrier fix + +- **ID**: ticket-023 +- **Owner**: unresolved:human +- **Status**: IN_PROGRESS +- **Workflow state**: EDIT +- **Created**: 2026-08-10 + +## Goal and scope + +Publish the merged ticket-021 Python version-carrier fix as Goal 2.1.292. +Synchronize the five atomic release carriers, pass the full test and protected +PR chain, publish wheel and sdist only from merged `main`, then verify a fresh +public-index installation. + +## Acceptance criteria + +- [x] AC-01: The user explicitly requested autonomous testing, publication and + dependent-project updates. +- [ ] AC-02: Goal selects `normal-bump -> 2.1.292` once and all release carriers + are synchronized. +- [ ] AC-03: Full tests, build, governance, target CI and exact-head validator + pass before merge. +- [ ] AC-04: Clean merged `main` publishes exactly one wheel and one sdist for + 2.1.292 through `goal -a --delivery-mode publish-only`. +- [ ] AC-05: A fresh public-index environment reports Goal 2.1.292. + +## Session authorization + +The user authorized autonomous publication. No repeated confirmation is +required for this exact release; protected exact-head approval and registry +credential boundaries remain enforced. + +## Boundary + +This slice owns only `VERSION`, `pyproject.toml`, `uv.lock`, +`goal/__init__.py`, README release badges and ticket metadata. Source, +dependency constraints, top-level changelog, governance and CI are excluded. + +## Participants + +- Human participant: unresolved; no user-* file was created by this script. +- Agent participant: [ai-codex.md](ai-codex.md) diff --git a/project/ticket-023/ai-codex-logs.txt b/project/ticket-023/ai-codex-logs.txt new file mode 100644 index 0000000..e69de29 diff --git a/project/ticket-023/ai-codex.md b/project/ticket-023/ai-codex.md new file mode 100644 index 0000000..e9e95a5 --- /dev/null +++ b/project/ticket-023/ai-codex.md @@ -0,0 +1,29 @@ +--- +participant-id: agent:codex +participant: codex +role: agent +ticket: ticket-023 +--- +# Participant: codex (AI agent) + +## Understanding + +Ticket-021 is merged and Goal correctly identifies writable Python version +carriers. This ticket owns only the atomic 2.1.292 release and public evidence. + +## Execution plan + +1. Publish the bounded release plan. +2. Synchronize five release carriers to 2.1.292. +3. Run full tests/build/governance and protected PR validation. +4. Publish from clean merged main and verify an isolated install. + +## Actual changes + +- Initialized the bounded release ticket from merged application head. + +## Blockers + +- None inside the recorded intent; proceed without a second confirmation. +- New authority remains required for destructive action, secret access, new + external coordination, material objective expansion and trusted merge. diff --git a/project/ticket-023/changelog.md b/project/ticket-023/changelog.md new file mode 100644 index 0000000..8deba02 --- /dev/null +++ b/project/ticket-023/changelog.md @@ -0,0 +1,8 @@ +# Ticket Changelog (ticket-023) + +## [0.1.0] - 2026-08-10 + +- Initial governance scaffold created. +- No human participant identity or content was generated. +- Defined the five-carrier atomic 2.1.292 release and protected publication + sequence. diff --git a/project/ticket-023/intent.json b/project/ticket-023/intent.json new file mode 100644 index 0000000..b900625 --- /dev/null +++ b/project/ticket-023/intent.json @@ -0,0 +1,61 @@ +{ + "schema": "new-project.intent/v3", + "ticket": "ticket-023", + "summary": "Publish Goal 2.1.292 Python carrier fix", + "workstream": "integration", + "classification": { + "kind": "SERVICE", + "priority": "P1", + "origin": "requested" + }, + "allowedPaths": [ + "VERSION", + "README.md", + "pyproject.toml", + "uv.lock", + "goal/__init__.py", + "project/ticket-023/**", + "TODO.md", + "project/TICKETS.md" + ], + "forbiddenPaths": ["project/ticket-*/user-*.md"], + "stacks": ["python"], + "dependsOn": ["ticket-021"], + "conflictsWith": [], + "integrationTicket": null, + "delivery": { + "acceptedBaseSha": "9b4beddbb042bf5a3575c4eb3080368b20a20dfb", + "targetBranch": "main", + "outcome": "Goal 2.1.292 is published from protected merged main and verified from the public index", + "nonGoals": [ + "No package source, dependency, governance or CI change", + "No top-level changelog update in the atomic release slice" + ], + "complexity": "S", + "estimatedMinutes": 30, + "budgets": { + "maxImplementationFiles": 5, + "maxAffectedComponents": 1, + "maxPublicInterfaceChanges": 0, + "maxRuntimeDependencies": 0 + }, + "architecture": { + "status": "accepted", + "decision": "Use the five-file atomic release-carrier slice and publish only after protected merge", + "components": [ + {"name": "goal-release-metadata", "paths": ["VERSION", "README.md", "pyproject.toml", "uv.lock", "goal/__init__.py"]} + ], + "responsibilityChanges": false, + "interfaceChanges": [], + "dataChanges": [], + "ui": {"impact": "none", "states": [], "evidence": []}, + "rollback": "Revert before registry publication; registry artifacts are immutable after upload" + }, + "runtimeDependencies": [], + "validation": [ + {"criterion": "AC-02", "commands": ["goal check-versions"], "evidence": "One normal bump to 2.1.292, then already-bumped"}, + {"criterion": "AC-03", "commands": ["pytest -q", "python -m build", "./project/governance-check.sh"], "evidence": "Tests, artifacts and governance pass"}, + {"criterion": "AC-05", "commands": ["goal --version"], "evidence": "Fresh public-index install reports 2.1.292"} + ] + } +} diff --git a/project/ticket-023/preprompt.md b/project/ticket-023/preprompt.md new file mode 100644 index 0000000..dc84533 --- /dev/null +++ b/project/ticket-023/preprompt.md @@ -0,0 +1,12 @@ +# Ticket preprompt + +- **Task ID**: ticket-023 +- **Task title**: Publish Goal 2.1.292 Python carrier fix +- **Created**: 2026-08-10T11:57:26Z + +Keep executable implementation outside this governance/evidence directory. +Read a human-owned user-*.md file only when one exists. +The request to execute this work creates SESSION_EXECUTION_AUTHORIZATION; +proceed within the recorded intent without a redundant confirmation prompt. +Require new authority for destructive action, secrets, external coordination, +material objective expansion and trusted merge approval. diff --git a/pyproject.toml b/pyproject.toml index d183c41..4d2add3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "goal" -version = "2.1.291" +version = "2.1.292" description = "Goal - Automated git push with enterprise-grade commit intelligence, smart conventional commit generation based on deep code analysis, and interactive release workflow management." readme = "README.md" authors = [ diff --git a/uv.lock b/uv.lock index 692c74e..72df1c0 100644 --- a/uv.lock +++ b/uv.lock @@ -771,7 +771,7 @@ wheels = [ [[package]] name = "goal" -version = "2.1.291" +version = "2.1.292" source = { editable = "." } dependencies = [ { name = "click" },