Skip to content

fix(memory): align stale capability tests with the pinned-artifact fix - #5639

Merged
senamakel merged 1 commit into
tinyhumansai:mainfrom
senamakel:fix/stale-artifact-capability-tests
Aug 20, 2026
Merged

fix(memory): align stale capability tests with the pinned-artifact fix#5639
senamakel merged 1 commit into
tinyhumansai:mainfrom
senamakel:fix/stale-artifact-capability-tests

Conversation

@senamakel

@senamakel senamakel commented Aug 20, 2026

Copy link
Copy Markdown
Member

Summary

Problem

PR #5620 ("fix(memory): advertise what the pinned module serves, not the whole contract", merged 2026-08-20T12:41Z) corrected ModuleMemoryProvider::capabilities() to advertise only the 13 families the pinned tinymemory v1.0.1 artifact actually serves (per issue #5598), instead of falsely claiming the full 18-family contract (Capabilities::all()). It updated memory_tests.rs to match the corrected behavior, but three other test files independently hardcoded the old, now-incorrect full-contract expectation and were not updated in that PR:

  • core::cli_capability::tests::bound_driver_probe_reports_the_default_module_driver — asserted binding.capabilities() == Capabilities::all()
  • openhuman::memory::binding::tests::module_binding_advertises_every_family — asserted every Capability::ALL variant is advertised and advertised == unbound_default_capabilities()
  • openhuman::memory::ops::provider::tests::bound_driver_status_reports_id_class_contract_and_capabilities — asserted the wire status lists all 18 capability strings

All three have failed on every main run since #5620 merged (confirmed against main run 32373660712, the merge of #5621: identical 12116 passed; 3 failed; 106 ignored line, same three tests).

Solution

Update all three tests to assert the corrected 13-family set instead of the full 18-family contract, mirroring the reasoning #5620 already established and got reviewed/merged: the pinned v1.0.1 artifact has no bus member for people, chunks, retrieval, profile, or episodic (#5598), so claiming them is the bug, not the fix. Where it strengthens the test, I also assert the 5 not-yet-served families are explicitly absent, so a future artifact bump that adds them is what should widen this — deliberately, per the comment already in modules/memory.rs.

I did not touch ARTIFACT_CAPABILITIES or any other production code — this is strictly bringing stale test assertions in line with already-accepted, already-merged behavior.

Submission Checklist

Impact

  • CI-only: unblocks Rust Core Coverage (cargo-llvm-cov) on main (and therefore PR CI Gate on every open PR based on it). No runtime/platform behavior change.

Related


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

Linear Issue

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

Commit & Branch

  • Branch: fix/stale-artifact-capability-tests
  • Commit SHA: e546845

Validation Run

  • pnpm --filter openhuman-app format:check — N/A: no app/ files touched
  • pnpm typecheck — N/A: no TypeScript touched
  • Focused tests: cargo test --lib -F modules -- bound_driver_probe_reports_the_default_module_driver module_binding_advertises_the_pinned_artifacts_families bound_driver_status_reports_id_class_contract_and_capabilities — 3 passed, 0 failed
  • Rust fmt/check (if changed): cargo fmt --check clean on all three touched files
  • N/A: Tauri fmt/check (if changed) — no Tauri shell files touched

Validation Blocked

  • command: N/A
  • error: N/A
  • impact: N/A

Behavior Changes

Summary by CodeRabbit

  • Tests
    • Updated capability validation to reflect the capabilities currently advertised by supported memory artifacts.
    • Added checks ensuring required capabilities are present and unsupported capabilities are excluded.
    • Confirmed advertised capabilities remain within the defined contract.
    • Preserved full capability behavior for unbound contexts.

PR tinyhumansai#5620 corrected ModuleMemoryProvider::capabilities() to advertise
only the 13 families the pinned tinymemory v1.0.1 artifact serves,
instead of claiming the full 18-family contract (issue tinyhumansai#5598's root
cause). It updated memory_tests.rs to match but missed three other
test files that independently hardcoded the old full-contract
expectation, so main's Rust Core Coverage job has been red since that
merge:

- core::cli_capability::tests::bound_driver_probe_reports_the_default_module_driver
- openhuman::memory::binding::tests::module_binding_advertises_every_family
- openhuman::memory::ops::provider::tests::bound_driver_status_reports_id_class_contract_and_capabilities

Update all three to assert the corrected 13-family set (and, where it
strengthens the test, explicitly assert the 5 not-yet-served families
are absent), mirroring the reasoning already accepted in tinyhumansai#5620. No
production code changes.

Co-authored-by: Medulla <medulla@tinyhumans.ai>
@senamakel
senamakel requested a review from a team August 20, 2026 20:23
@senamakel senamakel added test Test additions, fixes, or harness work. memory Memory store, memory tree, recall, summarization, and embeddings in src/openhuman/memory/. bug priority: p1 Next. Wrong behaviour a user will hit, or a security weakness behind a condition. labels Aug 20, 2026
@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 9520c5c9-1bff-44bf-8348-782df8e6b23e

📥 Commits

Reviewing files that changed from the base of the PR and between 2b220b8 and e546845.

📒 Files selected for processing (3)
  • src/core/cli_capability_tests.rs
  • src/openhuman/memory/binding_tests.rs
  • src/openhuman/memory/ops/provider.rs

Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review.


📝 Walkthrough

Walkthrough

Capability tests now match the pinned TinyMemory artifact. They validate 13 advertised capability families, reject five unsupported families, enforce contract bounds, and preserve the full capability set for unbound contexts.

Changes

TinyMemory capability validation

Layer / File(s) Summary
Capability boundary validation
src/core/cli_capability_tests.rs, src/openhuman/memory/binding_tests.rs, src/openhuman/memory/ops/provider.rs
Tests now expect the artifact’s 13 supported capability families, reject chunks, episodic, people, profile, and retrieval, and verify contract bounds. Unbound contexts still expose all capabilities.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to e5468

This PR only aligns existing tests with the already-deployed 13-family memory capability behavior and does not change runtime behavior; no actionable merge-blocking risk remains after normal checks and review.

Suggested reviewers: al629176

Poem

I’m a rabbit with a tidy list,
Thirteen capabilities now exist.
Five stay out beyond the gate,
Contract bounds keep the sets in shape.
The TinyMemory tests agree—
No extra bits for me! 🐇

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The tests reflect the pinned artifact, but the linked issue requires re-pinning the artifact or resolving the capability mismatch. Re-pin tinymemory to an artifact that advertises all 18 required capability families, or link this PR to a test-only issue.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes updating stale memory capability tests to match the pinned artifact.
Out of Scope Changes check ✅ Passed All changes update memory capability tests and remain within the stated test-alignment objective.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 3 files.

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 added the priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. label Aug 20, 2026

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

@tinysweeper tinysweeper Bot removed the priority: p1 Next. Wrong behaviour a user will hit, or a security weakness behind a condition. label Aug 20, 2026
@senamakel
senamakel merged commit 60775aa into tinyhumansai:main Aug 20, 2026
34 of 42 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in Team Openhuman Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug memory Memory store, memory tree, recall, summarization, and embeddings in src/openhuman/memory/. priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. test Test additions, fixes, or harness work.

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Staging: tinymemory capability mismatch (8191 vs 262143) — memory_tree, memory_store_raw_chunks, memory_diff all failing

1 participant