docs(spec): correct appium-service premise + pull the direction question forward#512
docs(spec): correct appium-service premise + pull the direction question forward#512goosewobbler wants to merge 8 commits into
Conversation
…uestion forward Investigation found @wdio/appium-service (v9.27) is no longer "strictly server-lifecycle": it added a worker-side SelectorPerformanceService. It still has ZERO feature overlap with the mobile-service (verified 0 hits for driver-install/device-mgmt/deeplink/logs/doctor/contexts), but the "architecturally can't grow into our space" assumption no longer holds. So the strategic risk (upstreaming could hollow out the standalone service) is real, and the DIRECTION question must be settled early: - Correct the stale "strictly server-lifecycle" premise (v9.27 has a worker). - Decouple the two deliverables: the convergence refactor (native-mobile-core base for RN/Flutter) is safe regardless; only the standalone publish is at risk. - Bring the appium-service direction conversation FORWARD (before the publish, not after ship) and gate the publish on it; keep the implementation in native-mobile-core meanwhile. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
| Filename | Overview |
|---|---|
| agent-os/specs/20260618-mobile-service-convergence/spec.md | Spec updated to correct the appium-service v9.27 description (selector-perf worker) and re-gate the upstream direction question before the standalone publish; Goal, Scope, Sequencing, and Open Questions all updated consistently — Architecture diagram and one Scope phrase still name @wdio/mobile-service unconditionally, creating minor inconsistencies with the new conditional framing. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Step 1: Setup-automation lands\nin native-mobile-core] --> B
B[Step 2: Extract MobileService base\nConverge RN + Flutter onto it\nConvergence ships EITHER WAY] --> C
C{Step 3: Settle appium-service\ndirection question with Wim}
C -->|stays narrow| D[Publish standalone\n@wdio/mobile-service]
C -->|wants it upstream| E[Skip standalone publish\nUpstream setup-automation\nto @wdio/appium-service]
D --> F[Step 4: Update add-native-service skill\nExtension target = @wdio/mobile-service]
E --> G[Step 4: Update add-native-service skill\nExtension target = @wdio/native-mobile-core]
style B fill:#d4edda,stroke:#28a745
style C fill:#fff3cd,stroke:#ffc107
style D fill:#cce5ff,stroke:#004085
style E fill:#f8d7da,stroke:#721c24
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
A[Step 1: Setup-automation lands\nin native-mobile-core] --> B
B[Step 2: Extract MobileService base\nConverge RN + Flutter onto it\nConvergence ships EITHER WAY] --> C
C{Step 3: Settle appium-service\ndirection question with Wim}
C -->|stays narrow| D[Publish standalone\n@wdio/mobile-service]
C -->|wants it upstream| E[Skip standalone publish\nUpstream setup-automation\nto @wdio/appium-service]
D --> F[Step 4: Update add-native-service skill\nExtension target = @wdio/mobile-service]
E --> G[Step 4: Update add-native-service skill\nExtension target = @wdio/native-mobile-core]
style B fill:#d4edda,stroke:#28a745
style C fill:#fff3cd,stroke:#ffc107
style D fill:#cce5ff,stroke:#004085
style E fill:#f8d7da,stroke:#721c24
Reviews (8): Last reviewed commit: "docs(spec): carry the conditional-publis..." | Re-trigger Greptile
…not a package Sharpen the 'we want it upstream' outcome: native-mobile-core stays as CODE (RN/Flutter subclass it), but the generic-native story — no framework realm, appium-service + core cover the mechanics — thins to helper patterns + config, so it likely ships as docs/examples/boilerplate contributed to the ecosystem (Wim's Mobile docs / appium-boilerplate), not a package. Turns outreach ask #1 from competing with the docs into improving them. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Standing release PR: #456 · 14 packages queued · open 208h 14m · ✅ ready to merge Release Preview — 16 packages
These changes will be added to the release PR (#456) when merged: Changelog@wdio/dioxus-bridge 1.0.0-next.3 → 1.0.0-next.4
@wdio/dioxus-service 1.0.0-next.3 → 1.0.0-next.4
wdio-dioxus-driver 1.0.0-next.3 → 1.0.0-next.4
wdio-dioxus-embedded-driver 1.0.0-next.3 → 1.0.0-next.4
@wdio/tauri-service 1.2.0 → 1.3.0
tauri-plugin-wdio-webdriver 1.2.0 → 1.3.0
@wdio/flutter-service 1.0.0-next.1 → 1.0.0-next.2
wdio_flutter N/A → 0.2.0
@wdio/electrobun-service 0.1.0 → 0.2.0
@wdio/electron-service 10.1.0 → 10.2.0
@wdio/native-cdp-bridge 1.0.0 → 1.1.0
@wdio/native-core 1.0.0 → 1.1.0
@wdio/native-mobile-core 1.0.0 → 1.1.0
@wdio/native-spy 1.1.0 → 1.2.0
@wdio/native-types 2.4.0 → 2.5.0
@wdio/native-utils 2.5.0 → 2.6.0
@wdio/react-native-service 1.0.0-next.0 → 1.0.0-next.1
After merge — predicted release
Updated automatically by ReleaseKit |
…atus) - P1: Step 4 now branches on the step-3 outcome — extend @wdio/mobile-service if published, else @wdio/native-mobile-core if the standalone publish was skipped (was unconditionally @wdio/mobile-service). - P1: drop the dangling 'see the outreach draft' ref (the draft is a local gitignored scratch, not in the repo) — replace with the inline peer-coordination framing. - P2: status line now records this PR's changes (appium-service premise + direction-question gate). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Addresses Greptile's remaining note on #512: the user stories read as if the standalone @wdio/mobile-service will exist, but Sequencing step 3 may skip the publish. Add a note that delivery (published service vs native-mobile-core + docs/boilerplate) depends on the direction call; the stories' goals hold either way. (The two P1s + P2 from the prior review were already fixed in cc90fa6.) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…eptile) The 'Out of scope' line read as excluding all appium-service changes, which contradicted the Relationship section treating upstreaming setup-automation to appium-service as a live outcome. Clarify: this spec doesn't modify appium-service; upstreaming is a possible LATER outcome of the direction question, pursued separately — not in this spec's build scope. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ptile) The prose referenced 'the outreach's ask #1', but the outreach draft is a local (gitignored) scratch file not in the repo, so a spec reader can't resolve it. Replace with the substance inline (the mobile layer lightens the boilerplate the Mobile docs teach). Same class as the earlier dangling-ref fix. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…blish (Greptile) The heading read 'settle the direction question, then publish' — implying the publish always happens — while the body describes it as conditional (skip + upstream, or publish). Reword to 'then either publish or skip it' so the heading matches the two outcomes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ope (Greptile) Match the User-Stories callout: the Goal now leads with the concrete MobileService base (built regardless) and notes the *standalone publish* is conditional on the step-3 direction outcome; the In-scope bullet does the same. Removes the last spots implying the publish always happens. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Follow-up to the mobile-service convergence spec (merged in #507). Investigation into whether shifting features upstream to
@wdio/appium-servicecould negate the mobile-service found:@wdio/appium-servicev9.27 is no longer strictly server-lifecycle — it ships a worker-sideSelectorPerformanceService(selector-perf telemetry viaoverwriteCommand). Still zero feature overlap with the mobile-service (verified: 0 hits for driver-install / device-mgmt / deeplink / logs / doctor / contexts), but the "it can't grow into our space" assumption is gone.native-mobile-corebase) is safe regardless — a library concern. Only the standalone@wdio/mobile-servicepublish is at risk: if setup-automation upstreams (and core already ships the raw mobile commands), its unique surface thins.native-mobile-coremeanwhile.🤖 Generated with Claude Code