Unblock the Rust Feature-Gate Smoke lane (embedding host seam in tests + tinymemory-core kernel-floor limit) - #5517
Conversation
migrate_openclaw_apply_imports_markdown_entries_into_target_workspace and migrate_hermes_apply_imports_markdown_entries exercise the apply path, which does real memory work and requires the embedding host seam. In the default build another test installs the process-global host first, so these passed by accident of test ordering; under --no-default-features (the Rust Feature-Gate Smoke lane) those tests are gated out, so the global is never installed and both panic with "no EmbeddingHost installed". Make the two tests self-sufficient by calling the existing idempotent host_impls::install_for_tests() at their start — the same helper ~10 tests in tools/ops_tests.rs already use. Verified: both pass under cargo test --no-default-features --lib.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe migration tests install the test embedding host before applying OpenClaw and Hermes migrations. The dependency-floor history records the ChangesMigration test setup
Dependency floor history
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
Suggested labels: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
tinysweeper found nothing blocking. Approving.
$0.0064 · 8,904 in / 1,029 out · 4,509 cached (51%) · z-ai/glm-5.2
critique: $0.0018 · 2,015 in / 515 out · 1,463 cached (73%) · z-ai/glm-5.2
security: $0.0009 · 1,994 in / 116 out · 1,460 cached (73%) · z-ai/glm-5.2
tests: $0.0012 · 1,909 in / 295 out · 1,522 cached (80%) · z-ai/glm-5.2
description: $0.0024 · 2,986 in / 103 out · 64 cached (2%) · z-ai/glm-5.2
The Rust Feature-Gate Smoke lane also runs the kernel-floor ratchet, which regressed on main: the flows profile resolves 307 packages / 284 names against a 305/282 limit. The growth is tinymemory-core plus its ureq HTTP client chain (+2/+2), wired into openhuman_core on the always-on memory path by 6bf0802 without updating the ratchet. Raise the limit to 307/284 to reconcile it with the graph already on main; no dependency is added here. Justification recorded in the file's history block per its own policy.
|
Added a second commit (
Both are required for the lane to go green. The macOS/Linux skew is expected (macOS resolves 308/285; the ratchet is calibrated on Linux at 307/284, which is what CI reported). |
What this change touches2 files, +20 -0 across 2 components. The code graph knows nothing about these files yet — normal for newly added files, and a cold index otherwise. flowchart LR
n0["scripts<br/>1 file +12 -0"]:::changed
n1["src/openhuman/config/migration_helpers<br/>1 file +8 -0"]:::changed
classDef changed fill:#0d4429,stroke:#238636,color:#e6edf3
classDef impacted fill:#161b22,stroke:#6e7681,color:#c9d1d9
classDef flagged fill:#5a1e02,stroke:#d93f0b,color:#ffffff
classDef blocking fill:#67060c,stroke:#f85149,color:#ffffff
Green: changed. Grey: untouched, reached through an import or a call. Orange: has findings. Red: has a finding that blocks the merge.
Changed files
|
…loor The Feature-Gate Smoke lane also runs the dep-sim --cut-nothing calibration (ci-lite.yml), which must equal the kernel-floor name count. Raising the flows floor to 284 names for tinymemory-core requires moving --expect-names 282 -> 284 too, or the calibration guard fails. Same reconciliation as the floor bump; no dependency change.
The rust-feature-gate-smoke lane diffs an EXPECTED allowlist of files carrying a feature-gated test against what actually exists. memory/people/address_book.rs was removed from the tree, but the allowlist still listed it, so the guard failed on main once the earlier lane blockers were cleared. Remove the stale entry to match the current source.
There was a problem hiding this comment.
Requesting changes: 1 lane(s) blocking, worst finding is high.
Fix or reply to the findings below and push. The next review clears this automatically once they are gone — you should not need to dismiss anything by hand.
$0.0209 · 11,388 in / 7,409 out · 8,621 cached (76%) · z-ai/glm-5.2
critique: $0.0036 · 2,187 in / 1,285 out · 1,722 cached (79%) · z-ai/glm-5.2
security: $0.0036 · 2,166 in / 1,214 out · 1,536 cached (71%) · z-ai/glm-5.2
tests: $0.0037 · 2,960 in / 1,222 out · 2,269 cached (77%) · z-ai/glm-5.2
description: $0.0099 · 4,075 in / 3,688 out · 3,094 cached (76%) · z-ai/glm-5.2
There was a problem hiding this comment.
The previously-blocking findings are resolved. Clearing the changes request.
$0.0317 · 20,916 in / 10,702 out · 15,326 cached (73%) · z-ai/glm-5.2
critique: $0.0110 · 6,880 in / 3,613 out · 4,530 cached (66%) · z-ai/glm-5.2
security: $0.0090 · 6,817 in / 3,088 out · 5,657 cached (83%) · z-ai/glm-5.2
tests: $0.0088 · 2,980 in / 3,346 out · 2,165 cached (73%) · z-ai/glm-5.2
description: $0.0029 · 4,239 in / 655 out · 2,974 cached (70%) · z-ai/glm-5.2
Summary
This PR unblocks the Rust Feature-Gate Smoke (gates off) lane, which was broken on
mainat four stacked layers. It makes four changes:--no-default-features. Fix: call the existing idempotenthost_impls::install_for_tests()at the start of both.scripts/kernel-floor.limitsfromflows:305:282:2toflows:307:284:2to reconcile with thetinymemory-core+ureqclient chain that became always-on via6bf080266(wired intoopenhuman_coreon the always-on memory path without updating the ratchet). No new dependency is introduced here..github/workflows/ci-lite.yml--expect-names 282→284to match the new ratchet name count.openhuman/memory/people/address_book.rsfrom the feature-gated test-modules allowlist; the file was deleted from the tree, so the guard'sEXPECTEDlist was stale.Problem
migrate_openclaw_apply_imports_markdown_entries_into_target_workspaceandmigrate_hermes_apply_imports_markdown_entriesrunmigrate_*(…, dry_run = false), whose apply path does memory work requiringtinymemory_core::embedding_host::set_embedding_host(...). Under the default feature set another test installs the process-global host first, so these passed by accident of ordering; under--no-default-featuresthose tests are gated out and both panic.Separately, the Feature-Gate Smoke lane also runs the kernel-floor ratchet, its dep-sim calibration, and a gated-test-modules guard. All three had drifted on
main:tinymemory-core+ureqraised theflowsprofile from 305/282 to 307/284 without updating the ratchet or the--expect-namescalibration, andaddress_book.rswas deleted while still listed in the guard's allowlist. These surfaced one after another as each earlier blocker was cleared.Solution
crate::openhuman::memory::host_impls::install_for_tests()(idempotent,Once-guarded).scripts/kernel-floor.limitstoflows:307:284:2, with a history entry documenting the cause..github/workflows/ci-lite.yml--expect-names282 → 284 to match.openhuman/memory/people/address_book.rsentry from the gated-test allowlist.Verified:
GGML_NATIVE=OFF cargo test --no-default-features --lib -- apply_imports_markdown_entries→ both tests pass; kernel-floor + dep-sim + gated-test guard all pass locally, and the Feature-Gate Smoke lane is green in CI. Linux resolves 307/284; macOS resolves 308/285 per the documented target skew.Submission Checklist
--no-default-features.main.Closes #NNN— N/A: infra fix; unblocks the Rust Feature-Gate Smoke lane (and Add lowercase openHuman launcher symlink to the .deb package #5513's CI).Impact
ops.rschange is test-only (no runtime/behaviour change).main— no new dependency is added.Related
AI Authored PR Metadata (required for Codex/Linear PRs)
Linear Issue
Commit & Branch
fix/migration-helpers-test-embedding-hostValidation Run
GGML_NATIVE=OFF cargo test --no-default-features --lib -- apply_imports_markdown_entries→ 2 passedcargo fmt --check— cleanValidation Blocked
command:full default-featurecargo test/ clippyerror:heavy local compileimpact:none — verified under the exact failing config; CI is green on Feature-Gate SmokeBehavior Changes
Summary by CodeRabbit
Tests
Documentation