Skip to content

test(ios): import pairing protocol model#100355

Merged
steipete merged 2 commits into
mainfrom
codex/ios-pairing-test-import
Jul 5, 2026
Merged

test(ios): import pairing protocol model#100355
steipete merged 2 commits into
mainfrom
codex/ios-pairing-test-import

Conversation

@steipete

@steipete steipete commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #100317.

What Problem This Solves

The pairing-routes change added a DeepLinksSecurityTests assertion for DevicePairSetupCodeResult, but the test target imported only OpenClawKit. That protocol model is declared in the separate OpenClawProtocol module, so swift test --package-path apps/shared/OpenClawKit fails at compile time on current main.

Why This Change Was Made

Import the module that owns the generated protocol type. This keeps the test at the correct dependency boundary without adding an app-facing alias solely for test visibility.

User Impact

No runtime behavior change. The shared Apple package test suite compiles again, unblocking iOS/macOS validation and follow-up app PRs.

Evidence

  • Before: cannot find 'DevicePairSetupCodeResult' in scope in DeepLinksSecurityTests.swift:22.
  • After: swift test --package-path apps/shared/OpenClawKit --filter DeepLinksSecurityTests — 26/26 passed.
  • git diff --check — clean.

@openclaw-barnacle openclaw-barnacle Bot added size: XS maintainer Maintainer-authored PR labels Jul 5, 2026
@clawsweeper

clawsweeper Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed July 5, 2026, 11:46 AM ET / 15:46 UTC.

Summary
This PR adds import OpenClawProtocol to DeepLinksSecurityTests.swift; the branch also carries duplicated current-main commits that make GitHub's PR file list look much broader than the actual merge result.

PR surface: Source +469, Tests +1290, Docs +23, Config 0, Other -3. Total +1779 across 46 files.

Reproducibility: yes. Current main is source-reproducible because the test instantiates DevicePairSetupCodeResult without importing the OpenClawProtocol module that declares it; I did not run Swift locally in this read-only review.

Review metrics: 1 noteworthy metric.

  • Potential merge delta: 1 file changed, 1 line added. The PR's visible file list is noisy, but the potential merge commit against current main only adds the Swift protocol-module import.

Stored data model
Persistent data-model change detected: migration/backfill/repair: docs/cli/policy.md, migration/backfill/repair: extensions/policy/src/doctor/automatic-repairs.ts, migration/backfill/repair: extensions/policy/src/doctor/register.test.ts, migration/backfill/repair: extensions/policy/src/doctor/scopes/data-auth.ts, migration/backfill/repair: extensions/policy/src/doctor/scopes/gateway.ts, migration/backfill/repair: extensions/policy/src/doctor/scopes/tools.ts, and 10 more. Confirm migration or upgrade compatibility proof before merge.

Root-cause cluster
Relationship: canonical
Canonical: #100355
Summary: This PR is the narrow follow-up fix for the Swift test compile gap left by the merged pairing-routes work.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🐚 platinum hermit
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • [P2] Refresh or confirm the branch surface before merge if maintainers want the public diff to match the one-file potential merge result.

Risk before merge

  • [P1] GitHub's PR file list still shows 46 files from duplicated current-main commits even though the potential merge result is one Swift import, so maintainers may prefer a branch refresh before landing to keep the review surface clean.

Maintainer options:

  1. Decide the mitigation before merge
    Land the focused Swift test import through maintainer review, ideally after refreshing or confirming the branch so the visible review surface matches the one-file potential merge result.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • [P2] The PR already contains the narrow fix; protected-label maintainer review and a possible branch refresh are the remaining actions, not an automated repair lane.

Maintainer decision needed

  • Question: Should maintainers land the focused potential merge result now, or ask for a branch refresh first so the public PR surface no longer shows duplicated current-main changes?
  • Rationale: The code fix is narrow and validated, but the protected maintainer label plus noisy branch surface make the land-versus-refresh call a human workflow decision rather than a ClawSweeper close or repair decision.
  • Likely owner: steipete — He authored the pairing-routes change that introduced the failing assertion and owns this follow-up branch.
  • Options:
    • Land focused merge result (recommended): Proceed if maintainers are comfortable that the potential merge commit only adds the Swift test import and current checks are enough.
    • Ask for branch refresh: Have the branch rebased or recreated so GitHub's PR diff shows only the import before final review or merge.

Security
Cleared: No concrete security or supply-chain concern remains in the potential merge result, which only adds a Swift test import.

Review details

Best possible solution:

Land the focused Swift test import through maintainer review, ideally after refreshing or confirming the branch so the visible review surface matches the one-file potential merge result.

Do we have a high-confidence way to reproduce the issue?

Yes. Current main is source-reproducible because the test instantiates DevicePairSetupCodeResult without importing the OpenClawProtocol module that declares it; I did not run Swift locally in this read-only review.

Is this the best way to solve the issue?

Yes. Importing the owner module in the test is the narrowest maintainable fix; adding an OpenClawKit alias or moving the generated model would create unnecessary API surface for test visibility.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against a308e3b83429.

Label changes

Label justifications:

  • P2: The PR fixes a real Apple package test compile regression with limited blast radius and no runtime behavior change.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🐚 platinum hermit and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (live_output): The PR body includes before/after terminal evidence for the Swift test target, and current head checks include successful Real behavior proof plus Apple build/test lanes.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body includes before/after terminal evidence for the Swift test target, and current head checks include successful Real behavior proof plus Apple build/test lanes.
Evidence reviewed

PR surface:

Source +469, Tests +1290, Docs +23, Config 0, Other -3. Total +1779 across 46 files.

View PR surface stats
Area Files Added Removed Net
Source 23 587 118 +469
Tests 17 1298 8 +1290
Docs 2 27 4 +23
Config 1 1 1 0
Generated 0 0 0 0
Other 3 6 9 -3
Total 46 1919 140 +1779

What I checked:

Likely related people:

  • steipete: Authored and merged the linked pairing-routes PR that added the setup-result assertion and generated protocol-model field, and authored this focused import follow-up. (role: recent pairing test contributor and likely follow-up owner; confidence: high; commits: 862de9f1a1c2, c30675bf6165, 59506ee94468; files: apps/shared/OpenClawKit/Tests/OpenClawKitTests/DeepLinksSecurityTests.swift, apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.
Review history (1 earlier review cycle)
  • reviewed 2026-07-05T15:07:27.854Z sha c30675b :: needs maintainer review before merge. :: none

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. P2 Normal backlog priority with limited blast radius. labels Jul 5, 2026
@openclaw-barnacle openclaw-barnacle Bot added docs Improvements or additions to documentation app: web-ui App: web-ui gateway Gateway runtime scripts Repository scripts agents Agent runtime and tooling extensions: qa-lab extensions: policy size: XL and removed size: XS labels Jul 5, 2026
@steipete
steipete merged commit 535ad8a into main Jul 5, 2026
121 of 128 checks passed
@steipete

steipete commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Merged via squash.

@steipete
steipete deleted the codex/ios-pairing-test-import branch July 5, 2026 15:49

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 59506ee944

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/daemon/schtasks.ts
}
}
return !(await hasLaunchEvidence());
return true;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P2 Badge Re-check launch evidence at timeout

When the Scheduled Task process or Gateway listener becomes observable during the final poll interval, this unconditional true skips the last hasLaunchEvidence() probe and starts the fallback anyway. That can spawn a duplicate Gateway even though the accepted task actually launched; the old post-loop evidence check avoided this race, so the timeout path should still return based on a fresh evidence check.

Useful? React with 👍 / 👎.

github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jul 6, 2026
* test(ios): import pairing protocol model

* test(ios): import pairing protocol model
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling app: web-ui App: web-ui docs Improvements or additions to documentation extensions: policy extensions: qa-lab gateway Gateway runtime maintainer Maintainer-authored PR P2 Normal backlog priority with limited blast radius. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. scripts Repository scripts size: XL status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant