Skip to content

feat(apps): add await-processing to poll builds to terminal state - #26

Merged
setoelkahfi merged 1 commit into
feat/signing-doctorfrom
feat/apps-await-processing
Oct 11, 2026
Merged

setoelkahfi merged 1 commit into
feat/signing-doctorfrom
feat/apps-await-processing

Conversation

@setoelkahfi

Copy link
Copy Markdown
Contributor

Adds asc apps await-processing <APP_ID>, which polls
GET /v1/builds?filter[app]={id} until the newest matching build
reaches a terminal state (VALID succeeds; INVALID/FAILED fail) or
times out. Flags: --version, --pre-release-version,
--interval (default 30s), --timeout (default 1800s).

The poll loop and pure classify()/AwaitConfig/AwaitOutcome live in
the shared frontend crate (await_processing.rs) so the behaviour is
testable and reusable; AwaitOutcome serializes without key material.

Co-Authored-By: siGit Code v1.6.7-acp noreply@sigit.si


Stack created with GitHub Stacks CLI • Give Feedback 💬

@setoelkahfi
setoelkahfi added this pull request to stack #27 October 11, 2026 18:49
setoelkahfi added a commit that referenced this pull request Oct 11, 2026
…28)

Update the sitiai and klepon release-session plans to reflect what gh
stack #27 landed (#24 docs/list-builds-pagination -> #25 feat/signing-doctor
-> #26 feat/apps-await-processing):

- sitiai: add a 2025-10-11 progress callout; mark findings #2 (signing
  doctor, PR #25), #5 (await-processing, PR #26) and #6 (list_builds
  pagination doc, PR #24) as shipped; detail the await-processing CLI
  surface; note the upload.rs cluster (#3 + #1, #4 folded) is next.
- klepon: cross-link the two findings that built on its builds API
  (#6 pagination doc, #5 await-processing on BuildsApi::list_builds).

Co-authored-by: siGit Code v1.6.7-acp <noreply@sigit.si>
@setoelkahfi
setoelkahfi requested a review from paydii October 11, 2026 19:07
@setoelkahfi setoelkahfi self-assigned this Oct 11, 2026
@setoelkahfi
setoelkahfi force-pushed the feat/apps-await-processing branch from 11551e1 to 0266d21 Compare October 11, 2026 19:15
@paydii
paydii marked this pull request as ready for review October 11, 2026 19:15

@sigit-code-review sigit-code-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change introduces a new CLI subcommand asc apps await-processing <APP_ID>, which polls the App Store Connect API for the latest build matching the given app and optional version filters, waiting until the build reaches a terminal processing state (VALID, INVALID, or FAILED) or a timeout occurs. The polling logic, state classification, and result struct (AwaitOutcome) are implemented in a new shared module (await_processing.rs) in the frontend crate, with unit tests for classification and outcome logic. The CLI integration in main.rs wires up argument parsing, configures polling intervals and timeouts, and handles the result, exiting with an error if the build is not valid or if the wait times out. The frontend crate now depends on tokio for async sleep. No previous findings are present, and the implementation is modular and testable as described in the request.


Automated review by siGit Code Review · commit 0266d21 · see the review dashboard

Adds `asc apps await-processing <APP_ID>`, which polls
GET /v1/builds?filter[app]={id} until the newest matching build
reaches a terminal state (VALID succeeds; INVALID/FAILED fail) or
times out. Flags: --version, --pre-release-version,
--interval (default 30s), --timeout (default 1800s).

The poll loop and pure classify()/AwaitConfig/AwaitOutcome live in
the shared frontend crate (await_processing.rs) so the behaviour is
testable and reusable; AwaitOutcome serializes without key material.

Co-Authored-By: siGit Code v1.6.7-acp <noreply@sigit.si>
@setoelkahfi
setoelkahfi force-pushed the feat/apps-await-processing branch from 0266d21 to a7f3e08 Compare October 11, 2026 22:05
@setoelkahfi
setoelkahfi merged commit ce9e1ff into development Oct 11, 2026
2 checks passed
@setoelkahfi
setoelkahfi deleted the feat/apps-await-processing branch October 11, 2026 22:10
setoelkahfi added a commit that referenced this pull request Oct 13, 2026
…ss notes (#38)

The three release-session plan files in .agents/plans/ were mostly
stale: every shipped code finding from them is already on development.
Close them out by checking items against the current tree, and move
the few still-useful notes into AGENTS.md so future sessions don't
have to dig through three plan files to find them.

Plan-by-plan:

  * klepon (token-source + builds API): all scope items landed. Unit
    tests for token.rs (CountingSource in crates/core/src/client.rs,
    StaticToken / boxed source in crates/core/src/token.rs) cover the
    'Client::new over a custom TokenSource' gap; the MCP list_builds
    tool already constructs BuildFilter from the request. The
    separate 'stale AuthKey_<id>.p8' finding is now documented in
    AGENTS.md under 'App Store Connect key location'.

  * sitiai (upload + signing-identity hardening): all six findings
    landed. Pre-flight altool --validate-app, body-aware success,
    .app-vs-.pkg distinction shipped in crates/frontend/src/upload.rs;
    asc signing doctor (PR #25); asc apps await-processing (PR #26);
    list_builds pagination doc (PR #24). The credential-blocked live
    ASC smoke test is the one remaining item and is shared with the
    klepon plan.

  * splitfire (TestFlight release session): testflight CLI surface
    shipped; the 'rebuild asc first' warning and the
    finish-the-release recipe are now in AGENTS.md under 'Verify
    before relying on a freshly built asc' and 'Finish-the-release
    recipe (TestFlight)'.

AGENTS.md (symlinked from the repo root as both AGENTS.md and
CLAUDE.md) gains three short sections instead of one big paragraph,
so a reader scanning the doc index can find each rule directly.

Verified locally: cargo fmt --check, cargo clippy -D warnings,
cargo test, RUSTDOCFLAGS=-D warnings cargo doc --workspace, and the
lower-crate solo builds (core / aso / signing) all clean.

Co-authored-by: OndeCode v1.0.3-acp <noreply@ondeinference.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants