fix: repair botched forward-port (compile + runner-host dep)#133
Merged
Conversation
The forward-port main->develop (#130) left greentic-setup non-compiling on develop; the corrupt Cargo.lock (fixed in #132) masked it in CI. Three classes of damage from the conflict resolution: - Cargo.toml: the greentic-runner-host dependency was dropped even though executors.rs still uses it (invoke_wasm_registration_component + the WASM registration path, also reached via oauth_device.rs). Restore it on the dev-range pin. - engine/executors.rs: the BTreeMap + std::fs::File imports were dropped (used by SetupRegistrationSecrets + pack reading), and four execute_apply_pack_setup call sites passed an owned String where &str is expected. Restore the imports and borrow provider_id (matches main). - cli_commands/setup.rs: the wait_for_pending_oauth_callbacks / execute_pending_oauth_device_actions definitions were dropped while their call sites + imports were forward-ported. Restore both fns (verbatim from main). Source fixes match main's compiling code; dependency graph resolves cleanly against the wasmtime-45 train (interfaces#152 + flow#225 + pack#165 + runner#403). Cargo.lock not bumped: greentic-runner-host@45 isn't published yet (tail of the wasmtime-45 train). The lock + runner-host entry self-heal via the nightly cargo-update once runner publishes. CI expected red until then.
The forward-port (#130) also dropped `use std::io::Read;`, needed by the ZipFile::read_to_string call in the registration-component reader. This was masked until the greentic-runner-host dependency resolved (its absence stopped type-checking that code path). Surfaced by a full compile against the wasmtime-45 train; matches main (executors.rs:7).
Regenerate Cargo.lock now the full wasmtime 43->45 train has published:
greentic-flow -> 1.1.0-dev.27001972969
greentic-interfaces -> 1.1.0-dev.26993916101
greentic-pack-lib -> 1.1.0-dev.27003773775
greentic-runner-host -> 1.1.0-dev.27007625967 (rustls crypto-provider fix)
greentic-types -> 1.1.0-dev.27002562828 (has attr_keys + provider_id;
runner-host compiles clean against it)
wasmtime family -> 45.0.0 (no 43/45 split)
Also clears the stale greentic-types 0.5.2 duplicate (old greentic-secrets
bumped to .26677358416, now on types 1.1.0-dev).
Verified: cargo check --workspace --locked + clippy --all-targets
--all-features --locked -D warnings clean; 359/363 lib tests pass (the 4
failures are pre-existing forward-port debt unrelated to deps — see PR).
The 2026-06-01 main->develop forward-port re-landed 4 main-era execute_apply_pack_setup tests that drive a provider whose pack ships no classifiable setup metadata, then assert registration outputs are written as plaintext into setup-answers.json. B12a (#119) deliberately fails closed in that case and routes registration outputs to the dev secrets store, so the merged tests panicked (same class as #124, which reconciled one such test). This is independent of the wasmtime-45 dep bump. Reconcile, preserving each test's unique coverage: - All 4 packs now declare a (non-secret) question so pack_to_form_spec yields a form spec -> B12a classifies (empty secret set) and proceeds instead of failing closed. - hydrates_oauth_install_url_from_answers: add a classifying pack; the install action stays answer-provided (the behavior under test). - runs_pack_declared_registration_before_oauth_hydration: keep the hydrated install-URL assertion (proves registration ran before hydration); drop the stale setup-answers.json secret-output asserts (B12a redaction is covered by engine::executors unit tests). - uses_bundle_name_for_registration_app_name_template: redirect the app-name assertions to the dev secrets store, where B12a now persists registration outputs (env via the A4b dev->local alias). - registration_passes_original_input_field_names: classifying-question fix only; its install-URL assertion already holds. Verified: cargo test --all-features --locked (363 lib + integration, all green) + clippy --all-targets --all-features --locked -D warnings + fmt.
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.
Tail of the wasmtime 43→45 migration train, and the fix for the original nightly dev-publish failure.
Background
The nightly dev-publish failed on greentic-setup. Two layers:
Cargo.lock(orphanedindexmapfragment from the chore: forward-port main → develop (conflicts) #130 forward-port conflict) — fixed + merged in Fix corrupted Cargo.lock breaking nightly dev-publish (forward-port conflict) #132. That only unmasked the real breakage:Fixes (all match
main's compiling code)Cargo.toml— restore the droppedgreentic-runner-hostdependency (still used byexecutors.rs/oauth_device.rs).engine/executors.rs— restore dropped importsBTreeMap,std::fs::File,std::io::Read; borrowprovider_idat 4execute_apply_pack_setupcall sites (ownedString→&str).cli_commands/setup.rs— restore the droppedwait_for_pending_oauth_callbacks/execute_pending_oauth_device_actionsdefinitions (verbatim from main).Verification ✅
Built end-to-end against the wasmtime-45 train (local path-patched
greentic-flow/greentic-pack-lib/greentic-runner-hoston 45):cargo checkandcargo clippy --all-targetsboth clean. wasmtime unified on 45 (0 refs to 43). The full compile is what surfaced theio::Readdrop (it was masked whilegreentic-runner-hostwas unresolvable).Merge ordering (tail of the tier train)
Cargo.lockintentionally not bumped:greentic-runner-host@45 isn't published yet; the lock + new dep entry self-heal via the nightlycargo updateonce runner lands. CI expected red until the train publishes.greentic-typeshas a non-monotonic dev publish —1.1.0-dev.26731975668lackstelemetry::attr_keysthat.26640937120has. If CI resolves the former,greentic-runner-hostfails to compile (attr_keys,ProviderDecl.provider_id). Affects greentic-runner#403 too. Not caused by this PR; flagged for the train.