Skip to content

Build modules without legacy-import or secret-file (carries #8321 onto main) - #8392

Merged
senamakel merged 8 commits into
tinyhumansai:mainfrom
senamakel:openhuman-modules-without-legacy-import
Oct 24, 2026
Merged

senamakel merged 8 commits into
tinyhumansai:mainfrom
senamakel:openhuman-modules-without-legacy-import

Conversation

@senamakel

Copy link
Copy Markdown
Member

Summary

Carries #8321 (Build modules without legacy-import or secret-file) onto current main. The #8321 head branch lives in tinyhumansai/openhuman, and the "Disallow creating branches" ruleset blocks every update to it, so the merge with main can't be pushed there. This PR has all of #8321's commits unchanged, plus the merge commit and one follow-up fix.

Supersedes #8321.

What the merge found

  • main had already landed the same feature-gating fixes as Build modules without legacy-import or secret-file #8321: the Settled impl gates, profile_master_key_read_only behind secret-file, the disabled backend's get_profile_read_only, the auto_migrate re-export behind legacy-import, and the rpc migration gate. Every conflict takes main's version. The auto-merge also produced a second get_profile_read_only in encrypted_file_backend_disabled.rs, which is dropped.
  • What Build modules without legacy-import or secret-file #8321 still adds is the embed-check-no-default-modules CI lane: cargo check -p openhuman-embed --no-default-features --features modules.

Follow-up fix: channels::runtime ungated

#8319 moved the channel turn driver from agent::harness, which had no feature gate, to channels::runtime::turn_driver. agent::bus (agent.run_turn) calls it in every build. But channels/mod.rs declared mod runtime only under feature = "channels", so every no-default embed build broke with cannot find module runtime / unresolved import crate::channels::run_channel_turn. That includes the new lane, the existing embed-check-no-default lane, and Chottu's feature set.

runtime/mod.rs already gates each of its submodules on channels except turn_driver. So the fix is to drop the outer gate on mod runtime.

Validation

  • cargo check -p openhuman-embed --no-default-features --features modules: passes
  • cargo check -p openhuman-embed --no-default-features: passes
  • cargo check -p openhuman-embed --no-default-features --features langfuse: passes
  • cargo check -p openhuman-embed --no-default-features --features storage-mongodb,modules,documents,langfuse,crash-reporting: passes
  • cargo check -p openhuman-rpc --no-default-features: passes
  • cargo check --workspace --tests: passes
  • node scripts/ci/check-feature-forwarding.mjs: OK
  • pnpm rust:layout: every step passes except the storage-schema check. That check flags tinychannels-bus whatsapp_* collection names. The failure is already on main: the vendor gitlink is the same and the checker is unchanged.
  • node --test on the lanes-plan script tests: 69/69
  • Full nextest, product features with the mock backend: 12207 tests run: 12207 passed, 23 skipped
  • Not a bug fix to behaviour, so there is no new runtime test. The regression guard is the CI lane, which runs exactly the build that was broken.

senamakel and others added 8 commits October 23, 2026 10:26
The Settled implementations for the storage import modules were only gated on the modules feature, so they compiled even when legacy-import was disabled. Adding legacy-import to the cfg conditions keeps these impls aligned with the modules they describe.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Relocated read_master_key_file and key_file_mode_is_other_writable from the
encrypted file backend into the key_source module so the file-based key
resolution logic lives alongside the rest of the key sourcing code. Also gated
profile_master_key_read_only behind the secret-file feature since only the
encrypted-file backend uses it.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Moved the master key file reader and its permission check into the
encrypted file backend module so the disabled placeholder can share the
same surface. The placeholder backend now exposes a profile-scoped
read-only lookup that returns an error instead of silently succeeding,
keeping behaviour consistent when the secret-file feature is off.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
The v1 to v2 layout migration reads the v1 layout, so it is now only
compiled when the legacy-import feature is enabled. The session store
skips the migration and uses the loaded config directly when that
feature is off.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
…ithout-legacy-import

main already carries the same feature-gating fixes (Settled impl gates,
profile_master_key_read_only, the disabled backend's get_profile_read_only,
the layout re-export and the rpc migration gate), so every conflict takes
main's version. The disabled backend's duplicate get_profile_read_only that
the auto-merge produced is dropped. The PR keeps its
embed-check-no-default-modules CI lane.

Co-authored-by: Medulla <medulla@tinyhumans.ai>
The runtime module is now compiled unconditionally because the agent
domain's agent.run_turn handler drives every turn through
runtime::turn_driver regardless of whether the channels feature is
enabled. Everything else in runtime keeps its own channels gate.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
…deps

Update the lockfile to pick up tinystoragedrivers 2.1.1 and tinychannels-bus 0.1.42, along with the transitive windows, getrandom, and tempfile bumps they pull in.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
@tinysweeper

tinysweeper Bot commented Oct 24, 2026

Copy link
Copy Markdown

Tiny Sweeper review

⏳ Reviewing d2fca0c308cd now. The last completed report, when available, remains below until this pass finishes.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-24T21:25:20.412734Z
We couldn’t complete this review. Comment @codex review to try again.
d2fca0c PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@senamakel
senamakel merged commit a00b872 into tinyhumansai:main Oct 24, 2026
10 of 14 checks passed
@coderabbitai

coderabbitai Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Caution

Review failed

The pull request is closed.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

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.

1 participant