Skip to content

feat(remote): add HarmonyOS proxy lease backend - #2266

Open
bytemain wants to merge 9 commits into
callstack:mainfrom
bytemain:ark/harmonyos-lease-backend
Open

feat(remote): add HarmonyOS proxy lease backend#2266
bytemain wants to merge 9 commits into
callstack:mainfrom
bytemain:ark/harmonyos-lease-backend

Conversation

@bytemain

@bytemain bytemain commented Sep 3, 2026

Copy link
Copy Markdown

Summary

  • add harmonyos-instance to the shared lease backend contract
  • resolve HarmonyOS proxy devices to that backend for allocation/heartbeat/close
  • allow HarmonyOS in session runtime hints and explicit lease requirement errors

Motivation

The proxy inventory already exposes HarmonyOS devices and the local host runtime can operate them, but 0.20.10 rejects remote open before lease admission because no HarmonyOS backend exists. This keeps provider lifecycle fail-closed while enabling the existing generic lease path to carry HarmonyOS.

Validation

  • corepack pnpm typecheck
  • corepack pnpm test --run src/__tests__/remote-connection.test.ts (50 passed)
  • git diff --check

This is intentionally a design/minimal contract PR. Physical OHOS devices are out of scope; end-to-end daemon/provider implementation and lease tests are required before release.

Copilot AI lite review requested due to automatic review settings September 3, 2026 10:21

Copilot AI 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.

🟡 Changes recommended

The new harmonyos-instance backend is added to the contract but still needs follow-up updates to hardcoded CLI/remote-config validation lists and related platform compatibility/test coverage to avoid runtime/UX breakage.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This PR extends the remote connection/lease contract surface to recognize HarmonyOS devices by introducing a new harmonyos-instance lease backend and wiring HarmonyOS proxy devices + CLI lease-backend resolution to use it.

Changes:

  • Extend shared contracts to include SessionRuntimeHints.platform: 'harmonyos' and LeaseBackend: 'harmonyos-instance'.
  • Resolve --platform harmonyos and HarmonyOS proxy devices to the harmonyos-instance lease backend for allocation/heartbeat/close flows.
  • Update the CLI error text for cases where a lease backend must be explicitly determined.
File summaries
File Description
src/cli/commands/connection-runtime.ts Adds HarmonyOS → harmonyos-instance backend resolution for flags and proxy devices; updates related error messaging.
packages/kernel/src/contracts.ts Expands the shared contract unions for session runtime hints and lease backend backends to include HarmonyOS.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 3
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines 7 to 9
export type SessionRuntimeHints = {
platform?: 'ios' | 'android';
platform?: 'ios' | 'android' | 'harmonyos';
metroHost?: string;
const DAEMON_LOCK_POLICIES = ['reject', 'strip'] as const;
export type DaemonLockPolicy = (typeof DAEMON_LOCK_POLICIES)[number];
const LEASE_BACKENDS = ['ios-simulator', 'ios-instance', 'android-instance'] as const;
const LEASE_BACKENDS = ['ios-simulator', 'ios-instance', 'android-instance', 'harmonyos-instance'] as const;
if (flags.leaseBackend) return flags.leaseBackend;
if (flags.platform === 'android') return 'android-instance';
if (flags.platform === 'ios') return 'ios-instance';
if (flags.platform === 'harmonyos') return 'harmonyos-instance';
@claude

claude Bot commented Sep 3, 2026

Copy link
Copy Markdown

Thanks for taking this on — HarmonyOS support is a welcome addition and the overall shape of the change looks right. A few things need to land before it works end to end, mostly allowlists that still need the new backend added.

Blocking

  1. src/daemon/lease-registry-scope.ts:133normalizeLeaseBackend still accepts only ios-simulator | ios-instance | android-instance and throws INVALID_ARGS: Unsupported lease backend: harmonyos-instance. It gates allocate, admission, and the heartbeat/close scope match (and src/daemon/human-control-contract.ts:58), so --platform harmonyos currently resolves a backend the daemon rejects — remote open still fails, just with a different error.
  2. src/commands/cli-grammar/flag-definitions-connection.ts:108 and src/remote/remote-config-schema.ts:64 keep the three-value enum, so --lease-backend harmonyos-instance is rejected by the parser and by the config schema, even though the new message at src/cli/commands/connection-runtime.ts:701 advertises harmonyos.

Worth a look

  1. No provider can currently serve the backend — packages/provider-limrun/src/device.ts:10 returns undefined for it, and src/cli/connection/limrun-profile.ts:55 is typed to the two existing instance backends. It fails closed, so this isn't urgent, but an explicit refusal would be easier to debug than a silent undefined.
  2. src/cli/commands/remote-bridge.ts:3 omits harmonyos-instance, so the Metro bridge silently no-ops for HarmonyOS. Entirely reasonable as a first step — could you confirm that's intentional, so it doesn't read as an oversight later?

Docs and tests

  • CHANGELOG.md needs an entry under ## Unreleased with the (#2266) reference — a new lease backend, a newly accepted --platform value, and a changed error string are all user-visible.
  • The enumValues and usageLabel in flag-definitions-connection.ts:108 are the documented CLI surface that docs/agents/cli-flags.md reflects, so updating them covers the docs side. website/docs/docs/configuration.md doesn't enumerate backends, so it needs no change.
  • Tests are worth adding: src/daemon/__tests__/lease-registry.test.ts for the normalizer, and src/__tests__/remote-connection.test.ts for resolveRequestedLeaseBackend / leaseBackendForDevice. Right now reverting the diff wouldn't break any test.

CI hasn't run on this yet, so it's worth a rerun once the above is pushed. Happy to help with any of it if useful — thanks again for the contribution!


Generated by Claude Code

Copilot AI review requested due to automatic review settings September 3, 2026 12:15

Copilot AI 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.

🟡 Changes recommended

The new HarmonyOS backend/runtime literals are added to the shared contract but existing daemon-side validation/allowlists still reject them, which will break real lease admission and runtime-hint usage.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 8/8 changed files
  • Comments generated: 2
  • Review effort level: Lite

Comment on lines 7 to 9
export type SessionRuntimeHints = {
platform?: 'ios' | 'android';
platform?: 'ios' | 'android' | 'harmonyos';
metroHost?: string;
Comment on lines 688 to 693
export function resolveRequestedLeaseBackend(flags: CliFlags): LeaseBackend | undefined {
if (flags.leaseBackend) return flags.leaseBackend;
if (flags.platform === 'android') return 'android-instance';
if (flags.platform === 'ios') return 'ios-instance';
if (flags.platform === 'harmonyos') return 'harmonyos-instance';
return undefined;
Copilot AI review requested due to automatic review settings September 3, 2026 12:20
@bytemain

bytemain commented Sep 3, 2026

Copy link
Copy Markdown
Author

Addressed the blocking review items in ebe79ebd:

  • normalizeLeaseBackend now accepts harmonyos-instance, so daemon allocation/admission/heartbeat/close scopes no longer reject the backend.
  • CLI flag grammar and remote-config schema now accept/document harmonyos-instance.
  • Runtime compatibility checks no longer treat HarmonyOS as an unknown platform; persisted Harmony runtime hints are matched by platform.
  • Added remote connection coverage for --platform harmonyosharmonyos-instance and daemon normalizer coverage.
  • Added Unreleased changelog entry (feat(remote): add HarmonyOS proxy lease backend #2266).

Validation: corepack pnpm typecheck; unit tests for remote-connection and lease-registry (76 passed); git diff --check.

The provider daemon still needs to expose an actual HarmonyOS lease implementation before this can be considered end-to-end; this PR keeps unsupported providers fail-closed and documents that scope.

Copilot AI 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.

🔵 Needs a closer look

The updated runtime/platform compatibility check introduces a behavior regression that can drop runtime hints for non-leaf platform selectors (e.g., apple) and should be corrected before approval.

Review details

Suppressed comments (2)

Previously missed (2) — in code that hasn't changed since the last review.

src/cli/commands/connection-runtime.ts:740

  • isRuntimeCompatibleWithPlatform now enforces strict equality for any --platform selector. This is a behavior change from the prior logic (which only enforced for ios/android) and can cause runtime hints (e.g., metroHost/metroPort) to be dropped when callers use non-leaf selectors like apple, vega, etc. If the intent is only to extend the strict check to HarmonyOS, keep the previous guard and add harmonyos to it.
    src/tests/remote-connection.test.ts:51
  • This test uses as never to bypass the CliFlags type, which can hide real type errors. Other tests in this file pass a minimal CliFlags object instead; do the same here so the compiler keeps protecting the call site.
  • Files reviewed: 8/8 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings September 3, 2026 12:25
@bytemain

bytemain commented Sep 3, 2026

Copy link
Copy Markdown
Author

Follow-up pushed in af89c1fcd (fork branch bytemain:ark/harmonyos-lease-backend):

  • daemon normalizeLeaseBackend accepts harmonyos-instance
  • CLI flag grammar and remote-config schema allow it
  • Harmony runtime hints are accepted by daemonRuntimeSchema; compatibility checks now compare any declared platform, including HarmonyOS
  • added resolver/normalizer tests and Unreleased changelog entry

Validation: corepack pnpm typecheck; 76 unit tests passed (remote-connection + lease-registry); git diff --check.

The PR remains intentionally contract-level: actual proxy daemon/provider Harmony lease implementation and end-to-end open/heartbeat/close still require maintainer design and follow-up. Until then, proxy OHOS remains unsupported at runtime.

Copilot AI 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.

🔵 Needs a closer look

The contract/schema now accepts HarmonyOS runtime hints, but daemon-side runtime-hint normalization still only supports iOS/Android, so HarmonyOS runtime hints will fail at runtime.

Review details

Suppressed comments (1)

packages/kernel/src/contracts.ts:13

  • SessionRuntimeHints.platform and daemonRuntimeSchema now accept "harmonyos", but the daemon-side runtime hint normalization still only recognizes ios/android (e.g. src/daemon/session-runtime.ts rejects any other value and toRuntimePlatform maps only ios/android). This makes HarmonyOS runtime hints fail at runtime despite the updated contract/schema.
export type SessionRuntimeHints = {
  platform?: 'ios' | 'android' | 'harmonyos';
  metroHost?: string;
  metroPort?: number;
  bundleUrl?: string;
  launchUrl?: string;
};
  • Files reviewed: 8/8 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

@thymikee

thymikee commented Sep 3, 2026

Copy link
Copy Markdown
Member

BLOCKED at af89c1fcdd55206651957b0eda5a7a33edcee005.

  1. Daemon session-runtime normalization and toRuntimePlatform still only accept/map iOS and Android after the wire schema admits harmonyos; add real-route tests.

  2. isRuntimeCompatibleWithPlatform now drops existing non-leaf apple selectors. Restore strict comparison only for leaf ios/android/harmonyos, and add an apple regression.

  3. Linked Add remote proxy lease backend for HarmonyOS (harmonyos-instance) #2265 acceptance is not implemented: provider lifecycle/backend mapping remains iOS/Android-only while the Changelog claims full allocation/heartbeat/close. Either implement and prove the full proxy route, or rescope as a private prerequisite and remove the public claim.

  4. No exact-head checks have run and the PR is currently DIRTY.

Signed-off-by: Ark <artin@cat.ms>
Signed-off-by: Ark <artin@cat.ms>
Signed-off-by: Ark <artin@cat.ms>
@bytemain
bytemain force-pushed the ark/harmonyos-lease-backend branch from af89c1f to 1533c52 Compare September 3, 2026 12:35
Copilot AI review requested due to automatic review settings September 3, 2026 12:35
@bytemain

bytemain commented Sep 3, 2026

Copy link
Copy Markdown
Author

Rebased onto current upstream main 4e9820e46 after merge conflict; new PR head 1533c527e419d4810f3ddb79e8cb35920505d5ab (tree 21d6f5dba4476ce5062e3a768f72d1208a4a2715). Re-ran typecheck, 76 targeted unit tests, and diff-check successfully. Please re-review this fresh head.

Copilot AI 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.

🟡 Changes recommended

The PR introduces a runtime-hints contract mismatch and a likely compatibility regression (plus missing wire-compat ledger updates) that can break expected behavior and/or CI.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details

Suppressed comments (2)

src/cli/commands/connection-runtime.ts:741

  • isRuntimeCompatibleWithPlatform now compares runtime.platform ("ios"|"android"|"harmonyos") directly to CliFlags['platform'] (PlatformSelector, including values like "apple", "macos", "vega", etc). This is a behavior change from the previous guard and will drop stored runtime hints when callers use selectors like --platform apple, even though that alias is commonly accepted elsewhere.
  if (!runtime.platform || !platform) {
    return true;
  }
  return runtime.platform === platform;
}

packages/kernel/src/contracts.ts:275

  • This expands SessionRuntimeHints.platform / daemonRuntimeSchema to accept "harmonyos", but the daemon-side runtime hint normalization still only supports "ios" and "android" (e.g. src/daemon/session-runtime.ts rejects anything else via normalizeRuntimePlatformInput / toRuntimePlatform). As-is, the contract says HarmonyOS is allowed while the daemon will still throw INVALID_ARGS, so HarmonyOS runtime hints are not actually supported yet.
export const daemonRuntimeSchema = schema<SessionRuntimeHints>((input, path) => {
  const record = expectObject(input, path);
  return {
    platform: optionalEnum(record, 'platform', ['ios', 'android', 'harmonyos'] as const, path),
    metroHost: optionalString(record, 'metroHost', path),
  • Files reviewed: 8/8 changed files
  • Comments generated: 2
  • Review effort level: Lite

Comment on lines +47 to 48
const LEASE_BACKENDS = ['ios-simulator', 'ios-instance', 'android-instance', 'harmonyos-instance'] as const;
export type LeaseBackend = (typeof LEASE_BACKENDS)[number];
Comment thread CHANGELOG.md Outdated
Comment on lines 5 to 8
- Added the `harmonyos-instance` remote lease backend so HarmonyOS proxy devices can participate in
the same explicit allocation, heartbeat, and close lifecycle as other remote instances (#2266).

- Fixed: `settings airplane on|off` now takes an Android device offline. It is applied through
Signed-off-by: Ark <artin@cat.ms>
Copilot AI review requested due to automatic review settings September 3, 2026 13:02
@bytemain

bytemain commented Sep 3, 2026

Copy link
Copy Markdown
Author

Addressed the maintainer review in c496a27c3 (rebased branch head follows):

  • daemon session runtime normalization and toRuntimePlatform now accept/map HarmonyOS.
  • compatibility remains strict only for leaf ios/android/harmonyos; non-leaf selectors such as apple retain prior behavior.
  • changelog wording now scopes this as a prerequisite contract, not full allocation/heartbeat/close support.
  • targeted contract tests remain green.

Validation on the rebased branch: corepack pnpm typecheck; 76 targeted unit tests passed; git diff --check. End-to-end provider lifecycle is intentionally not claimed in this PR.

Copilot AI 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.

🟡 Changes recommended

It overwrites an existing Unreleased changelog entry and introduces a test that should be colocated with the existing lease-registry-scope test module for consistency.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details

Suppressed comments (1)

CHANGELOG.md:7

  • This change replaces (removes) the existing Unreleased changelog entry about strict wait absent <selector> polling (#2236). If that feature is still unreleased, it should remain in the Unreleased section and this HarmonyOS entry should be added as an additional bullet rather than overwriting it.
- Added the `harmonyos-instance` lease contract and CLI/runtime plumbing as a prerequisite for
  HarmonyOS proxy support; provider/daemon allocation remains gated until its end-to-end lifecycle
  is implemented and validated (#2266).
  • Files reviewed: 9/9 changed files
  • Comments generated: 2
  • Review effort level: Lite

Comment on lines +50 to +52
test('HarmonyOS platform resolves to its proxy lease backend', () => {
assert.equal(resolveRequestedLeaseBackend({ platform: 'harmonyos' } as never), 'harmonyos-instance');
});
Comment on lines +13 to +15
test('normalizeLeaseBackend accepts HarmonyOS instance backend', () => {
assert.equal(normalizeLeaseBackend('harmonyos-instance'), 'harmonyos-instance');
});
Signed-off-by: Ark <artin@cat.ms>
Copilot AI review requested due to automatic review settings September 3, 2026 13:14
@bytemain

bytemain commented Sep 3, 2026

Copy link
Copy Markdown
Author

Follow-up 1533c527 -> c496a27 -> d1f9e52 adds wire-compat ledger acknowledgements for the additive HarmonyOS backend/runtime declarations. pnpm check:daemon-wire-compat now passes against v0.20.10 (protocol unchanged; additive entries documented).

Copilot AI 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.

🔵 Needs a closer look

It currently drops an existing Unreleased changelog entry and introduces test issues (misplaced test and a type-escaping as never) that should be corrected before approval.

Review details

Suppressed comments (3)

CHANGELOG.md:8

  • This edit removes the existing Unreleased changelog entry about strict wait absent polling (#2236). Unless that item was intentionally dropped elsewhere, it should be kept and the HarmonyOS lease note added alongside it to avoid losing release notes.
- Added the `harmonyos-instance` lease contract and CLI/runtime plumbing as a prerequisite for
  HarmonyOS proxy support; provider/daemon allocation remains gated until its end-to-end lifecycle
  is implemented and validated (#2266).

src/daemon/tests/lease-registry.test.ts:15

  • This new test exercises normalizeLeaseBackend from lease-registry-scope.ts, but it’s being added to lease-registry.test.ts. There is already a dedicated lease-registry-scope.test.ts; moving this test there keeps tests aligned with the module under test and avoids mixing scope-validation coverage into the registry suite.
test('normalizeLeaseBackend accepts HarmonyOS instance backend', () => {
  assert.equal(normalizeLeaseBackend('harmonyos-instance'), 'harmonyos-instance');
});

src/tests/remote-connection.test.ts:52

  • Using as never here defeats type-checking and can mask future signature changes to resolveRequestedLeaseBackend. Prefer constructing a real CliFlags value via the existing forceConnectFlags helper (already imported in this file).
test('HarmonyOS platform resolves to its proxy lease backend', () => {
  assert.equal(resolveRequestedLeaseBackend({ platform: 'harmonyos' } as never), 'harmonyos-instance');
});
  • Files reviewed: 10/10 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Signed-off-by: Ark <artin@cat.ms>
@bytemain

bytemain commented Sep 3, 2026

Copy link
Copy Markdown
Author

Follow-up pushed (HEAD now includes the requested corrections): restored the existing #2236 changelog entry alongside #2266, moved the normalizer test into lease-registry-scope.test.ts, and replaced the as never Harmony mapping test with a real CliFlags fixture. Also retained runtime normalization/compatibility fixes and wire-compat ledger acknowledgements. Validation: typecheck, 84 targeted unit tests, wire-compat check, diff-check all pass.

Copilot AI review requested due to automatic review settings September 3, 2026 13:46

Copilot AI 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.

🟡 Changes recommended

A runtime-hints error message in src/daemon/session-runtime.ts still states iOS/Android-only support, which is now misleading after adding HarmonyOS to accepted runtime-hint platforms.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 10/10 changed files
  • Comments generated: 1
  • Review effort level: Lite

Comment on lines 88 to 93
if (value === undefined) return platform;
if (value !== 'ios' && value !== 'android') {
if (value !== 'ios' && value !== 'android' && value !== 'harmonyos') {
throw new AppError(
'INVALID_ARGS',
`Invalid open runtime platform: ${String(value)}. Use "ios" or "android".`,
`Invalid open runtime platform: ${String(value)}. Use "ios", "android", or "harmonyos".`,
);
Signed-off-by: Ark <artin@cat.ms>
Copilot AI review requested due to automatic review settings September 3, 2026 13:53
@bytemain

bytemain commented Sep 3, 2026

Copy link
Copy Markdown
Author

Addressed latest Copilot note in 68c21a069: updated the remaining session-runtime error text to include HarmonyOS. Typecheck and targeted session-runtime/remote-connection tests pass (57), diff-check clean.

@bytemain

bytemain commented Sep 3, 2026

Copy link
Copy Markdown
Author

Correction: PR head is now 68c21a069e235b2f0333b709eb6b37a14a9becec (latest one-line error-text fix), not 6c537091. The 3 requested review fixes are included in history, plus runtime normalization and wire ledger. Awaiting a fresh maintainer/Copilot review on this current head.

Copilot AI 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.

🟢 Approval recommended

The change is strictly additive across the shared contract and validation layers, and is backed by focused unit tests plus wire-compat ledger updates.

Review details
  • Files reviewed: 10/10 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

@thymikee

thymikee commented Sep 3, 2026

Copy link
Copy Markdown
Member

BLOCKED at exact head 68c21a0. The earlier contract/surface findings are resolved, but this head has zero GitHub check runs, so there is no exact-head CI evidence. The linked #2265 acceptance path is also still unproven: please record a HarmonyOS proxy inventory → open → snapshot/input/logs → close run with lease identity and artifact provenance. Add focused planted-red route coverage for daemon runtime-schema acceptance, runtime normalization/typing, leaf-only HarmonyOS compatibility while preserving non-leaf apple, and proxy inventory → leaseBackendForDevice → allocation/materialization. The two new unit tests do not exercise those production routes.

@thymikee

thymikee commented Sep 3, 2026

Copy link
Copy Markdown
Member

Still BLOCKED at exact head 68c21a0. The branch is now conflicting with main and still has no GitHub checks. The earlier production-route evidence gap remains: resolve the conflict, cover runtime-schema admission through provider inventory, Harmony lease allocation/materialization, and proxy open/snapshot/input/logs/close with preserved identity/provenance, include planted-red/live evidence, then run exact-head CI.

@thymikee

thymikee commented Sep 4, 2026

Copy link
Copy Markdown
Member

Sentinel recheck at exact head 68c21a069e235b2f0333b709eb6b37a14a9becec: still BLOCKED. In addition to the existing conflict/no-CI and missing end-to-end #2265 route evidence:

  1. P1 — the public Node client drops valid HarmonyOS runtime hints. normalizeRuntimeHints preserves only ios/android, so an open response with runtime.platform: harmonyos reaches clients as undefined. Add HarmonyOS and a response-normalization regression.

  2. P1 — HarmonyOS runtime binding cannot round-trip through .ad scripts. appendRuntimeHintFlags emits only iOS/Android, and the parser consumes any --platform token but records only iOS/Android. Widen the typed helpers and add write/parse round trips for runtime set and open.

  3. P3 — runtime-set guidance still says only iOS/Android are supported after admission was widened.

Resolve the branch conflict, cover the real proxy inventory → backend → allocation/materialization path, record required live lifecycle evidence, and run exact-head CI. Do not apply ready-for-human.

@thymikee

thymikee commented Sep 4, 2026

Copy link
Copy Markdown
Member

Re-review at exact head 68c21a069e235b2f0333b709eb6b37a14a9becec: still blocked. The branch conflicts with current main (including the Unreleased changelog), has no exact-head checks, and still lacks #2265 end-to-end proxy inventory -> lease backend -> allocation/materialization -> lifecycle evidence. Confirmed code gaps also remain: public Node client normalization drops runtime.platform: harmonyos, .ad serialization/parsing drops the HarmonyOS runtime platform, and session runtime guidance still only names iOS/Android. Resolve at the owning shared runtime-platform boundary, then rebase and rerun exact-head evidence.

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.

3 participants