Skip to content

Remove the OpenHuman framing from core (#18 §C4) - #47

Merged
YellowSnnowmann merged 1 commit into
tinyhumansai:mainfrom
YellowSnnowmann:feat/18-c4-openhuman-framing
Aug 18, 2026
Merged

Remove the OpenHuman framing from core (#18 §C4)#47
YellowSnnowmann merged 1 commit into
tinyhumansai:mainfrom
YellowSnnowmann:feat/18-c4-openhuman-framing

Conversation

@YellowSnnowmann

Copy link
Copy Markdown
Contributor

Issue #18 §C4default_openhuman_dir() and the OpenHuman framing come out of tinymemory-core.

Deletes default_openhuman_dir() and its only caller, MemoryClient::new_local().

Why now

new_local is the constructor behind openhuman#5570: it pinned ~/.openhuman/workspace from the home directory, ignoring host workspace scoping — on a scoped host the profile write landed in a store nothing else reads. It failed by succeeding. openhuman#5575 (merged) removed the last caller, and its review noted the host side cannot lint against a dead upstream function — a BYPASS_PATTERNS needle for it fails bypass_patterns_are_all_live. The hazard closes here or not at all. This also completes follow-up #3 from that review.

With both gone, core no longer knows the host's directory layout: every construction path takes an explicit workspace directory.

Deliberately kept

Item Why
global::init_default() #[cfg(test)]; doc already forbids production use
"openhuman" embedder slug host config vocabulary, not directory framing — removal breaks configs for no containment gain
OPENHUMAN_OLLAMA_BASE_URL #[cfg(test)] only (TestEmbeddingHost)
test fixture prose not framing
dirs dependency engine/persona.rs still resolves home for persona files

Validation

Command Result
cargo test -p tinymemory-core 804 passed, 0 failed
cargo clippy -p tinymemory-core --all-targets clean
cargo fmt --all -- --check clean
grep -rn 'new_local|default_openhuman_dir' (both trees) zero survivors

Independent of #46 (§B4) — disjoint files.

Deletes `default_openhuman_dir()` and its one caller,
`MemoryClient::new_local()`.

`new_local` is the constructor that produced openhuman#5570: it resolved
`~/.openhuman/workspace` from the home directory and never consulted the
host's workspace scoping, so on any scoped host the write landed in a
store nothing else reads -- it failed by succeeding. openhuman#5575
removed the last caller; the reviewer there noted no lint on the host
side can hold this line (a scanner needle for a dead function fails the
liveness check), so the deletion has to happen here.

`default_openhuman_dir` existed for `new_local` alone. With it gone,
core no longer knows the host's directory layout at all: every
construction path takes an explicit workspace directory.

What deliberately stays:

- `global::init_default()` -- `#[cfg(test)]`, and its doc already warns
  it must never run in production.
- The `"openhuman"` provider slug in the embedder resolution ladder --
  host config vocabulary, not directory framing; removing it breaks
  existing configs for no containment gain.
- `OPENHUMAN_OLLAMA_BASE_URL` in `TestEmbeddingHost` -- `#[cfg(test)]`.
- Test fixture prose mentioning OpenHuman.

`dirs` stays a normal dependency: `engine/persona.rs` still resolves the
home directory for persona files.

cargo test -p tinymemory-core: 804 passed, 0 failed
cargo clippy -p tinymemory-core --all-targets: clean
cargo fmt --all -- --check: clean
@coderabbitai

coderabbitai Bot commented Aug 18, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 989c8e9b-d53f-4eb0-81f9-611ca3f948a0


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.

❤️ Share

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

@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 · 111 embedded · openrouter/openai/text-embedding-3-small

@tinysweeper

tinysweeper Bot commented Aug 18, 2026

Copy link
Copy Markdown

How this change flows

1 changed behaviour across 11 relationships. 6 surrounding behaviours are shown (60 graph nodes walked). 34 further behaviours left out to keep the diagram readable.

flowchart LR
  n0["MemoryClient<br/>changed"]:::changed
  n1["make_client"]:::impacted
  n2["memory_client"]:::impacted
  n3["from_workspace_dir"]:::impacted
  n4["...r_skill_memory_targets_prefixed_namespace"]:::impacted
  n5["...ot_error_for_namespaced_and_global_writes"]:::impacted
  n6["MemoryClientRef"]:::impacted
  n1 -->|uses| n0
  n1 -->|calls| n3
  n2 -->|uses| n0
  n2 -->|calls| n3
  n2 -->|tests| n3
  n2 -->|uses| n6
  n4 -->|calls| n1
  n4 -->|tests| n1
  n5 -->|calls| n1
  n5 -->|tests| n1
  n6 -->|uses| n0
  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
Loading

Green: changed behaviour. Grey: surrounding behaviour. Arrows name the call, use, implementation, or test relationship. Orange: has findings. Red: has a finding that blocks the merge.

tinysweeper 0.1.0

@tinysweeper tinysweeper Bot added the priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. label Aug 18, 2026
@YellowSnnowmann
YellowSnnowmann merged commit 242d7f1 into tinyhumansai:main Aug 18, 2026
13 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