From 32e43628a203f31fadc4f1f99fff7271e94d05dd Mon Sep 17 00:00:00 2001 From: Sinabina Date: Thu, 23 Jul 2026 18:29:39 -0700 Subject: [PATCH 1/3] feat(gstack2): store-assets question asked once per app via decision store Co-Authored-By: Claude Fable 5 --- scripts/gstack2/generate-skill-tree.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/gstack2/generate-skill-tree.ts b/scripts/gstack2/generate-skill-tree.ts index f1e84dbfc8..01eb0bedc9 100644 --- a/scripts/gstack2/generate-skill-tree.ts +++ b/scripts/gstack2/generate-skill-tree.ts @@ -659,7 +659,7 @@ Resolve and verify before archiving. Fix what the printed mutation boundary auth ## Store assets -Only when preflight finds the icon or screenshots missing, ask once — the journey's second and final permitted question — then act on the choice without further prompts. Offer: +Only when preflight finds the icon or screenshots missing, ask once — the journey's second and final permitted question — then act on the choice without further prompts. Once per app, EVER: before asking, check the decision store (\`bin/gstack-decision-search --scope repo --query "store assets"\`); a settled choice (including "defer screenshots" or "TestFlight only") is applied silently, never re-asked. After the user answers, persist it (\`bin/gstack-decision-log\` with scope \`repo\`) so no future run asks again; the user changes it by saying so, not by being re-prompted. Offer: - **App icon**: SnapAI (\`npx snapai\`, the app-icon agent skill) generates the single 1024×1024 with the user's own image-generation key; Xcode 15+ derives every size from that one image. - **Screenshots, free and local**: capture the built app in the simulator and frame with fastlane \`frameit\`. From 78550d1f6ed9605c7b64c001574a4346070027f9 Mon Sep 17 00:00:00 2001 From: Sinabina Date: Thu, 23 Jul 2026 18:29:39 -0700 Subject: [PATCH 2/3] chore(gstack2): regenerate Apple release adapter Co-Authored-By: Claude Fable 5 --- skills/ship/references/APPLE-RELEASE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skills/ship/references/APPLE-RELEASE.md b/skills/ship/references/APPLE-RELEASE.md index 2951551b23..a60c882d89 100644 --- a/skills/ship/references/APPLE-RELEASE.md +++ b/skills/ship/references/APPLE-RELEASE.md @@ -22,7 +22,7 @@ Resolve and verify before archiving. Fix what the printed mutation boundary auth ## Store assets -Only when preflight finds the icon or screenshots missing, ask once — the journey's second and final permitted question — then act on the choice without further prompts. Offer: +Only when preflight finds the icon or screenshots missing, ask once — the journey's second and final permitted question — then act on the choice without further prompts. Once per app, EVER: before asking, check the decision store (`bin/gstack-decision-search --scope repo --query "store assets"`); a settled choice (including "defer screenshots" or "TestFlight only") is applied silently, never re-asked. After the user answers, persist it (`bin/gstack-decision-log` with scope `repo`) so no future run asks again; the user changes it by saying so, not by being re-prompted. Offer: - **App icon**: SnapAI (`npx snapai`, the app-icon agent skill) generates the single 1024×1024 with the user's own image-generation key; Xcode 15+ derives every size from that one image. - **Screenshots, free and local**: capture the built app in the simulator and frame with fastlane `frameit`. From b84b064595514f7968274cc4e345f078bf121f81 Mon Sep 17 00:00:00 2001 From: Sinabina Date: Thu, 23 Jul 2026 18:29:39 -0700 Subject: [PATCH 3/3] docs: CHANGELOG + VERSION 1.64.9.0 Co-Authored-By: Claude Fable 5 --- CHANGELOG.md | 12 ++++++++++++ VERSION | 2 +- package.json | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59ff4ad8a3..bab8541e6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,18 @@ > completion state and remaining P0 gates. No version bump or release claim is > made here while that status holds. +## [1.64.9.0] - 2026-07-24 + +**The assets question is asked once per app. Ever.** + +A release run re-asked how to handle screenshots after an earlier run had already settled it ("TestFlight only, defer screenshots"). Settled means settled: the store-assets question now checks the per-project decision store before asking, applies a prior choice silently, and persists the answer the first time it is given. You change your mind by saying so, not by being re-prompted every run. + +### Itemized changes + +### Changed + +- `references/APPLE-RELEASE.md` (ship tree): the store-assets question is wired into the cross-session decision store (`gstack-decision-search` before asking, `gstack-decision-log` after answering, scope repo) — one ask per app for the life of the project. + ## [1.64.8.0] - 2026-07-24 **Two interactions, the contract's final shape:** diff --git a/VERSION b/VERSION index 612d68ee10..064121c81b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.64.8.0 +1.64.9.0 diff --git a/package.json b/package.json index 4732d0732a..f9f22219d1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gstack", - "version": "1.64.8.0", + "version": "1.64.9.0", "description": "GStack 2 \u2014 six portable Agent Skills with an optional host-neutral runtime.", "license": "MIT", "type": "module",