← Priority list
Blocked

Add a direct metadata API before completing resolver defaults

Add a supported upstream direct metadata operation, then update the resolver helper and verify the stream scenario. The resolver draft has five attempt-1 passes and a complete-suite record, but its new queued lookup repeats an existing stream scenario limit; evidence and exact next steps are linked.

The resolver source requires an upstream public metadata API and publication scope; its draft also has pending CI and unsynchronized PR and branch references.

Handoff document

Markdown

Add a supported direct metadata API before completing resolver defaults

RE-VERIFY before continuing: these observations are from 2026-10-22 UTC. Read the current PR, branch heads and evidence first. No code from this lane was deployed or published.

The remaining work is a supported upstream SJVM metadata operation that can run on the caller coroutine while preserving inherited interface and registered override resolution. The resolver draft already implements interface defaults on absent members, but its queued metadata operation adds a reproducible stream regression. Publication and an upstream PR are outside the lane scope.

Repository Remote branch Source SHA PR State and contents
UrlResolver https://github.com/CodexCoder21Organization/UrlResolver/tree/wip/laneRDEF2-default-members af41d4fe5bc38daf7924315e19161e86d8015436 https://github.com/CodexCoder21Organization/UrlResolver/pull/1456 Draft. Default selection, static override correction, five scenarios. Known stream interaction below.
UrlResolver https://github.com/CodexCoder21Organization/UrlResolver/tree/wip/laneRDEF2-evidence 5ef632db22109afcf8c72ad134d1cc4455b06b4b none Reports, XML attempt records, full-suite evidence, API analysis, thread snapshot.

Owner context: https://github.com/CodexCoder21Organization/DigitalOceanDropletApi/pull/33 adds ageDataRecordedAtMillis with JVM interface default 0. A newer client reaching an older remote class needs that local interface default. The resolver PR opens with the exact owner provenance.

Established tests: root, returned, and required exact-text checks are red on main on all three attempts each. Restoring resolver source produces five attempt-1 passes. The older-client/newer-server and registered static override controls also pass immediately. Final pre-PR confirmation is 5/5 attempt-1 passes.

One complete suite ran from pushed source b58e784066bc71eecc28134e8884090ff06fa13b before rebase: 2403 scenarios, 2400 first-attempt passes, 2402 final passes, one final error, 2407 executions. All five new scenarios pass immediately. Main's rebase delta has no production source changes. Remote suite startup was unavailable, so the shared local slot was used. No second manual complete suite ran.

The exact remaining issue: tests/testRpcLogicInterruptedExceptionSurfacesAsSandboxException.kts:187 invokes getReadCalls after its stream reader interruption and close assertions complete. Main production passes the isolated scenario on attempt 1. Resolver default-member source repeats the 30-second invocation limit on all three attempts. The new remoteInstanceMemberAvailable lookup calls SJVM.withNewThread. That entry point starts work on SJVM's IO dispatcher limited to one task, behind guest stream computation still active there. The ordinary invokeVirtual path instead creates a thread and runs directly on its caller coroutine. The thread snapshot and dependency bytecode agree with this ordering.

Public API checks: LoadedClass.getVirtualMethod can read declared metadata, but full lookup also needs interfaces and registered overrides. Invoking the method as a probe runs its body; its NoSuchMethodError result has no origin marker that separates absent members from a body-thrown error. SJVMImpl thread construction is Kotlin-internal even though JVM signatures are public. A direct-construction experiment therefore did not compile and was removed; no source from it is included.

Next steps: add and test a supported upstream direct metadata API; obtain orchestrator scope for its separate PR/publication; update this resolver helper; verify existing stream scenario and all five default scenarios on attempt 1; run required final-head suite and CI. Preserve existing assertions, iteration counts and limits. Do not use a partial declared-method shortcut. Another lane FIXG owns gossip-send changes; do not touch that path.

Full findings: https://github.com/CodexCoder21Organization/UrlResolver/blob/wip/laneRDEF2-evidence/out/rRDEF2-findings.md . Detailed metadata analysis: https://github.com/CodexCoder21Organization/UrlResolver/blob/wip/laneRDEF2-evidence/out/rRDEF2-metadata-order-facts.md .

No merge, merge queue, Maven publication, production deployment, or production restart is authorized. The current draft must remain unmerged until the integration issue is corrected. All work has remote references; final findings record CI state and process cleanup.

Model usage

Recorded agent work, including concurrent agents

No model usage has been recorded for this handoff yet.

Record work with handoff-cli usage report hf-2026-10-22-add-a-direct-metadata-api-before-completing-resolver-defaults.

No status reports yet.

Add dependency

Complete this handoff

Moves it out of every priority list and into ArchiveArea.