Skip to content

[tiny-modules] tinyskills: move scaffolding, fetch/scan retry and discovery walking into tinyskills #7577

Closed

Description

@senamakel

Parent: #7532

Context

The module defines the ⟦tj:<hash>⟧ recovery marker and owns the declarations of the juice_* tools. The host still parses the marker itself, in normalize_handle and classify_handle_arg. It also defines the tool-name strings locally: RETRIEVE_TOOL_NAME, LEGACY_TINYJUICE_RETRIEVE_TOOL_NAME and REPL_TOOL_NAMES.

What moves

  • crates/openhuman-core/src/inference/tokenjuice/repl_tools.rs (399): normalize_handle (160), HandleArg (173), classify_handle_arg (182) + tests
  • crates/openhuman-core/src/inference/tokenjuice/mod.rs (438): RETRIEVE_TOOL_NAME (19), LEGACY_TINYJUICE_RETRIEVE_TOOL_NAME (20)
  • repl_tools.rs:14 REPL_TOOL_NAMES

What stays in OpenHuman

  • ModuleReplTool / TokenjuiceRetrieveTool impls and artifact authorisation
  • MlHost callback (generate.rs, modules/tokenjuice_host.rs), install from config, RPC (schemas.rs, config_patch.rs)

Upstream target

  • Repo tinyhumansai/tinyjuice, crate tinyjuice-bus: handle::{parse, classify} pure functions and tools::{RETRIEVE, LEGACY_RETRIEVE, REPL_TOOLS} constants beside repl_tool_declarations; bump contract version.
  • Tracks tinyjuice#59.

Host adapter after the move

Host tools call tinyjuice_bus::handle::* and reference tool names via bus constants; ~15 agent/harness files that match on juice_* names switch to the constants.

Acceptance criteria

  • Iterate locally against the on-demand compiled module (E0 [tiny-modules] E0: module source modes — load modules from release, linked or source build (no release per change) #7524 linked/source modes are for local dev and testing only, never CI)
  • Upstream PR merged in tinyhumansai/tinyjuice first (fmt, clippy -D warnings, tests, coverage gate)
  • Submodule release published; registry record (version, release_url, every PlatformAsset digest copied verbatim from the release's checksum.toml) and gitlink re-pinned to that release before this OpenHuman PR's CI can pass (node scripts/ci/check-module-pins.mjs)
  • Tests that exercise only the moved logic move with it; host-adapter / composition tests stay here
  • Old core code and its tests deleted in the same PR — no shim, re-export or alias left behind
  • No contract type redeclared in OpenHuman; members called through tinyjuice-bus constants; contract version bumped if the bus changed
  • scripts/ci/module-boundaries.json / docs/module-boundary-inventory.md updated
  • pnpm rust:layout, cargo check --manifest-path Cargo.toml, cargo check --manifest-path crates/openhuman-app/Cargo.toml, affected pnpm debug rust <filter> green
  • Regression test proving the behaviour is unchanged end-to-end through the host adapter
  • Regression test: handle parsing accepts/rejects the same inputs (marker, bare hash, legacy forms) before/after; rg '"juice_(retrieve|find|extract|summarize)"' crates/openhuman-core finds no literals outside tests

Depends on

#7524 (E0 module source modes, for local iteration)

Activity

  1. added
    subtaskSubtask of a larger tracked effort.
    refactorStructural code change without a primary behavior change.
    rust-coreCore Rust runtime in src/: CLI, core_server, shared infrastructure.
    skillsQuickJS skills runtime, manifests, sync, and skill tooling in src/openhuman/skills/.
    on Oct 12, 2026
  2. senamakel commented on Oct 13, 2026

    @senamakel
    MemberAuthor

    Module side merged: tinyhumansai/tinyskills#33 (merge 5f0361e). Released https://github.com/tinyhumansai/tinyskills/releases/tag/v0.4.0 (tag 27cf6d0, no .crate asset; cargo package cannot resolve the tinytools git dep, fix in tinyskills#34). Note: search::project takes the sanitiser as a parameter (host passes tinytools_std sanitize_for_llm) to keep reqwest out of the crate. Host adapter swap and gitlink repin to v0.4.0 remain.

  3. senamakel commented on Oct 13, 2026

    @senamakel
    MemberAuthor

    Done in #7681 (merged, b80e23c); module PR tinyhumansai/tinyskills#33, release v0.4.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    refactorStructural code change without a primary behavior change.rust-coreCore Rust runtime in src/: CLI, core_server, shared infrastructure.skillsQuickJS skills runtime, manifests, sync, and skill tooling in src/openhuman/skills/.subtaskSubtask of a larger tracked effort.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions