Skip to content

Complete production UX and harden iOS CI#22

Merged
RNT56 merged 2 commits into
mainfrom
codex/production-ux-ci-completion
Jul 13, 2026
Merged

Complete production UX and harden iOS CI#22
RNT56 merged 2 commits into
mainfrom
codex/production-ux-ci-completion

Conversation

@RNT56

@RNT56 RNT56 commented Jul 13, 2026

Copy link
Copy Markdown
Owner

What changed

  • added durable provider file-transfer records with real byte progress, cancellation, retry, interruption recovery, and verification
  • added per-run hosted-tool approval with explicit provider, model, environment, egress, side effects, destination, and retention disclosure
  • persisted CloudKit conversation and Vault conflicts, including remote-deletion conflicts, with device/iCloud resolution controls
  • added exact OpenRouter receipt-based spend reporting with coverage and missing-cost warnings
  • made runtime compatibility guidance always visible and evidence-scoped
  • bounded simulator creation, boot, and Xcode test phases so CI emits diagnostics and fails instead of hanging
  • extended schema v28, persistence coverage, generated project wiring, tests, and product documentation

Why

The app had several production UX surfaces that looked complete but did not expose durable state or honest operational boundaries. The Xcode CI job could also spend its entire 60-minute budget in an unbounded simctl bootstatus call.

User impact

Transfers are recoverable and observable, hosted provider actions cannot begin before explicit approval, CloudKit no longer silently overwrites unsynced local data, OpenRouter spend only reports exact receipts, and compatibility claims show their evidence and fallback. CI now has bounded simulator lifecycle behavior.

Current acceptance evidence

  • swift test --disable-automatic-resolution: 238 tests in 16 suites passed
  • swift run --disable-automatic-resolution PinesCoreTestRunner: passed
  • exact CI-mode Xcode validation: build-for-testing passed; app unit tests passed; 9 UI tests passed
  • fresh ephemeral iOS 26.5 simulator boot completed within the new 180-second bound
  • generated Xcode project and package-resolution drift checks passed
  • public repository hygiene, privacy/security checks, site audit/build, actionlint, ShellCheck, gitleaks, and git diff --check: passed

Real-device installation is intentionally performed after this PR is merged and the fresh main CI run passes.

Add durable provider transfers with real upload progress, explicit hosted-tool approvals, persisted CloudKit conflict resolution, exact OpenRouter spend reporting, and honest compatibility guidance.

Bound simulator lifecycle and Xcode test phases so CI fails with diagnostics instead of hanging. Extend schema, persistence, tests, generated project wiring, and product documentation.

Verified with Swift package tests, the core verifier, full Xcode unit and UI suites, public hygiene, site build, workflow lint, ShellCheck, and gitleaks.
@RNT56 RNT56 marked this pull request as ready for review July 13, 2026 12:58
Allow 12 minutes per Xcode test phase after the macOS runner completed all unit tests and six of nine UI tests before the previous eight-minute bound. Simulator lifecycle operations remain independently bounded at three minutes and the overall job remains capped at 60 minutes.
@RNT56 RNT56 merged commit e713693 into main Jul 13, 2026
13 checks passed
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.

1 participant