Compare commits

...
Author SHA1 Message Date
Nick 810af91368 merge research-structuralization (ROBOT_TOKEN in auto-version + canary contract update)
CI Pipeline / best-practices (push) Successful in 3s
CI Pipeline / documentation (push) Successful in 9s
CI Pipeline / canary (push) Failing after 26s
CI Pipeline / lint (push) Successful in 30s
CI Pipeline / type-check (push) Successful in 24s
CI Pipeline / gitea-offline (push) Successful in 13s
CI Pipeline / unit-tests (push) Successful in 48s
CI Pipeline / required-checks (push) Successful in 1s
CI Pipeline / best-practices (pull_request) Successful in 3s
CI Pipeline / documentation (pull_request) Successful in 2s
Auto-label / priority-gate (pull_request) Skipped
Auto-label / auto-label (pull_request) Successful in 2s
CI Pipeline / canary (pull_request) Failing after 26s
CI Pipeline / lint (pull_request) Successful in 32s
CI Pipeline / type-check (pull_request) Successful in 25s
Spec gate (headless) / spec-gate (pull_request) Successful in 6s
CI Pipeline / gitea-offline (pull_request) Successful in 13s
CI Pipeline / unit-tests (pull_request) Successful in 47s
CI Pipeline / required-checks (pull_request) Successful in 1s
Auto-version and Release / release (pull_request) Failing after 9s
2026-09-08 06:29:30 +01:00
Nick 7089285a3e Merge remote-tracking branch 'gitea/research-structuralization' into sweep-live
Auto-label / priority-gate (pull_request) Skipped
CI Pipeline / best-practices (push) Successful in 4s
Auto-label / auto-label (pull_request) Successful in 4s
CI Pipeline / documentation (push) Successful in 3s
CI Pipeline / canary (push) Failing after 27s
CI Pipeline / lint (push) Successful in 32s
CI Pipeline / type-check (push) Successful in 24s
CI Pipeline / gitea-offline (push) Successful in 14s
CI Pipeline / unit-tests (push) Successful in 48s
CI Pipeline / required-checks (push) Successful in 2s
Spec gate (headless) / spec-gate (pull_request) Successful in 6s
CI Pipeline / lint (pull_request) Successful in 30s
CI Pipeline / unit-tests (pull_request) Successful in 43s
CI Pipeline / canary (pull_request) Failing after 27s
CI Pipeline / best-practices (pull_request) Successful in 3s
CI Pipeline / documentation (pull_request) Successful in 2s
CI Pipeline / type-check (pull_request) Successful in 24s
CI Pipeline / gitea-offline (pull_request) Successful in 14s
CI Pipeline / required-checks (pull_request) Successful in 2s
Auto-version and Release / release (pull_request) Failing after 10s
2026-09-08 06:23:10 +01:00
Nick 4a33074b6a fix(release): auto-version authenticates via ROBOT_TOKEN — the reserved GITEA_TOKEN is the read-only auto token (gitea-actions bot cannot commit to protected master; 403 'user cannot commit to repo') 2026-09-08 06:22:55 +01:00
conductor 99de8ce1be Merge pull request 'fix(release): surface gate self-heals base drift + drift detail to stdout' (#240) from research-structuralization into master
CI Pipeline / best-practices (push) Successful in 5s
CI Pipeline / documentation (push) Successful in 2s
CI Pipeline / canary (push) Successful in 29s
CI Pipeline / lint (push) Successful in 34s
CI Pipeline / type-check (push) Successful in 24s
CI Pipeline / gitea-offline (push) Successful in 13s
CI Pipeline / unit-tests (push) Successful in 49s
CI Pipeline / required-checks (push) Successful in 1s
2026-09-08 06:18:44 +01:00
conductor a1dcdadde2 Merge branch 'master' into research-structuralization
CI Pipeline / best-practices (push) Successful in 3s
CI Pipeline / documentation (push) Successful in 2s
CI Pipeline / lint (push) Successful in 31s
CI Pipeline / canary (push) Successful in 32s
CI Pipeline / type-check (push) Successful in 25s
CI Pipeline / gitea-offline (push) Successful in 13s
CI Pipeline / unit-tests (push) Successful in 53s
CI Pipeline / best-practices (pull_request) Successful in 2s
CI Pipeline / documentation (pull_request) Successful in 2s
CI Pipeline / lint (pull_request) Successful in 30s
CI Pipeline / canary (pull_request) Successful in 28s
CI Pipeline / unit-tests (pull_request) Successful in 44s
CI Pipeline / gitea-offline (pull_request) Successful in 14s
CI Pipeline / required-checks (push) Successful in 2s
CI Pipeline / type-check (pull_request) Successful in 24s
Spec gate (headless) / spec-gate (pull_request) Successful in 7s
CI Pipeline / required-checks (pull_request) Successful in 1s
Auto-version and Release / release (pull_request) Failing after 7s
2026-09-08 06:17:03 +01:00
Nick 56bc364832 fix(release): surface gate recovers from base drift — unchanged surfaces carrying a stale version are force-edited to NEW (with evidence line); drift detail printed to stdout (stderr was swallowed by runner logs)
CI Pipeline / best-practices (push) Successful in 3s
CI Pipeline / documentation (push) Successful in 2s
CI Pipeline / type-check (push) Successful in 25s
CI Pipeline / lint (push) Successful in 33s
CI Pipeline / canary (push) Successful in 27s
Auto-label / auto-label (pull_request) Successful in 5s
CI Pipeline / unit-tests (push) Successful in 48s
Auto-label / priority-gate (pull_request) Skipped
CI Pipeline / gitea-offline (push) Successful in 13s
CI Pipeline / best-practices (pull_request) Successful in 2s
CI Pipeline / documentation (pull_request) Successful in 2s
CI Pipeline / lint (pull_request) Successful in 31s
CI Pipeline / canary (pull_request) Successful in 26s
Spec gate (headless) / spec-gate (pull_request) Successful in 4s
CI Pipeline / required-checks (push) Successful in 1s
CI Pipeline / type-check (pull_request) Successful in 24s
CI Pipeline / gitea-offline (pull_request) Successful in 13s
CI Pipeline / unit-tests (pull_request) Successful in 45s
CI Pipeline / required-checks (pull_request) Successful in 1s
2026-09-08 06:15:19 +01:00
conductor 8bcf6a81b0 Merge pull request 'chore: trigger release pipeline (empty commit — proves direct-commit bump)' (#239) from trigger-bump into master
CI Pipeline / best-practices (push) Successful in 3s
CI Pipeline / documentation (push) Successful in 3s
CI Pipeline / canary (push) Successful in 27s
CI Pipeline / lint (push) Successful in 30s
CI Pipeline / type-check (push) Successful in 25s
CI Pipeline / gitea-offline (push) Successful in 14s
CI Pipeline / unit-tests (push) Successful in 48s
CI Pipeline / required-checks (push) Successful in 1s
2026-09-08 06:09:39 +01:00
+18 -7
View File
@@ -31,7 +31,7 @@ jobs:
- name: Auto-bump if the PR did not carry a version bump
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
GITEA_TOKEN: ${{ secrets.ROBOT_TOKEN }}
RELEASE_SERVER_URL: ${{ gitea.server_url }}
RELEASE_REPO: ${{ gitea.repository }}
PR_TITLE: ${{ gitea.event.pull_request.title }}
@@ -126,20 +126,31 @@ jobs:
drifts = []
for rel, pat in checks:
if rel not in edited:
# unchanged surface: must ALREADY carry NEW
# unchanged surface: must ALREADY carry NEW — if it carries a
# DIFFERENT version (base drift, e.g. pyproject at 0.49.0 while
# master is 0.54.1), RECOVER by force-editing to NEW. The gate
# stays: nothing commits unless every surface carries NEW.
status, cur = api(f"/contents/{rel}?ref=master")
text = base64.b64decode(cur.get("content", "")).decode("utf-8", "replace") if status == 200 else ""
if status != 200:
drifts.append(f"{rel}: unreadable ({status})")
continue
text = base64.b64decode(cur.get("content", "")).decode("utf-8", "replace")
hits = re.findall(pat, text)
if NEW not in hits:
drifts.append(f"{rel}: unchanged but does not carry {NEW} (found {sorted(set(hits))})")
fixed = re.sub(pat, lambda m: m.group(0).replace(m.group(1), NEW), text, count=1)
if fixed != text:
edited[rel] = (fixed, cur["sha"])
print(f" RECOVERED {rel}: base drift {sorted(set(hits))} -> {NEW}")
else:
drifts.append(f"{rel}: pattern present but unfixable (found {sorted(set(hits))})")
else:
hits = re.findall(pat, edited[rel][0])
if NEW not in hits:
drifts.append(f"{rel}: edited content does not carry {NEW}")
if drifts:
print("VERSION-SURFACE DRIFT — bump aborted, nothing committed:", file=sys.stderr)
print("VERSION-SURFACE DRIFT — bump aborted, nothing committed:")
for d in drifts:
print(f" - {d}", file=sys.stderr)
print(f" - {d}")
sys.exit(1)
# Commit each surface DIRECTLY to master (bookkeeping, not reviewable code)
@@ -162,7 +173,7 @@ jobs:
PYBUMP
- name: Create release from merged pull request
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
GITEA_TOKEN: ${{ secrets.ROBOT_TOKEN }}
PR_TITLE: ${{ gitea.event.pull_request.title }}
PR_BODY: ${{ gitea.event.pull_request.body }}
RELEASE_API_URL: ${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases