Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@


<p align="center">
<img src="https://img.shields.io/badge/version-2.1.290-blue.svg" alt="Version">
<img src="https://img.shields.io/badge/version-2.1.291-blue.svg" alt="Version">
<img src="https://img.shields.io/badge/python-3.8+-blue.svg" alt="Python">
<img src="https://img.shields.io/badge/license-Apache%202.0-blue.svg" alt="License">
<img src="https://img.shields.io/badge/pypi-goal-orange.svg" alt="PyPI">
Expand All @@ -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.290-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-$8.75-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-141.7h-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.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.26-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-142.9h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fx--ai%2Fgrok--code--fast--1-lightgrey)

- 🤖 **LLM usage:** $8.7470 (397 commits)
- 👤 **Human dev:** ~$14166 (141.7h @ $100/h, 30min dedup)
- 🤖 **LLM usage:** $1.2644 (406 commits)
- 👤 **Human dev:** ~$14287 (142.9h @ $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)

Expand Down
8 changes: 6 additions & 2 deletions TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,16 +55,20 @@
version transition after a stale tag so post-publication metadata delivery
does not select a duplicate patch. State: `DONE / PUBLICATION`;
classification: `BUG / application`.
- [ ] Deliver [ticket-019](project/ticket-019/README.md): publish the merged
boundary repair as Goal 2.1.291 and verify a fresh public-index 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.

> Current workflow state: `ticket-001 DONE`; `ticket-002 DONE`;
> `ticket-003 DONE`; `ticket-004 DONE`; `ticket-005 DONE`;
> `ticket-006 DONE`; `ticket-007 DONE`; `ticket-009 DONE`.
> `ticket-010 DONE`; `ticket-011 DONE`; `ticket-012 IN_PROGRESS`;
> `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-016 DONE`; `ticket-017 DONE`; `ticket-018 DONE`;
> `ticket-019 IN_PROGRESS`.

> **Recently shipped (manual note):** `goal all [PATHS...]` monorepo sweep —
> runs `goal -a` in every git repo with uncommitted changes under the given
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.1.290
2.1.291
2 changes: 1 addition & 1 deletion goal/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
"""Goal - Automated git push with smart commit messages, changelog updates, and version tagging."""

__version__ = "2.1.290"
__version__ = "2.1.291"
1 change: 1 addition & 0 deletions project/TICKETS.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,5 @@ This file indexes governance tickets without taking ownership of
| **ticket-016** | [`README.md`](./ticket-016/README.md) | [`preprompt.md`](./ticket-016/preprompt.md) | - | [`ai-codex.md`](./ticket-016/ai-codex.md) | [`ai-codex-logs.txt`](./ticket-016/ai-codex-logs.txt) | [`changelog.md`](./ticket-016/changelog.md) |
| **ticket-017** | [`README.md`](./ticket-017/README.md) | [`preprompt.md`](./ticket-017/preprompt.md) | - | [`ai-codex.md`](./ticket-017/ai-codex.md) | [`ai-codex-logs.txt`](./ticket-017/ai-codex-logs.txt) | [`changelog.md`](./ticket-017/changelog.md) |
| **ticket-018** | [`README.md`](./ticket-018/README.md) | [`preprompt.md`](./ticket-018/preprompt.md) | - | [`ai-codex.md`](./ticket-018/ai-codex.md) | [`ai-codex-logs.txt`](./ticket-018/ai-codex-logs.txt) | [`changelog.md`](./ticket-018/changelog.md) |
| **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) |
<!-- AUTO:TICKET_INDEX:END -->
60 changes: 60 additions & 0 deletions project/ticket-019/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Ticket 019: Publish Goal 2.1.291

- **ID**: ticket-019
- **Owner**: unresolved:human
- **Status**: IN_PROGRESS
- **Workflow state**: EDIT
- **Created**: 2026-08-10
- **Work classification**: `SERVICE / integration`

## Goal and scope

Publish the ticket-018 post-release boundary repair as Goal 2.1.291. The
release must use Goal's evidence-based version decision, synchronize every
managed version carrier and derived lock/readme metadata, pass the complete
test and build gates, merge through exact-head validation, and be installed
from the public PyPI index before it is considered complete.

## Acceptance criteria

- [x] AC-01: `goal check-versions` selects `normal-bump -> 2.1.291` from the
PyPI 2.1.290 baseline and the committed ticket-018 package source.
- [x] AC-02: `VERSION`, `pyproject.toml`, `goal/__init__.py`, `uv.lock`, and
`README.md` consistently describe 2.1.291.
- [x] AC-03: The full Python suite and package build pass from the synchronized
release tree.
- [ ] AC-04: The release PR passes Python 3.12/3.13 CI and exact-head validator
approval before merge.
- [ ] AC-05: Goal 2.1.291 is visible on PyPI and imports as 2.1.291 in a fresh
environment installed only from the public index.

## Session authorization

The user explicitly requested autonomous continuation, testing, publication,
dependency refresh and downstream Goal updates. This bounded release executes
that authorization without another confirmation. Registry credentials remain
environment-owned and are used only by the governed publish command.

## Boundary

Only atomic release metadata, build evidence, this ticket and the ticket index
may change. No application source, runtime dependency constraint, governance
policy, GitHub workflow or downstream dirty repository is modified here.

## Validation evidence

- Initial decision: `normal-bump -> 2.1.291` from the PyPI 2.1.290 baseline.
- Post-sync decision: `already-bumped -> 2.1.291`; all three managed carriers
are on target and `uv.lock`/`README.md` are synchronized.
- Full Python suite: `510 passed, 2 skipped`.
- Build produced `goal-2.1.291-py3-none-any.whl` and
`goal-2.1.291.tar.gz`.
- Governance limits an S delivery to five implementation files, so generated
release notes were removed from this atomic version-carrier slice. A
dependent publication-evidence slice will add the changelog after PyPI
verification; version, manifest, lock and badge metadata stay indivisible.

## Participants

- Human participant: unresolved; no user-* file was created.
- Agent participant: [ai-codex.md](ai-codex.md)
10 changes: 10 additions & 0 deletions project/ticket-019/ai-codex-logs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
- 2026-08-10: Started the bounded Goal 2.1.291 release ticket on accepted base
`c8ac6ef28e0e491b305b9d4f0d129116823c4100` under the user's autonomous
test and publication authorization.
- 2026-08-10: Goal selected normal-bump 2.1.290 -> 2.1.291; post-sync
validation selected already-bumped -> 2.1.291.
- 2026-08-10: Full suite passed (510 passed, 2 skipped); Python build produced
the 2.1.291 wheel and sdist.
- 2026-08-10: Governance rejected six implementation files under S and the
schema disallowed M. Removed only generated top-level release notes from this
slice; a dependent post-publication evidence slice will own that metadata.
25 changes: 25 additions & 0 deletions project/ticket-019/ai-codex.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
participant-id: agent:codex
participant: codex
role: agent
ticket: ticket-019
---
# Participant: codex (AI agent)

## Understanding

Ticket-018 is merged and PyPI still exposes 2.1.290. Goal now correctly sees
the two post-transition package-source files and selects one patch release.

## Execution plan

1. Record the version decision and synchronize the 2.1.291 release carriers.
2. Run the full suite, build wheel/sdist, and pass fresh-base governance.
3. Deliver through a PR with Python 3.12/3.13 CI and exact-head validation.
4. Publish from clean merged main and verify a fresh public-index install.

## Blockers

- None inside the recorded intent; proceed autonomously.
- A registry or immutable-version conflict aborts publication rather than
replacing an existing artifact.
13 changes: 13 additions & 0 deletions project/ticket-019/changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Ticket Changelog (ticket-019)

## [0.1.0] - 2026-08-10

- Initialized the bounded release ticket after ticket-018 application and
closure PRs passed protected delivery.
- No human participant identity or content was generated.
- Goal selected `normal-bump -> 2.1.291` from the public 2.1.290 baseline and
synchronized every approved release carrier.
- Full tests passed (510 passed, 2 skipped); wheel and sdist builds succeeded.
- Kept the release at the accepted S limit by moving generated release notes
to a dependent publication-evidence slice; the five synchronized
version/manifest/lock/badge files remain atomic.
106 changes: 106 additions & 0 deletions project/ticket-019/intent.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
{
"schema": "new-project.intent/v3",
"ticket": "ticket-019",
"summary": "Publish Goal 2.1.291",
"workstream": "integration",
"classification": {
"kind": "SERVICE",
"priority": "P1",
"origin": "requested"
},
"allowedPaths": [
"VERSION",
"README.md",
"pyproject.toml",
"uv.lock",
"goal/__init__.py",
"project/ticket-019/**",
"project/TICKETS.md",
"TODO.md"
],
"forbiddenPaths": ["project/ticket-*/user-*.md"],
"stacks": ["python"],
"dependsOn": ["ticket-018"],
"conflictsWith": [],
"integrationTicket": null,
"delivery": {
"acceptedBaseSha": "c8ac6ef28e0e491b305b9d4f0d129116823c4100",
"targetBranch": "main",
"outcome": "Goal 2.1.291 is atomically versioned, protected, published and verified from the public registry",
"nonGoals": [
"No application source changes",
"No dependency constraint changes",
"No governance or CI policy changes",
"No writes to dirty downstream repositories"
],
"complexity": "S",
"estimatedMinutes": 30,
"budgets": {
"maxImplementationFiles": 5,
"maxAffectedComponents": 1,
"maxPublicInterfaceChanges": 0,
"maxRuntimeDependencies": 0
},
"architecture": {
"status": "accepted",
"decision": "Apply Goal's normal patch decision as one synchronized release transition, protect it through exact-head PR validation, then publish only from clean main",
"components": [
{
"name": "release-metadata",
"paths": [
"VERSION",
"README.md",
"pyproject.toml",
"uv.lock",
"goal/__init__.py"
]
}
],
"responsibilityChanges": false,
"interfaceChanges": [],
"dataChanges": [],
"ui": {
"impact": "none",
"states": [],
"evidence": []
},
"rollback": "Do not publish or merge the release when version, build, CI or exact-head evidence disagrees"
},
"runtimeDependencies": [],
"validation": [
{
"criterion": "AC-01",
"commands": [".venv/bin/goal check-versions"],
"evidence": "Decision is normal-bump from PyPI 2.1.290 to 2.1.291"
},
{
"criterion": "AC-02",
"commands": [".venv/bin/goal check-versions"],
"evidence": "All managed carriers and derived files agree on 2.1.291"
},
{
"criterion": "AC-03",
"commands": [
".venv/bin/python -m pytest tests -q",
".venv/bin/python -m build"
],
"evidence": "Complete suite and wheel/sdist build pass"
},
{
"criterion": "AC-04",
"commands": [
"./project/governance-check.sh --base c8ac6ef28e0e491b305b9d4f0d129116823c4100"
],
"evidence": "Governance, target CI and external exact-head validation pass"
},
{
"criterion": "AC-05",
"commands": [
"python -m pip install --index-url https://pypi.org/simple goal==2.1.291",
"goal --version"
],
"evidence": "Fresh public-index installation reports Goal 2.1.291"
}
]
}
}
9 changes: 9 additions & 0 deletions project/ticket-019/preprompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Preprompt: ticket-019

Publish the already merged ticket-018 package-source repair as Goal 2.1.291.
Use the version baseline and committed-source evidence reported by Goal. Keep
all release carriers synchronized, validate the exact PR head externally, and
publish only after the protected merge reaches a clean `main` checkout.

Do not change application source, dependencies, governance, CI, or downstream
repositories. Do not create a human participant file or infer human identity.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "goal"
version = "2.1.290"
version = "2.1.291"
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 = [
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.