Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.13.0] - 2026-07-24

**The session is enough. Demanding an app-specific password is a bug.**

A release run stopped to demand an app-specific password "because Apple requires it for uploading on 2FA accounts." Per fastlane's own documentation that is false: the cached spaceauth session alone uploads binaries through deliver and pilot; the app-specific password is an alternative for sessionless environments, not a requirement. The adapter now says so explicitly again (the sentence was lost in the v1.64.7.0 rewrite), and adds an attempt-first rule: only a real authentication error from a real upload attempt may open any credential fallback conversation. App Review contact details also stop being a mid-run roadblock — collected once inside the authorization moment, persisted, never re-asked.

### Itemized changes

### Changed

- `references/APPLE-RELEASE.md` (ship tree): restored the session-suffices-for-upload guarantee with an attempt-first rule (preemptive app-specific-password demands are a named violation); App Review contact info folded into the authorization moment and the decision store.

## [1.64.12.0] - 2026-07-24

**The screenshots question is built from a live skill check, not memory.**
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.64.12.0
1.64.13.0
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "gstack",
"version": "1.64.12.0",
"version": "1.64.13.0",
"description": "GStack 2 \u2014 six portable Agent Skills with an optional host-neutral runtime.",
"license": "MIT",
"type": "module",
Expand Down
2 changes: 2 additions & 0 deletions scripts/gstack2/generate-skill-tree.ts
Original file line number Diff line number Diff line change
Expand Up @@ -674,6 +674,8 @@ Build this question's options from a LIVE check of installed skills at ask time
1. Archive and export the signed Release build with \`gym\` (it drives xcodebuild and the signing minted in preflight). Projects with custom archive requirements may drop to \`xcodebuild archive\` directly; the output either way is an App Store-signed \`.ipa\`.
2. The upload is an external effect: run \`pilot\` (TestFlight) or \`deliver\` (App Store) through the durable state wrapper with a key like \`appstore.upload.<bundle-id>.<build>\`. Never re-upload on ambiguity; inspect App Store Connect for the build first.
3. The cached session is an env-level credential: never argv, never echoed, never committed.
4. NEVER demand an app-specific password. Per fastlane's documented authentication, the cached spaceauth session ALONE suffices for binary upload through \`deliver\`/\`pilot\`; \`FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD\` is an alternative for environments without a session, not a requirement on top of one. Attempt the session upload FIRST; only an actual authentication error from a real upload attempt may open a fallback conversation, and "Apple requires an app-specific password on 2FA accounts" stated without that error in hand is a contract violation.
5. App Review contact details (name, email, phone) are required metadata for submission: infer name and email from the signed-in Apple ID and git config, collect the phone number once inside the authorization moment, persist it to the decision store, and never re-ask. Contact details are metadata, not a blocking gate to announce mid-run.

## Storefront completion

Expand Down
2 changes: 2 additions & 0 deletions skills/ship/references/APPLE-RELEASE.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading