SMOODEV-1788: cut smooth over to published smooai-smooth-operator-core v0.14.0; re-home th-code harness#93
Merged
Merged
Conversation
…-core v0.14.0 (crates.io); re-home the th-code harness (coding_workflow, skills, fixer/oracle/chief/intent_classifier cast roles) into smooth's own crates
Final PR of the engine-decouple program. The engine
smooai-smooth-operator-core is now published on crates.io at 0.14.0 — a clean
generic agent engine with the th-code coding harness REMOVED. smooth previously
depended on the engine via the git rev bb9a256, which STILL carried the harness,
which is why it kept building. After this cutover smooth consumes the published
0.14.0 (no harness), so smooth now owns the harness bits it uses.
- Engine dep: root Cargo.toml switched from the rev-pinned git dep
(rev bb9a256) to `smooth-operator = { version = "0.14.0", package =
"smooai-smooth-operator-core" }`. Dep KEY unchanged so `use smooth_operator::…`
for the GENERIC engine API stays put. Cargo.lock resolves the engine from
crates.io (registry source + checksum), not git — the git-rev bridge is gone.
- New smooth-cast crate (smooai-smooth-cast) re-homes the dropped harness,
built on the engine's generic public Cast/OperatorRole/Clearance API:
* coding_workflow — the th-code single-agent outer loop (run_coding_workflow,
task_text_has_cleanup_intent, …). Internal Cast::builtin() lookup repointed
to smooth_cast::cast::builtin() so the fixer role is present.
* skills — discovery (discover, SkillScope, SkillSource, Skill) + the built-in
create-skill skill.
* cast — the four harness roles (fixer, oracle, chief, intent_classifier) the
generic engine dropped, plus cast::builtin() that adds them on top of the
engine's generic built-in roles. All moved tests came with the code.
- Consumers repointed: smooth-operative (coding_workflow + fixer resolution),
smooth-code (skills + chief/intent_classifier routing), smooth-cli (skills +
--agent resolution), smooth-bigsmooth (skills + session auto-naming). Every
Cast::builtin().get("fixer"|"oracle"|"chief"|"intent_classifier") now uses the
smooth cast.
- bigsmooth reporter hooks the engine dropped stay deleted (verified zero smooth
consumers of with_reporter/BigSmoothReporter/ReporterEvent/report_to_bigsmooth/
the bigsmooth feature). smooth's own smooth-bigsmooth gRPC crate is unrelated.
Verified: cargo build --workspace clean against crates.io 0.14.0; cargo tree -i
shows the engine resolved from the crates.io registry. Full test suite green
except two pre-existing parallel-execution flakes (smooth-bench
current_commit_sha, smooth-cli active_org set_persists) that both pass in
isolation and touch none of the cutover code.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
🦋 Changeset detectedLatest commit: 2411765 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
…th-code harness lives now Update docs/Engineering/Using-smooth-operator-and-smooth-operator-agent.md section 1 (was "stop vendoring", described as future) to reflect that the extraction is done: smooth now consumes the published crates.io smooai-smooth-operator-core 0.14.0, and the th-code harness (coding_workflow, skills, fixer/oracle/chief/intent_classifier cast roles) was re-homed into the new smooth-cast crate. Also de-stale the engine repo/crate name in the header table (smooth-operator -> smooth-operator-core). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…files After re-homing coding_workflow + the fixer/oracle roles into smooth-cast, update the comments/strings that still pointed at the old engine paths: - smooth-cast/src/coding_workflow.rs: fixer.txt is now at crates/smooth-cast/src/prompts/fixer.txt, loaded by crate::cast::builtin(). - smooth-code/src/app.rs: coding_workflow reference -> crates/smooth-cast. - smooth-bigsmooth/src/policy.rs: read_only_tools() now split between the engine (mapper/heckler) and smooth-cast (oracle). - smooth-bigsmooth/src/chat_tools.rs: the `role` tool-arg description points at smooth_cast::cast::builtin() instead of smooth-operator/src/cast. Comment/string-only — no behavior change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Final PR of the engine-decouple program. The engine
smooai-smooth-operator-coreis now published on crates.io at0.14.0— a clean, generic agent engine with theth codecoding harness removed. smooth still depended on the engine via a git rev (bb9a256) that still carried the harness, which is why it kept building. This PR cuts smooth over to the published0.14.0and re-homes the harness code smooth actually uses into smooth-owned crates.Solution
Engine dep → crates.io 0.14.0. Root
Cargo.toml:smooth-operator = { git = …, rev = "bb9a256…" }→smooth-operator = { version = "0.14.0", package = "smooai-smooth-operator-core" }. The dep KEY stayssmooth-operatorso everyuse smooth_operator::…for the GENERIC engine API is unchanged.Cargo.locknow resolves the engine fromregistry+https://github.com/rust-lang/crates.io-index(checksum-pinned), not git — the git-rev bridge is gone.New
smooth-castcrate (smooai-smooth-cast) re-homes the bits the engine dropped, built on the engine's generic publicCast/OperatorRole/ClearanceAPI:coding_workflow— theth codesingle-agent outer loop (run_coding_workflow,task_text_has_cleanup_intent, …). Its internalCast::builtin()lookup is repointed tosmooth_cast::cast::builtin()so thefixerrole is present.skills— discovery (discover,SkillScope,SkillSource,Skill) + the built-increate-skillskill.cast— the four harness roles (fixer,oracle,chief,intent_classifier) the generic engine dropped, pluscast::builtin()that registers them on top of the engine's generic built-in roles. All moved tests came with the code.Consumers repointed to
smooth-cast:smooth-operative(coding_workflow +fixerresolution),smooth-code(skills +chief/intent_classifierrouting),smooth-cli(skills +--agentresolution),smooth-bigsmooth(skills + session auto-naming). EveryCast::builtin().get("fixer"|"oracle"|"chief"|"intent_classifier")now uses the smooth cast.The Big-Smooth reporter hooks the engine also dropped stay deleted — verified zero smooth consumers (
with_reporter/BigSmoothReporter/ReporterEvent/report_to_bigsmooth/thebigsmoothengine feature). smooth's ownsmooth-bigsmoothgRPC crate is unrelated and untouched.Verification
cargo build --workspaceclean against crates.io0.14.0.cargo tree -i smooai-smooth-operator-core/Cargo.lockshowsource = "registry+https://github.com/rust-lang/crates.io-index"(the published crate, not a git source).grep -rnE 'git = .*smooth-operator-core|rev = "bb9a256' Cargo.toml crates/*/Cargo.tomlreturns nothing.smooth-bench current_commit_sha,smooth-cli active_org set_persists) — both pass in isolation and touch none of the cutover code.🤖 Generated with Claude Code