Skip to content

refactor: unify skill loading and host-owned harness state - #263

Merged
wangtsiao merged 2 commits into
7df-lab:mainfrom
wangtsiao:refactor/unified-skills-context
Nov 6, 2026
Merged

wangtsiao merged 2 commits into
7df-lab:mainfrom
wangtsiao:refactor/unified-skills-context

Conversation

@wangtsiao

@wangtsiao wangtsiao commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Make crates/skills/assets/bundled the sole bundled Skill source. Remove 46 duplicate files and the runtime copy fallback.
  • Derive enabled Python packages from the Rust catalog. Kernel startup and prompt claims use the same selection; only successfully bound modules are advertised. The discrete skill tool also uses catalog identity, ambiguity, and enablement checks.
  • Route persistent Python harness operations through Rust in both server and one-shot CLI. Rust owns paths, permission checks, atomic persistence, and transaction locking shared with refinement.

Behavior and migration

  • Existing Skill configuration, canonical paths, and schema-1 harness data are retained.
  • Harness mutations now require await; call await rlm.harness.load() to refresh synchronous cached reads. Persistent save() and arbitrary state paths raise migration errors. Explicit in-memory mutations also use await.
  • Disable/enable changes apply at an idle turn boundary. Parked Python cells are not interrupted and cannot block the next turn's startup. Selected packages load before namespace restore so saved module/function aliases remain resolvable.
  • Disabling does not delete shared assets or revoke existing Python references. Python remains a trusted user-privileged process, not a sandbox.
  • Optional dependency failures are visible through import errors and omitted pre-import claims. This PR does not change product dependencies or generic/authored MCP transports.
  • Design and migration notes: docs/unified-skills-context.md.

Validation

  • Rust Skills: 38 passed, 2 ignored.
  • Rust harness: 23 passed; harness Clippy with warnings denied passed.
  • Rust kernel suite: 32 passed, including a nonblocking maintenance regression while a cell holds the execution gate.
  • Python runtime: 58 passed, 3 Windows-only skips (61 total), including selected-path import, enable/disable, alias restore, and host-only harness contracts.
  • Runtime packaging: 11 passed, 5 Windows-only skips.
  • Core/server/CLI Clippy, including test targets, passed with -D warnings after rebasing onto current main a84821ec.
  • Rust formatting and whitespace checks passed.
  • Follow-up local core suite: 577 passed, 22 ignored, 2 filtered due to this executor's unrelated temp-root marker and sandbox limitations. The two initial CI failures are fixed: the workspace fixture now uses .devo/skills, and Linux workspace tests explicitly provision Python 3.13 with the existing pinned dill==0.4.1 snapshot dependency. The bootstrap regression uses an isolated temporary catalog instead of user configuration.
  • Rechecked core Clippy with test targets, Rust formatting, whitespace, and CI YAML after the fix.
  • Final head d78b1108 passed all 24 CI jobs: main CI, 17 jobs, Runtime bundles, six target platforms, and Benchmark CLI build. Full cargo test --workspace --jobs 1 completed successfully, including the new Skill catalog, namespace restore, CLI harness, and server harness permission regressions.

Independent fork branch based on upstream main a84821ec, with a separate CI regression follow-up commit. No merge requested.

@wangtsiao
wangtsiao marked this pull request as ready for review November 6, 2026 14:19
@wangtsiao
wangtsiao merged commit 3a7f56e into 7df-lab:main Nov 6, 2026
24 checks passed
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