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
4 changes: 2 additions & 2 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.299-blue.svg" alt="Version">
<img src="https://img.shields.io/badge/version-2.1.300-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,7 +23,7 @@

## AI Cost Tracking

![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-2.1.299-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-2.1.300-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-$0.91-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-176.3h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fx--ai%2Fgrok--code--fast--1-lightgrey)

- 🤖 **LLM usage:** $0.9104 (531 commits)
Expand Down
7 changes: 7 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@

## Governed architecture roadmap

- [ ] Deliver [ticket-061](project/ticket-061/README.md): publish the merged
retry-safe runtime, doctor, producer and tracked configuration fixes as Goal
2.1.300, then prove the public package on a disposable Glon checkout. State:
`IN_PROGRESS / PUBLICATION`; 618 tests (2 skips), scoped Ruff, governance
and isolated wheel/sdist validation pass; classification:
`SERVICE / P0 / requested`; depends on ticket-060.

- [x] Deliver [ticket-060](project/ticket-060/README.md): align Goal's own
tracked Python strategy with the retry-safe Twine contract while preserving
Node and Rust publishers. State: `DONE / DONE`; 618 tests (2 skips),
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.1.299
2.1.300
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.299"
__version__ = "2.1.300"
1 change: 1 addition & 0 deletions project/TICKETS.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,5 @@ This file indexes governance tickets without taking ownership of
| **ticket-058** | [`README.md`](./ticket-058/README.md) | [`preprompt.md`](./ticket-058/preprompt.md) | - | [`ai-codex.md`](./ticket-058/ai-codex.md) | [`ai-codex-logs.txt`](./ticket-058/ai-codex-logs.txt) | [`changelog.md`](./ticket-058/changelog.md) |
| **ticket-059** | [`README.md`](./ticket-059/README.md) | [`preprompt.md`](./ticket-059/preprompt.md) | - | [`ai-codex.md`](./ticket-059/ai-codex.md) | [`ai-codex-logs.txt`](./ticket-059/ai-codex-logs.txt) | [`changelog.md`](./ticket-059/changelog.md) |
| **ticket-060** | [`README.md`](./ticket-060/README.md) | [`preprompt.md`](./ticket-060/preprompt.md) | - | [`ai-codex.md`](./ticket-060/ai-codex.md) | [`ai-codex-logs.txt`](./ticket-060/ai-codex-logs.txt) | [`changelog.md`](./ticket-060/changelog.md) |
| **ticket-061** | [`README.md`](./ticket-061/README.md) | [`preprompt.md`](./ticket-061/preprompt.md) | - | [`ai-codex.md`](./ticket-061/ai-codex.md) | [`ai-codex-logs.txt`](./ticket-061/ai-codex-logs.txt) | [`changelog.md`](./ticket-061/changelog.md) |
<!-- AUTO:TICKET_INDEX:END -->
66 changes: 66 additions & 0 deletions project/ticket-061/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Ticket 061: Publish Goal 2.1.300 retry-safe release

- **ID**: ticket-061
- **Owner**: unresolved:human
- **Status**: IN_PROGRESS
- **Workflow state**: PUBLICATION
- **Created**: 2026-08-12

## Goal and scope

Publish Goal 2.1.300 from the exact merged retry-safety chain in tickets 058,
059 and 060. Synchronize only the five established release carriers through a
protected PR, then publish the wheel, sdist, annotated tag and final GitHub
Release exclusively from the clean, retested merge SHA. Prove the public
package on a disposable exact Glon checkout while preserving the user's dirty
live checkout.

## Acceptance criteria

- [x] AC-01: The user's instruction to repair and continue records
`SESSION_EXECUTION_AUTHORIZATION` for the bounded release.
- [x] AC-02: The governed PR synchronizes exactly VERSION, `pyproject.toml`,
`goal/__init__.py`, README version badges and `uv.lock` to 2.1.300, plus
this ticket's governance evidence.
- [ ] AC-03: Full tests, scoped Ruff, governance and wheel/sdist pass;
protected CI and Validator Agent approve the exact final PR head.
- [ ] AC-04: Clean merged `main` is retested before registry/tag/Release
effects and produces exactly one wheel and one sdist for 2.1.300.
- [ ] AC-05: PyPI, annotated `v2.1.300` and the final GitHub Release bind to
the exact merge and immutable hashes are recorded.
- [ ] AC-06: A fresh public-index install reports 2.1.300 and safely diagnoses
or executes the bounded Glon path without changing the live dirty checkout.

## Boundary

- No executable source belongs to this release ticket; implementation is
already integrated and independently approved in tickets 058-060.
- Top-level CHANGELOG is not rewritten; the release narrative lives here.
- No registry, tag or Release action occurs before protected merge and clean
merge validation. Existing immutable releases are never moved.
- Do not modify the live Glon checkout or its user-owned dirty files.

## Participants

- Human participant: unresolved; no user-* file was created by this script.
- Agent participant: [ai-codex.md](ai-codex.md)

## Pre-publication evidence

- Accepted base is clean `main@ad06f17`; tickets 058-060 are DONE, their
exact-head reviews and post-merge CI passed, and Goal has one main branch,
one worktree, zero open PRs and zero open issues.
- PyPI returned HTTP 404 for 2.1.300; neither local/remote `v2.1.300` nor a
GitHub Release exists before publication.

## Candidate evidence

- Goal's own `goal version patch` synchronized exactly the five declared
release carriers to 2.1.300; dependency versions and non-carrier files did
not change.
- 618 tests pass with 2 existing skips; scoped Ruff, governance (0 errors / 0
warnings) and whitespace validation pass.
- An isolated package build produced exactly
`goal-2.1.300-py3-none-any.whl` and `goal-2.1.300.tar.gz`; both metadata
records declare version 2.1.300. Candidate build output and generated
metadata were removed after verification.
7 changes: 7 additions & 0 deletions project/ticket-061/ai-codex-logs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
2026-08-12T18:36:00Z ticket-061 allocated on clean accepted base ad06f1706ab1e90527bf4b9bc84a940a41af003d after tickets 058-060 closure and exact workspace cleanup.
2026-08-12T18:36:00Z SESSION_EXECUTION_AUTHORIZATION recorded from the user's instruction to repair and continue.
2026-08-12T18:36:00Z preflight: PyPI goal/2.1.300 HTTP 404; local tag absent; remote tag absent; GitHub Release absent; Goal has one clean main worktree/branch and zero open PRs/issues.
2026-08-12T18:40:00Z contract correction: allowedPaths already named goal/__init__.py as one of five release carriers, but a contradictory broad forbidden goal/**/*.py also matched it. Removed only the contradictory forbidden entry; allowed scope and budgets are unchanged. The ambient Glon venv lacks `build`, so package validation uses Goal's repository interpreter.
2026-08-12T18:42:00Z Goal version patch synchronized exactly VERSION, pyproject.toml, uv.lock, README.md and goal/__init__.py from 2.1.299 to 2.1.300; all five are staged and no other implementation path changed.
2026-08-12T18:42:00Z candidate validation: 618 full PASS/2 SKIP; scoped Ruff PASS; governance GOV-PASS 0 errors/0 warnings; whitespace PASS. Isolated build produced exactly goal-2.1.300-py3-none-any.whl and goal-2.1.300.tar.gz with matching 2.1.300 metadata.
2026-08-12T18:42:30Z cleanup: disposable candidate artifacts, goal.egg-info, build and dist are absent; only the five release carriers and ticket evidence remain changed.
41 changes: 41 additions & 0 deletions project/ticket-061/ai-codex.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
participant-id: agent:codex
participant: codex
role: agent
ticket: ticket-061
---
# Participant: codex (AI agent)

## Understanding

Tickets 058-060 are already integrated, independently approved and clean.
This ticket only publishes their exact retry-safe behavior through the
established release carriers and proves the public package on a disposable
Glon copy so existing user work remains untouched.

## Execution plan

1. Commit the bounded release plan on the exact clean accepted base.
2. Use Goal to synchronize the five release carriers and open a protected PR.
3. Validate the exact candidate with tests, governance and package build.
4. Require exact-head Validator approval and green hosted checks before merge.
5. Retest clean merged main, publish immutable artifacts, then verify a fresh
public install in the bounded Glon reproduction.

## Actual changes

- Initialized the bounded ticket and recorded SESSION_EXECUTION_AUTHORIZATION
from the request to execute this work.
- Declared a metadata-only release boundary; tickets 058-060 own all source
and configuration implementation.
- Used Goal's version command to synchronize exactly the five declared release
carriers, then passed full tests, Ruff, governance and isolated artifact
validation.
- Removed the disposable candidate artifacts and generated package metadata;
moved to PUBLICATION for the updated exact PR 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.
10 changes: 10 additions & 0 deletions project/ticket-061/changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Ticket Changelog (ticket-061)

## [0.1.0] - 2026-08-12

- Initial governance scaffold created.
- No human participant identity or content was generated.
- Bounded the 2.1.300 release to five established version carriers after
confirming every public artifact namespace is unused.
- Synchronized the five carriers through Goal, validated the full suite and
exact package metadata, then removed all candidate build output.
90 changes: 90 additions & 0 deletions project/ticket-061/intent.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
{
"schema": "new-project.intent/v3",
"ticket": "ticket-061",
"summary": "Publish Goal 2.1.300 retry-safe release",
"workstream": "integration",
"classification": {
"kind": "SERVICE",
"priority": "P0",
"origin": "requested"
},
"allowedPaths": [
"VERSION",
"pyproject.toml",
"uv.lock",
"goal/__init__.py",
"README.md",
"project/ticket-061/**",
"TODO.md",
"project/TICKETS.md"
],
"forbiddenPaths": [
"project/ticket-*/user-*.md",
"tests/**",
".github/**",
".env",
"**/*.pem",
"**/*secret*"
],
"stacks": ["python", "docker"],
"dependsOn": ["ticket-060"],
"conflictsWith": [],
"integrationTicket": null,
"delivery": {
"acceptedBaseSha": "ad06f1706ab1e90527bf4b9bc84a940a41af003d",
"targetBranch": "main",
"outcome": "Goal 2.1.300 publishes the complete retry-safe Python publication contract and proves it without touching live Glon work",
"nonGoals": [
"No executable source, dependency-set or top-level CHANGELOG change",
"No publication, tag or GitHub Release before protected merge",
"No duplicate, replacement or moved registry artifact",
"No mutation of the user's live Glon checkout"
],
"complexity": "S",
"estimatedMinutes": 30,
"budgets": {
"maxImplementationFiles": 5,
"maxAffectedComponents": 2,
"maxPublicInterfaceChanges": 0,
"maxRuntimeDependencies": 0
},
"architecture": {
"status": "accepted",
"decision": "Synchronize the five existing release carriers through governed PR delivery, then publish only from exact validated merged main",
"components": [
{
"name": "release-metadata",
"paths": ["VERSION", "pyproject.toml", "uv.lock", "goal/__init__.py", "README.md"]
}
],
"responsibilityChanges": false,
"interfaceChanges": [],
"dataChanges": [],
"ui": {"impact": "none", "states": [], "evidence": []},
"rollback": "Never replace immutable artifacts; issue a later patch if public verification fails"
},
"runtimeDependencies": [],
"validation": [
{
"criterion": "AC-02",
"commands": ["goal -a --delivery-mode pull-request --target-version 2.1.300 push --ticket ticket-061 --no-changelog --no-publish"],
"evidence": "project/ticket-061/ai-codex-logs.txt"
},
{
"criterion": "AC-03",
"commands": ["pytest -q", "ruff check scoped paths", "./project/governance-check.sh", "python -m build"],
"evidence": "project/ticket-061/ai-codex-logs.txt"
},
{
"criterion": "AC-04",
"commands": ["clean merged-main retest", "goal -a --delivery-mode publish-only --force-publish"],
"evidence": "project/ticket-061/ai-codex-logs.txt"
},
{
"criterion": "AC-06",
"commands": ["fresh public-index goal==2.1.300 install", "bounded disposable Glon verification"],
"evidence": "project/ticket-061/ai-codex-logs.txt"
}
]
}
}
12 changes: 12 additions & 0 deletions project/ticket-061/preprompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Ticket preprompt

- **Task ID**: ticket-061
- **Task title**: Publish Goal 2.1.300 retry-safe release
- **Created**: 2026-08-12T18:36:11Z

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.
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.299"
version = "2.1.300"
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.