Repository navigation
Bind app installation to inspected packages - #14
Draft
hideouts-io wants to merge 20 commits into
Draft
hideouts-io wants to merge 20 commits into
hideouts-io wants to merge 20 commits into
Conversation
A blocking FIFO read can defer the shell TERM trap under full-suite scheduling. Wait on a task-owned child instead, then hold the signal handler at the FIFO barrier and reap the child after release.
Run asynchronous package preparation and IPA inspection on a dedicated Dispatch queue while preserving strict nested signature validation. Carry cancellation through preparation checkpoints and clean an owned result before reporting late cancellation. Exercise concurrent signed inspection and the pre-cancelled preparation path.
Extend hosted native acceptance with genuine A/B preparations and controlled late A delivery through the real chooser. Retain exact private-copy cleanup, source hashes and simulator inventory checks. Local strict parallel tests, headless App/UI build, signature verification, helper compilation and independent review pass. Hosted acceptance and candidate Swift CodeQL remain pending; active-reader Quit and physical installation are separate gates.
Use the actual unique application-level PathTextField observed in the failed hosted chooser. Preserve the five-second existence and hittability condition and all single-action path assertions. Headless app/UI build, signature verification and fixed diff review pass; fresh native acceptance remains required.
…ader Add explicit Debug acceptance that retains a genuine SecStaticCode handle before unchanged validation on the dedicated worker. Extend native recovery through the existing eight-second Quit timeout, cancellation, blocked re-selection, real validation and cleanup, recovery and normal Quit. Host verification requires six actual preparation paths and unchanged source hashes and simulator inventory. Local strict parallel tests, native signature integration, App/UI compilation, signatures, helper compilation and independent review pass. Hosted native acceptance and exact-candidate Swift CodeQL remain pending; the lease does not prove C-call overlap.
Use the observed unique application-level OKButton instead of the obsolete panel ancestry exposed by the failed hosted chooser. Preserve the ten-second existence/enabled/hittable check and single Open action. Headless App/UI build, signature verification and independent review pass; fresh full hosted acceptance and Swift CodeQL remain required.
Collect bounded direct-child lifecycle metadata and fixed stack-category counts around the unchanged post-boot query. Keep raw reports private and remove them after the owned sampler exits, including cancellation. Strict helper compilation, full parallel package tests, native test build and signature checks passed locally. Actual process probes cover fast completion, capture, timeout and query exit during sampling. Hosted native acceptance remains gated on successful fixture preparation.
…ndows Bound the complete target menu and use icon-only primary actions so a long selected simulator name does not displace all controls at the supported minimum window width. Preserve target data, accessible titles, identifiers and commands. Require the picker to remain present and hittable immediately after real selection on both native launches. Strict local build, all 279 parallel tests, UI-test compilation, signature verification and fixed-diff review passed. Hosted native sizing, cleanup and layouts require fresh candidate validation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Package installation consumes a successfully inspected private copy. Confirmation captures package, target and developer-package option; original and copy are revalidated before the captured backend consumes it. Pending, failed, changed and unsupported packages cannot authorize installation. Signature/package inspection runs on a dedicated Dispatch queue, and cancellation retains its worker and copy until native validation returns and cleanup finishes.
The explicit hosted native test requires malformed-package denial, valid recovery, exact confirmation/Cancel, late delivery of cancelled completed A after B becomes current, and normal Quit. Its first unfinished-reader case now declines Quit through the actual Cancel button and requires an uncancelled reader, retained copy and later eligible preparation. A second launch exercises Quit Anyway, the unchanged eight-second refusal while cleanup still owns a reader, blocked re-selection, real release/validation/cleanup, recovery and another normal Quit. The full native sequence remains a required candidate gate.
The Debug connector holds a genuine
SecStaticCodehandle before validation, with a fixed finite lease and failure teardown. It does not establish overlap with the uninterruptible C validity call. Strict/all-architecture/nested-code validation remains enabled. Native file-panel queries retain observed identifiers, unique matches, bounded waits and real interactions. Long target labels declare a bounded width and middle truncation to address the confirmed minimum-width toolbar overflow.The fixture host prepares two distinct signed simulator apps and malformed archive bytes. It independently requires six actual preparation paths absent, three original input hashes unchanged, unchanged simulator inventory and exact owner-bound cleanup. Static preparation-phase and post-boot consumer-delivery metadata preserve existing command arguments, deadlines, parsing, identity and cleanup gates without logging payloads or target identifiers. Delivery counts do not establish child-output production or exit time.
The new headless signed-bundle integration deliberately fails its caller only after a genuine native reader owns a handle and private copy. Structured teardown cancels the child, calls existing
finishAfterFailure, preserves the typed caller error and drains the group. It independently observes the child's actualCancellationError, successful native validation, exact directory removal withENOENT, and unchanged bytes in the three known original fixture files. An unexpected usable preparation records a test issue before identity-aware cleanup. The existing explicit-release case remains in place.The post-boot query now has bounded helper/direct-child lifecycle observations and one brief sample per owned query/helper. Parent, UID, birth identity and executable metadata are checked; identity changes and unavailable captures remain explicit. Only fixed stack-category counts leave the private sample files. Cancellation uses an uncancelled owned-command consumer and joins actual sampler exit before raw-file cleanup or later fixture commands. Sampling perturbs scheduling; PID checks cannot make external attachment atomic. Original query arguments, environment, 60-second deadline, grace, parsing and full owner-bound cleanup/inventory gates remain unchanged. No production runner behavior change is inferred from missing consumer bytes.
The newest change addresses a confirmed minimum-width toolbar defect: after selecting the long owned simulator name, all app toolbar controls moved into overflow at 900 points, so a subsequent launch could not expose the target picker. The complete menu now has a 220-point bound with horizontal compression, and the three primary actions use icon-only visual labels while retaining their accessible titles and identifiers. The native test immediately requires picker visibility/hittability after real selection on both launches; no fallback interaction, larger window, longer wait or skipped assertion is used.
Verification
Candidate:
939b853796b85c35ed16f7b84c3ff967851f8b9b(tree9acf10ce69258234e4e66738d57510474079063d). The latest checkpoint changes ContentView and one native post-selection assertion: seven additions, three removals.Local Xcode 27.2 / Swift 6.4.2, headless:
nice -n 10 swift build -j 2 -Xswiftc -warnings-as-errors: passed.nice -n 10 swift test --build-system native --disable-automatic-resolution --parallel -j 2 -Xswiftc -warnings-as-errors: 279 tests / 42 suites passed in 6.793 seconds; opt-in coverage remains separate.nice -n 10 xcodebuild -project iOSDeveloperToolkit.xcodeproj -scheme iOSDeveloperToolkit -configuration Debug -destination 'platform=macOS,arch=arm64' -jobs 2 build-for-testing: passed using existing per-target warnings-as-errors.codesign --verify --deep --strict --verbose=2on the built Debug app: passed.swiftc -swift-version 6 -warnings-as-errors -parse-as-library; real process probes passed fast completion, dual sample capture, primary timeout preservation and actual query exit during sampling with sampler exit joined before return.Current CI passed all four jobs at actual test-merge
ec00fb7d45be933418430063209cb0f0704657e5, whose tree matches this candidate:14086938663matched its published digest and contained actual result summaries and the matching six-path native receipt. All 17 native and 34 layout PNGs decoded and drew into full raster contexts.Current Swift/Actions CodeQL passed all five jobs, including both processed uploads. All 12 exact-head checks are completed successfully.
ec00fb7d45be933418430063209cb0f0704657e5has this candidate's tree. Swift code-scanning analysis2165492208and Actions analysis2165329223match that revision and pull-request merge ref, with empty API error/warning fields.level: none; zero warning/error/configuration notifications and zero unresolved AST nodes. Root independently verified the artifact/SARIF hashes and parsed the actual file.swift/redosfinding at ThreatIntelligence.swift:152 has the same location and fingerprint as the earlier candidate. Actions has zero results.Remaining validation
This PR remains draft and unmerged. The current scripted native, integrity, cleanup, geometry and required GitHub checks pass. No merge or release has been performed.
Armed-before-hold teardown, natural 180-second expiry, actual uninterruptible C-call overlap, representative physical signing/provisioning/CoreDevice/native IPA installation, coordinated VoiceOver and distribution remain separate. Offscreen sidebar capture needs a fidelity check; DVT Logging and the intermittent post-boot query remain coverage/reliability limits. Original query arguments, environment, deadline, full ownership and cleanup checks remain unchanged.