Skip to content

fix(modules): hotfix module admission so search and memory load on installed builds - #7155

Merged
senamakel merged 5 commits into
tinyhumansai:releasefrom
senamakel:tinybus-module-admission
Oct 9, 2026
Merged

senamakel merged 5 commits into
tinyhumansai:releasefrom
senamakel:tinybus-module-admission

Conversation

@senamakel

@senamakel senamakel commented Oct 9, 2026 •

Copy link
Copy Markdown
Member

Summary

Problem

In production Langfuse, 18 of the last 100 web_search_tool calls (Oct 7–9, v0.64.7–0.64.14) failed with:

Web search failed: module 'tinysearch' could not be loaded from the installer bundle: module `macos-15-arm64` refused: module directory is writable by another user

The same error appears for windows-2022-x86_64 and ubuntu-22.04-x86_64. Sentry CORE-RUST-35W and CORE-RUST-365 show the same refusal for tinymemory.

  • macOS: the gate walks every parent directory, and /Applications is root:admin 0775, so every bundled module in a normal install is refused.
  • Linux: the release cache was created under the session umask (002 → 0775), so the gate refused the cache it had just filled.
  • Windows: the MSI installs into C:\Program Files, whose folders grant TrustedInstaller Full Control, and the ACL rule did not trust it.
  • All OSes: a refused installer bundle is terminal, so restarting doesn't help.

Solution

tinybus#36:

  • Trusts group write on root-owned directories whose group is root-equivalent (gid 0; macOS admin). World write, other groups and other owners are still refused.
  • Creates release-cache directories 0700, and removes group/other write from cache directories the user owns.
  • Falls back to the verified release cache (same compiled pin) only when the bundle was refused for its location. A digest, marker or library refusal is still authoritative.

Submission Checklist

  • Tests added or updated: in tinybus. Two regression tests fail on the old pin and pass on the new one. New admission_tests run on real ubuntu, macOS and Windows runners: the bundle-open-to-others fallback end to end, the real /Applications, and umask 002.
  • Diff coverage ≥ 80%: N/A, gitlink-only change in this repo.
  • Coverage matrix updated: N/A, behaviour-only change.
  • Affected feature IDs: N/A.
  • No new external network dependencies.
  • Manual smoke checklist: N/A. Worth smoke-testing web search on an installed macOS build after the cut.
  • Linked issue: none.

Impact

  • Desktop (macOS, Linux, Windows): bundled modules load from /Applications; Linux caches stop being refused; a placement-refused bundle recovers by downloading the pinned release.
  • Security: the location gate is relaxed only for root-equivalent groups. Content admission (digest, allowlist, ABI) is unchanged.
  • Windows: per-machine (MSI) installs under C:\Program Files are now admitted (tinybus#37: TrustedInstaller trusted, inherit-only ACEs judged on the files they seed). Verified on the Windows runner against a real %ProgramFiles% directory.

Related


AI Authored PR Metadata (required for Codex/Linear PRs)

Linear Issue

  • Key: N/A
  • URL: N/A

Commit & Branch

  • Branch: tinybus-module-admission
  • Commit SHA: see PR head

Validation Run

  • pnpm --filter openhuman-app format:check: N/A, no frontend change
  • pnpm typecheck: N/A
  • Focused tests: cargo test -p openhuman --lib modules::: 151 passed against the new tinybus
  • Rust fmt/check: tinybus fmt --check, clippy -D warnings, test --all-features (411 passed), --no-default-features
  • Tauri fmt/check: N/A

Validation Blocked

  • command: Windows cross-build locally
  • error: ring build script fails cross-compiling from macOS
  • impact: Windows runs only on tinybus CI's modules job

Behavior Changes

  • Intended behavior change: modules in /Applications and in umask-002 caches are admitted; a placement-only bundle refusal falls back to the release cache.
  • User-visible effect: web search and memory work on installed builds.

Parity Contract

  • Legacy behavior preserved: a bundle refused for its content is still reported with no fallback.
  • Guard/fallback/dispatch parity checks: a_bundle_refused_for_its_content_is_still_authoritative, plus the existing marker and invalid-bundle tests.

Duplicate / Superseded PR Handling

  • Duplicate PR(s): none
  • Canonical PR: this one

senamakel and others added 4 commits October 9, 2026 08:57
Update the vendored tinybus submodule to the latest upstream commit.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the vendored tinybus submodule to a newer revision.

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

tinysweeper Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Tiny Sweeper review

Tiny Sweeper reviewed this change across 6 lane(s) and found 0 active actionable finding(s). Detailed lane evidence and any incomplete work are listed below.

State: Ready for maintainer review
Priority: none
Reviewed head: a9f76658ac09
Updated: 1791518928 (Unix time)

Review snapshot

Change surface Files Review signal Count
Production 0 Active findings 0
Tests 0 Noted findings 0
Documentation 0 Resolved findings 0
Configuration 0 Pending checks/questions 0

Completeness: Complete
Test assessment: No supported feature-to-test mapping was available; this does not mean tests are absent or passed.

What changed

The review could not produce a supported behavioral summary; inspect the cited changed surface and lane details below.

Features

None identified with supported citations.

Tests

No supported feature-to-test mapping was produced. Test execution is not inferred.

Findings

No active actionable findings.

Before merge

None.

Agent review details

critique

  • Conclusion: Neutral
  • Scope reviewed: all assigned evidence
  • Lane summary: No added or modified lines to review.

security

  • Conclusion: Neutral
  • Scope reviewed: all assigned evidence
  • Lane summary: No added or modified lines to review.

tests

  • Conclusion: Neutral
  • Scope reviewed: all assigned evidence
  • Lane summary: No added or modified lines to review.

commits

  • Conclusion: Neutral
  • Scope reviewed: all assigned evidence
  • Lane summary: Nothing sensitive found in what this pull request commits.

description

  • Conclusion: Neutral
  • Scope reviewed: all assigned evidence
  • Lane summary: No added or modified lines to review.

e2e

  • Conclusion: Neutral
  • Scope reviewed: all assigned evidence
  • Lane summary: No added or modified lines to review.
Evidence and run details
  • Models: None
  • Spend: $0.000000
  • Tokens: 0 input · 0 output · 0 cached · 0 embedding
Head State Pass summary
7bd827c7c93d ready for maintainer review 0 active finding(s), 0 resolved finding(s) (at 1791518778)
a9f76658ac09 ready for maintainer review 0 active finding(s), 0 resolved finding(s) (at 1791518928)

tinysweeper 0.1.0

@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: c3edcc9e-b5da-4139-81ae-c8465e96abe6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 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 ✅ Completed 2026-10-09T04:11:04.608675Z 7bd827c 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.

@tinysweeper tinysweeper Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tinysweeper found nothing blocking. Approving.

$0.0000 · 0 in / 0 out

@tinysweeper tinysweeper Bot added the priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. label Oct 9, 2026
Co-authored-by: Medulla <medulla@tinyhumans.ai>
@senamakel
senamakel merged commit 9d05c43 into tinyhumansai:release Oct 9, 2026
3 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant