chore(release): v0.8.0 #116
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!116
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "release-prep/rolling"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Added
AGENTS.md§8 Axis A grows from n=5 → n=7 across 4 → 5 structurally-distinct surfaces.Two new empirical instances from the 2026-06-26 path (α) auto-merge investigation:
merge_whitelist-semantic-mis-mapping— joins the config-semantics surface (sibling to instance 2apply_to_admins). Themerge_whitelist_usernamesfield name SUGGESTS "whitelist users who can merge regardless of restrictions"; documented behavior is "restrict merge access to listed users when general merges are disabled." Inferred-from-name semantic was OPPOSITE of actual semantic. Empirical test confirmed by locking the admin caller out of merging.self-approval-globally-hardcoded— NEW 5th surface (configurable-vs-hardcoded policy). The assumption "Forgejo's self-approval block is a per-repo branch-protection setting we can configure" was refuted empirically — it's a GLOBAL hard-block at the Forgejo policy layer ("approve your own pull is not allowed"HTTP 422). Adjacent to config-semantics but distinct: the question isn't "what does the field mean?" but "is this configurable AT ALL?"Pattern strengthening at n=7 — added explicit guidance: after writing to a Forgejo field, READ IT BACK to verify the entry actually stuck + don't assume a behavior is per-repo configurable just because related behaviors are.
Two new calibration notes:
release-bot's whitelist permission, asking for a further empirical probe would have been over-cautious — the UI configuration IS the live source.This PR was originally scoped as the #112 review-gate tradeoff docs work. Operator's architectural question 2026-06-26 ("why a second PR at all? direct-push the manifest commit by
release-bot") surfaced an ADR-0007 candidate that would dissolve the (2)/(3) tradeoff documented in the original PR scope. The §8 banks are useful regardless of ADR-0007's outcome (worked instances of the discipline that hold independently of the manifest-mechanism architecture), so this PR's scope was reduced to just the §8 banks. The integration.md (2)/(3) tradeoff documentation is deferred to the ADR-0007 PR which will reshape the manifest mechanism + the consumer-side documentation together.ADR-0007 lands (docs/adr/0007-manifest-commit-direct-push.md): the manifest commit lifecycle splits along consumer setup. The PR mechanism introduced in #78 was a workaround for the pre-path-α push-permission gap; with path (α) wired, the cleaner direct-push path becomes the default.
release-botconfigured: the workflow direct-pushes the manifest commit tomain. No PR is opened. No second-PR click required per cut. Compatible withrequired_approvals > 0on substantive PRs (the approval gate applies to PR merges, not whitelisted direct pushes).release-toolkit/manifest-<TAG>PR and attempts auto-merge (existing v0.5.0+ behavior, unchanged). Operator manually merges if branch protection blocks auto-merge.Detection mechanism:
.forgejo/workflows/_release.ymlbranches on[[ -n "${RELEASE_TOKEN_OVERRIDE:-}" ]]— the same predicate already used by the bash-level token-fallback (${RELEASE_TOKEN_OVERRIDE:-$GITHUB_TOKEN_DEFAULT}). Reusing it for the manifest-mechanism choice keeps the detection coherent across the workflow.Empirical verification (per AGENTS.md §8 Axis A): claim that
push_whitelist_usernamesallows directgit pushto protectedmainby listed users was verified via (a) operator quotation of Forgejo UI text ("only whitelisted users will be allowed to push to this branch" — UI render = read-back = authoritative source per the source-quotation calibration), and (b) empirical probe with a temporaryrelease-botPAT creating + deleting a probe file onmain(commits0bbd6b5add +ed1a8cfdelete, both authored byrelease-bot@noreply.git.frankenbit.de).Consequences for sibling trackers:
Preserves: Gate-1 (rolling PR merge) and Gate-3 (publish click) per ADR-0003; push-trigger architecture per ADR-0004; the security-surface-asymmetry rationale from #78 (path (γ) consumers without bot setup still get a working substrate without elevated permissions).
7f8f78a7cb7e86f0a64e7e86f0a64eto7c87695f947c87695f94to01667854de01667854deto151657a03d