mirror of
https://github.com/garrytan/gstack.git
synced 2026-07-07 16:48:01 +02:00
chore: bump version and changelog (v1.57.3.0)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,63 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [1.57.3.0] - 2026-06-07
|
||||||
|
|
||||||
|
## **Every PR `/ship` opens gets the version stamped into its title, fork and agent PRs included.**
|
||||||
|
## **The rule rides in the always-loaded part of the skill now, and a guard keeps it there.**
|
||||||
|
|
||||||
|
`/ship` stamps `vX.Y.Z.W` onto the title of every PR or MR it creates or updates, so
|
||||||
|
the version is the first thing you read in the PR list. That rule now lives in the
|
||||||
|
always-loaded core of the ship skill instead of an on-demand section, so the agent
|
||||||
|
applies it whether or not it opened the section that spells out the full procedure.
|
||||||
|
A CI workflow backs this up: it rewrites a title to match VERSION on every PR that
|
||||||
|
bumps the version, and it now reaches fork and agent PRs too, which a read-only token
|
||||||
|
could never touch before. Two free tests lock the behavior in so it cannot drift on
|
||||||
|
the next refactor.
|
||||||
|
|
||||||
|
### The numbers that matter
|
||||||
|
|
||||||
|
Reproduce with `bun test test/carve-section-ordering.test.ts test/pr-title-sync-workflow-safety.test.ts`
|
||||||
|
and `bun run eval:select`.
|
||||||
|
|
||||||
|
| Property | Before | After |
|
||||||
|
|---|---|---|
|
||||||
|
| Where the title rule loads | on-demand section only (since v1.54.0.0) | always-loaded skeleton + on-demand detail |
|
||||||
|
| Fork / agent PR title sync | none (read-only token under `pull_request`) | covered via hardened `pull_request_target` |
|
||||||
|
| Test proving the rule stays put | none | carve-guard registry asserts it on every PR |
|
||||||
|
| CI injection guard for the title workflow | none | static tripwire fails CI on unsafe patterns |
|
||||||
|
|
||||||
|
The title workflow now runs with a write token in the base-repo context but never
|
||||||
|
checks out or executes PR-head code, and every attacker-controlled field reaches the
|
||||||
|
script through `env:`, never inlined. A static test fails CI if either rule regresses.
|
||||||
|
|
||||||
|
### What this means for you
|
||||||
|
|
||||||
|
Ship a branch and the PR shows up titled `v1.57.3.0 fix: ...` without you touching it,
|
||||||
|
even when the PR came from a fork. The agent no longer needs to read the right section
|
||||||
|
at the right moment for the version to land in the title, and the next person who slims
|
||||||
|
the ship skill cannot quietly strand the rule again, because a free test on every PR
|
||||||
|
checks that it is still there.
|
||||||
|
|
||||||
|
### Itemized changes
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- Carve-guard coverage for the ship PR-title invariant: the registry now asserts the
|
||||||
|
`v$NEW_VERSION` rule and the title helper stay in the always-loaded skeleton, while
|
||||||
|
the full create and update procedure stays in the on-demand section.
|
||||||
|
- Static CI-safety test for the title-sync workflow that fails the build if it checks
|
||||||
|
out PR-head code or inlines an attacker-controlled PR field into a shell step.
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- The PR/MR title-version rule is always-loaded in `/ship` again, so the version
|
||||||
|
prefix lands on every PR the workflow creates or updates.
|
||||||
|
- The PR title-sync CI workflow now covers fork and agent PRs through a hardened
|
||||||
|
`pull_request_target` trigger (base-repo checkout only, PR fields passed via `env:`,
|
||||||
|
VERSION read as data from the PR head).
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- A path token in the ship PR-body section that rendered literally instead of resolving
|
||||||
|
now uses the correct helper path, so the Linked Spec auto-detect step runs as written.
|
||||||
|
|
||||||
## [1.57.0.0] - 2026-06-07
|
## [1.57.0.0] - 2026-06-07
|
||||||
|
|
||||||
## **Three more heavyweight skills load lighter, and every carved skill finally has a test that proves it loads.**
|
## **Three more heavyweight skills load lighter, and every carved skill finally has a test that proves it loads.**
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "gstack",
|
"name": "gstack",
|
||||||
"version": "1.57.0.0",
|
"version": "1.57.3.0",
|
||||||
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
|
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
Reference in New Issue
Block a user