Commit Graph
6 Commits
Author SHA1 Message Date
garrytanandcapy-ai[bot] 14fb00c3c2 Merge origin/main (v1.91.278.0) into absorb-tstack-2
GSTA-36 rule-19 grant 2026-10-27 naming 1f246e35. CHANGELOG via mergeChangelogs ([Unreleased] on top); CONTRIBUTING.md keeps this PR's new-skill steps 3-4 and main's step 5 (generated sections/preamble.md); test/fixtures/context-budget.json keeps main's values with modernize recaptured at 3772 (the preamble hoist moved it from 9466) and alwaysOnTotal 7769 -> 7880; test/helpers/carve-guards.ts ship cap 1.7524 -> 1.7528, measured 329,005 / 187,706 = 1.75277 on the merged tree (skeleton 60,900 after the hoist, 0 bytes from this PR); modernize/sections/preamble.md generated by the hoist.

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
2026-10-27 15:15:20 +00:00
garrytanandcapy-ai[bot] 6b14d7da4b fix: /modernize stops on merge commits in the PR range and pushes a fork head to the fork
A plain git rebase drops merge commits and git range-diff compares only the
non-merge patches, so a change authored in a PR's merge commit disappeared
while the proof printed = for every patch and Step 5 force-pushed the loss.
Step 4 now counts merges in $MERGE_BASE..$OLD_HEAD and stops when there are
any, switches with -C so a rerun after a refused lease does not fail on the
existing branch, and asks for a cross-repository diff to be read as untrusted
input before the repository's test command runs it. Step 5 pushes a fork head
to the fork's URL with the same pinned lease instead of to origin, where the
lease could never match.

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
2026-10-26 22:24:17 +00:00
garrytanandcapy-ai[bot] 51b7846176 fix: /modernize fetches a fork head with a forced refspec and stops when the PR moved
A rerun after the author force-pushed left refs/modernize/pr-N stale (the
non-forced refspec is rejected with exit 0 through the pipe), and the lease
pinned to the current remote head would then have let the rebased stale head
overwrite the author's newer commits. The fetch is forced, Steps 2 and 4 stop
when the head is not the one observed in Step 1, and the head-is-base guard
applies only to same-repository PRs (a fork's main into main is a valid head).

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
2026-10-26 22:07:14 +00:00
garrytanandcapy-ai[bot] e0b5f5dd7e fix: pre-landing review fixes
- gstack-post: with --attribute, report scan findings at the body file's own
  line numbers and a finding inside the callout as PART: attribute (the
  coordinates were shifted by the three callout lines)
- /modernize: route commit messages through gstack-issue-guard with the rest
  of the PR text, read isCrossRepository and maintainerCanModify, fetch a fork
  head from pull/N/head, refuse a PR whose head is the base branch, and list
  moved files NUL-safely
- docs/unattended.md: say that /ship never rebases or force-pushes and an
  unattended /modernize stops at its verdict
- CHANGELOG: seven skills carry a codex_default_prompt, not six

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
2026-10-26 22:01:47 +00:00
garrytanandcapy-ai[bot] db1e9027d8 fix(modernize): read the PR text through gstack-issue-guard; re-measure the context ceiling
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
2026-10-26 21:26:13 +00:00
garrytanandcapy-ai[bot] 15ca433067 feat(absorb-tstack): /modernize skill, per-skill Codex default prompts, gstack-post --attribute, the unattended grant and a CONTRIBUTING porting section
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
2026-10-26 21:16:00 +00:00