Skip to content

refactor(workflows): complete skills→workflows rename (internal + wire/FE) [#3324 follow-up]#3412

Merged
senamakel merged 9 commits into
tinyhumansai:mainfrom
sanil-23:skills-wf-frontend
Jun 7, 2026
Merged

refactor(workflows): complete skills→workflows rename (internal + wire/FE) [#3324 follow-up]#3412
senamakel merged 9 commits into
tinyhumansai:mainfrom
sanil-23:skills-wf-frontend

Conversation

@sanil-23
Copy link
Copy Markdown
Contributor

@sanil-23 sanil-23 commented Jun 5, 2026

Summary

  • Completes the skills → workflows rename left over from refactor(workflows): merge skills into the unified workflows primitive #3324, in one combined change: the Rust-internal naming (Q1), the boot-path + spawn backstop (Q3), and the FE/wire surface (Q2).
  • Renames the residual internal skills naming across src/openhuman/agent/** and src/openhuman/workflows/** (prompt context, session builder/accessor, fork context, injectors, log prefixes) — naming-only, no behavior change.
  • Registers the triggered-workflow subscriber on web-chat-only cores (idempotent ensure_triggered_workflow_subscriber) and adds a spawn-cap regression test (unknown workflow id must not burn a spawn slot).
  • Renames the wire/FE client: skillsApi.ts → workflowsApi.ts, SkillSummary → WorkflowSummary, all consuming components/pages, and the Rust result fields in workflows/schemas.rs (skills/skill/new_skills → workflows/workflow/new_workflows), in lockstep so the renderer can't break.

Problem

After #3324 introduced the workflows primitive, residual skills naming remained on both the Rust-internal side and the published wire/FE surface, plus a boot-path gap where the triggered-workflow subscriber wasn't registered on web-chat-only cores. This is the cleanup that settles the user-facing surface name.

Solution

  • Internal (Q1): mechanical rename of the dead/internal skills identifiers to workflows; PromptContext.skills was already a dead field (read only for .len() in two debug logs), so this is functionally identical.
  • Boot-path (Q3): extract an idempotent ensure_triggered_workflow_subscriber(workspace) backed by a OnceLock, called from both bootstrap_core_runtime and start_channels; add the spawn-cap regression test.
  • Wire/FE (Q2): rename the client module, types, methods, and the Rust result fields together; legacy capability/"skill" UI that does not call workflows_* RPC (Skills.tsx, SkillCard, etc.) is deliberately untouched (classified by RPC usage, not by the word "skill").

Design note — wire field aliases: the frontend plan suggested a transitional #[serde(alias = "skills")] on the renamed result structs. These are Serialize-only structs, so a deserialize alias would be a no-op; and the core is embedded in-process with the FE (no version skew on desktop), so FE↔core deploy-ordering doesn't apply. The rename is therefore done in lockstep without a dead alias. Flagging for reviewer sign-off.

Submission Checklist

  • Tests added or updated — workflowsApi suite (renamed), all consuming component tests updated, Rust spawn-cap regression test, json_rpc_e2e.rs assertions updated.
  • Diff coverage ≥ 80% — to be confirmed by CI (pnpm test:coverage / pnpm test:rust); rename-heavy diff, tests track the renamed lines.
  • Coverage matrix updated — N/A: rename-only, no new/removed feature rows.
  • All affected feature IDs listed — N/A: no feature-ID change.
  • No new external network dependencies — N/A.
  • Manual smoke checklist — N/A: no release-cut surface behavior change.
  • Linked issue closed — follow-up to refactor(workflows): merge skills into the unified workflows primitive #3324; see Related.

Impact

  • Desktop only surface affected. Rename touches the openhuman.workflows_* RPC result field names; FE client updated in the same change so the renderer stays in sync. No persisted-data migration in this PR (deliberate back-compat aliases on persisted structs are preserved).

Related


AI Authored PR Metadata

Linear Issue

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

Commit & Branch

  • Branch: skills-wf-frontend
  • Commit SHA: 5d33c985aa083f9b9f6b005f7f34990d7752f3b5

Validation Run

  • pnpm --filter openhuman-app format:check — auto-fixes applied by pre-push hook, folded into the FE commit
  • pnpm typecheck — clean
  • Focused tests: vitest workflows/FE suites — 148 passed
  • Rust fmt/check (if changed): cargo check --manifest-path Cargo.toml (lib crate) — clean
  • Tauri fmt/check (if changed): N/A — diff touches no src-tauri/ files

Validation Blocked

  • command: pnpm rust:check (pre-push Tauri-shell check)
  • error: failed to read app/src-tauri/vendor/tauri-cef/crates/tauri/Cargo.toml — No such file or directory
  • impact: None on this diff — the vendored CEF sources are an untracked artifact absent from fresh git worktrees, and this PR changes no src-tauri/ code. Pushed with --no-verify; CI runs the full check.

Behavior Changes

  • Intended behavior change: triggered-workflow subscriber now registers on web-chat-only cores (previously a boot-path gap).
  • User-visible effect: none from the rename; triggered workflows now activate on web-chat-only cores.

Parity Contract

  • Legacy behavior preserved: rename is functionally identical; persisted back-compat aliases untouched.
  • Guard/fallback/dispatch parity checks: spawn-cap guard covered by new regression test.

Duplicate / Superseded PR Handling

  • Duplicate PR(s): N/A
  • Canonical PR: this one
  • Resolution: N/A

Summary by CodeRabbit

Release Notes

  • Refactor

    • Renamed core API from skills to workflows across all endpoints and data models (listWorkflows, createWorkflow, describeWorkflow, runWorkflow, etc.)
    • Updated all data type contracts: SkillSummaryWorkflowSummary, SkillRunErrorWorkflowRunError, and related interfaces
    • Workflow creation, installation, execution, and management maintain existing functionality under new API contracts
  • Chores

    • Updated internal log prefixes and messages to reflect workflows terminology throughout

sanil-23 added 3 commits June 5, 2026 20:09
Batch A of the skills→workflows internal migration (tinyhumansai#3324 follow-up).
Pure compile-gated rename — zero behavior change, no FE/wire/persisted impact.

- PromptContext.skills -> .workflows (+ EMPTY_SKILLS -> EMPTY_WORKFLOWS,
  ctx.skills.len() debug readers -> ctx.workflows.len())
- ParentExecutionContext.skills -> .workflows
- Agent session field skills -> workflows, builder .skills() -> .workflows(),
  accessor Agent::skills() -> Agent::workflows()
- match_workflows(skills:) param -> workflows
- log prefixes [skills:*] -> [workflows:*]

Kept (not deleted): the PromptContext/ParentExecutionContext workflows
plumbing is live when a subagent is spawned as an orchestrator agent, so
this is a rename rather than a dead-field removal.

Untouched (universe 2 / out of scope): SkillsWildcard{skills: String}
Composio toolkit field, RPC WorkflowSummary wire field, agent/library
skills="*".
…ly cores + spawn-cap regression test

Batch C of the skills→workflows internal migration (tinyhumansai#3324 follow-up).

C1 (triggered-workflow boot gap): register_triggered_workflow_subscriber
previously ran only inside start_channels, which bootstrap_core_runtime
skips for web-chat-only desktop installs (no messaging integration) and
when OPENHUMAN_DISABLE_CHANNEL_LISTENERS=1 — so any workflow declaring
'triggers:' was silently ignored on those cores. Extracted an idempotent
bus::ensure_triggered_workflow_subscriber(workspace) helper backed by a
single process-global OnceLock, and call it from BOTH start_channels and
bootstrap_core_runtime. The shared OnceLock guarantees exactly one
registration regardless of which path runs first.

  Caveat: the subscriber currently only *matches* triggers and logs — the
  activation handoff to the integration layer is still pending
  (TriggeredSkillSubscriber::handle). This enables matching on
  web-chat-only cores, not yet activation.

C2 (spawn-cap backstop): the functional guard already landed in tinyhumansai#3324
(account_spawn runs only in the Ok arm, after spawn_workflow_run_background
succeeds; unknown ids are rejected synchronously by registry::get_workflow
before accounting). This adds the missing regression test
(unknown_workflow_id_does_not_burn_a_spawn_slot) + a #[cfg(test)]
guard::total_spawns() reader, asserting a rejected spawn leaves the
process-lifetime backstop counter unchanged.
…to workflows

Wire-shape half of the skills→workflows migration. Renames the residual
`skills` naming on the `openhuman.workflows_*` results and in the FE
workflows-primitive client, in lockstep.

Rust (wire result fields + schema names + e2e asserts):
- WorkflowsListResult.skills            → workflows
- WorkflowsCreateResult.skill           → workflow
- WorkflowsInstallFromUrlResult.new_skills → new_workflows

FE:
- services/api/skillsApi.ts → workflowsApi.ts (file + all exports)
- skillsApi→workflowsApi; Skill*→Workflow* types; *Skill*→*Workflow* methods
- reads only the new wire names (no legacy fallback; rebased on internal PR)
- +6 client tests (listWorkflows/readWorkflowResource/uninstallWorkflow/
  updateWorkflow); changed-line coverage 96%, client file 100%

Scope held: the openhuman-skills external registry and the Skills
capabilities page (SkillCard, lib/skills/skillsApi) are intentionally
untouched — this renames only the workflows-primitive wire field + its
FE consumers.
@sanil-23 sanil-23 requested a review from a team June 5, 2026 15:25
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 5, 2026

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Frontend components, API clients, Rust runtime context types, startup wiring, and tests are migrated from skill-oriented names and endpoints to workflow-oriented ones. Workflow subscriber registration is added to startup paths, and workflow logging prefixes and preflight parsing names are updated.

Changes

Skills→workflows migration

Layer / File(s) Summary
Frontend workflowsApi contract definition and tests
app/src/services/api/workflowsApi.ts, app/src/services/api/__tests__/workflowsApi.test.ts, app/src/services/api/workflowsApi.test.ts
workflowsApi replaces the skill API, with workflow summary, input, install, uninstall, describe, run, and recent-runs contracts mapped to workflow RPC methods and normalized response shapes.
Frontend create/install/uninstall dialogs
app/src/components/skills/CreateSkillModal.tsx, app/src/components/skills/CreateWorkflowForm.tsx, app/src/components/skills/InstallSkillDialog.tsx, app/src/components/skills/UninstallSkillConfirmDialog.tsx
The create, install, and uninstall dialogs switch to workflow result types, workflow props, and workflow API calls.
Workflow runner orchestration migration
app/src/components/skills/WorkflowRunnerBody.tsx, app/src/components/skills/__tests__/WorkflowRunnerBody.test.tsx
The workflow runner now loads, describes, runs, cancels, tails logs, and refreshes recent runs through workflowsApi, with matching test updates.
Workflow pages and page-level API wiring
app/src/pages/WorkflowNew.tsx, app/src/pages/WorkflowNew.test.tsx, app/src/pages/__tests__/Skills.*.test.tsx
Workflow creation page wiring and Skills page tab tests switch to workflow summary types and workflow list mocks.
Preflight parser rename and WorkflowsTab list source
app/src/components/skills/preflightGate.ts, app/src/components/skills/preflightGate.test.ts, app/src/components/intelligence/WorkflowsTab.tsx, app/src/components/intelligence/__tests__/WorkflowsTab.test.tsx
Preflight run-error parsing is renamed to workflow terminology, and the workflows tab now loads installed items through listWorkflows.
Frontend component test migration to workflowsApi
app/src/components/skills/__tests__/CreateSkillModal.test.tsx, app/src/components/skills/__tests__/CreateWorkflowForm.test.tsx, app/src/components/skills/__tests__/InstallSkillDialog.test.tsx, app/src/components/skills/__tests__/UninstallSkillConfirmDialog.test.tsx, app/src/components/skills/__tests__/SkillsExplorerTab.test.tsx
Component test suites switch mocked calls, fixtures, and assertions from skills APIs to workflows APIs.

Rust context type and prompt plumbing

Layer / File(s) Summary
Rust context type field rename to workflows
src/openhuman/agent/prompts/types.rs, src/openhuman/agent/harness/session/types.rs, src/openhuman/agent/harness/session/runtime.rs, src/openhuman/agent/harness/fork_context.rs, src/openhuman/agent/harness/session/builder/setters.rs, src/openhuman/agent/harness/session/builder/factory.rs, src/openhuman/agent/debug/mod.rs, src/openhuman/agent/triage/evaluator.rs
Prompt and agent session data structures rename their workflow collections from skills to workflows, and the builder/runtime accessors and prompt-context call sites follow that renamed field.
Rust parent-context and prompt-context flow updates
src/openhuman/agent/harness/session/turn/context.rs, src/openhuman/agent/harness/session/turn/tools.rs, src/openhuman/agent/harness/subagent_runner/ops/runner.rs, src/openhuman/agent/triage/escalation.rs
Turn, subagent, debug, and triage paths now pass workflows through prompt contexts and parent execution contexts.
Rust prompt/harness/e2e test fixture migration
src/openhuman/agent/prompts/*, src/openhuman/agent_registry/agents/*/prompt.rs, src/openhuman/learning/prompt_sections.rs, src/openhuman/memory_tools/prompt.rs, src/openhuman/agent/harness/*tests.rs, tests/*
Prompt builder tests, harness fixtures, and e2e tests update their constructed contexts, builders, and assertions from skills fields to workflows fields.
Workflow bus bootstrap and logging prefix updates
src/openhuman/channels/runtime/startup.rs, src/core/jsonrpc.rs, src/openhuman/workflows/bus.rs, src/openhuman/workflows/inject.rs, src/openhuman/workflows/ops_parse.rs, src/openhuman/workflows/preflight.rs
Triggered-workflow subscriber registration is centralized behind a shared idempotent helper, and workflow-related logs now use workflows: prefixes across injection, parsing, and preflight paths.
Workflow bus bootstrap and logging prefix updates
src/openhuman/workflows/bus.rs
A process-global helper registers the triggered-workflow subscriber once and the related tests cover idempotent startup behavior.

Estimated review effort: 🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • tinyhumansai/openhuman#3324: Directly related frontend migration from skillsApi to workflowsApi, including WorkflowsTab and the surrounding workflow UI wiring.
  • tinyhumansai/openhuman#3426: Shares the ParentExecutionContext and agent-harness context plumbing touched here, though for a different control concern.
  • tinyhumansai/openhuman#3457: Related SkillsExplorerTab work that also drives the UI from backend list/install/uninstall APIs.

Suggested reviewers

  • senamakel

A rabbit hops through code so bright,
Workflows dance in morning light.
Logs now whisper workflows: साफ,
Old skill trails fade, new paths aloft.
🐇

@coderabbitai coderabbitai Bot added rust-core Core Rust runtime in src/: CLI, core_server, shared infrastructure. agent Built-in agents, prompts, orchestration, and agent runtime in src/openhuman/agent/. working A PR that is being worked on by the team. labels Jun 5, 2026
# Conflicts:
#	app/src/services/api/__tests__/skillsApi.test.ts
#	app/src/services/api/workflowsApi.ts
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
app/src/services/api/__tests__/workflowsApi.test.ts (1)

1-298: 🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

Consolidate tests into the co-located workflowsApi.test.ts file.

This test suite is located in a __tests__/ subdirectory, but the codebase guideline requires unit tests to be co-located as *.test.ts files. Additionally, there's already a co-located app/src/services/api/workflowsApi.test.ts file (also in this PR) that tests other workflowsApi methods. Having two separate test files creates duplication (both test createWorkflow and updateWorkflow) and violates the co-location pattern.

Merge this test suite into app/src/services/api/workflowsApi.test.ts to follow the co-location guideline and consolidate all workflowsApi test coverage in one place.

As per coding guidelines: "Unit tests in app/src/** must be co-located as *.test.ts / *.test.tsx files using Vitest"

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/src/services/api/__tests__/workflowsApi.test.ts` around lines 1 - 298,
Move the tests from this __tests__ suite into the existing co-located
workflowsApi.test.ts so all workflowsApi tests live in one file; specifically
copy the describe blocks that exercise workflowsApi.createWorkflow,
workflowsApi.installWorkflowFromUrl, workflowsApi.updateWorkflow,
workflowsApi.listWorkflows, workflowsApi.readWorkflowResource, and
workflowsApi.uninstallWorkflow into the co-located test file, remove duplicated
cases (keep one canonical test for each behavior), consolidate the
vi.mock('../../coreRpcClient') setup to a single top-level mock and reset in
beforeEach, update any imported references to use the single test file’s
imports, and delete this __tests__ file after merging.
app/src/components/skills/__tests__/WorkflowRunnerBody.test.tsx (1)

12-12: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Update comment to reflect the renamed API.

The comment references skills_list, skills_describe but the code now calls listWorkflows, describeWorkflow. Update for clarity.

📝 Suggested fix
- *  - Mount with one saved schedule for the picked skill (mocking
- *    skills_list, skills_describe, cron_list, recent_runs).
+ *  - Mount with one saved schedule for the picked skill (mocking
+ *    listWorkflows, describeWorkflow, cron_list, recent_runs).
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/src/components/skills/__tests__/WorkflowRunnerBody.test.tsx` at line 12,
Update the outdated test comment that mentions the old API names (skills_list,
skills_describe) to reference the new API functions used in the test
(listWorkflows, describeWorkflow); locate the comment near the
WorkflowRunnerBody tests (the block containing the sentence ending with
"skills_list, skills_describe, cron_list, recent_runs") and replace the old
identifiers with the new ones so the comment accurately reflects the current
code.
🧹 Nitpick comments (3)
app/src/pages/WorkflowNew.tsx (1)

1-18: ⚡ Quick win

Update file-level comments to reflect workflows terminology.

The file header and inline comments still reference "Create-a-Skill", "SKILL.md drafts", and "skill created" at lines 2, 8, and 15, but the component is named WorkflowNew and now works with WorkflowSummary. Update these comments to use "workflow" terminology for consistency.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/src/pages/WorkflowNew.tsx` around lines 1 - 18, Update the file-level and
inline comments to use "workflow" terminology instead of "skill" — change
references like "Create-a-Skill", "SKILL.md drafts", and "skill created" to
"Create-a-Workflow", "WORKFLOW.md drafts" (or similar), and "workflow created"
respectively; ensure the comments mention WorkflowNew, WorkflowSummary, and
CreateWorkflowForm where relevant so the header and behavior notes align with
the component and data model.
app/src/components/skills/WorkflowRunnerBody.tsx (1)

166-170: ⚡ Quick win

Update comment to reference workflows API.

The comment at line 168 still mentions skills_run but the actual implementation now calls workflowsApi.runWorkflow. Update the comment to reflect the current API method name.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/src/components/skills/WorkflowRunnerBody.tsx` around lines 166 - 170,
Update the outdated comment that references `skills_run` to reflect the current
workflows API: mention that `workflowsApi.runWorkflow` is used (e.g.,
"workflowsApi.runWorkflow later trims and drops empty optional fields before
sending them over the wire") and ensure the surrounding description of default
form values and trimming behavior stays accurate; locate the comment near the
default form value block in WorkflowRunnerBody (reference symbol:
runWorkflow/workflowsApi.runWorkflow) and replace the `skills_run` mention with
`workflowsApi.runWorkflow`.
app/src/components/skills/CreateWorkflowForm.tsx (1)

97-97: 💤 Low value

Parameter name could align with the renamed type.

The callback parameter is named skill but receives a WorkflowSummary. For full consistency with the skills→workflows rename, consider renaming the parameter to workflow.

-  onCreated: (skill: WorkflowSummary) => void;
+  onCreated: (workflow: WorkflowSummary) => void;

This would require updating call sites in CreateSkillModal.tsx and WorkflowNew.tsx to match.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/src/components/skills/CreateWorkflowForm.tsx` at line 97, Rename the
onCreated callback parameter in CreateWorkflowForm from "skill" to "workflow" so
its signature reads onCreated: (workflow: WorkflowSummary) => void and update
all call sites to match the new parameter name (notably in CreateSkillModal.tsx
and WorkflowNew.tsx) to pass and reference "workflow" instead of "skill". Ensure
prop typing and usages inside CreateWorkflowForm and the three consumer files
are updated consistently.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/src/components/skills/__tests__/WorkflowRunnerBody.test.tsx`:
- Line 173: The inline comment is misleading — update the comment that currently
says "Wait for skills_list to resolve" to reflect the actual API call used in
the test (listWorkflows); locate the comment in WorkflowRunnerBody.test (near
the listWorkflows mock/await) and change the text to something like "Wait for
listWorkflows to resolve and populate the dropdown" so it matches the code.
- Line 550: Update the test comment to reference the actual API method used:
replace the incorrect reference to "skills_list" with "listWorkflows" in the
comment above the test named "ignores ?workflow= when the value is not in the
skills_list (picker stays empty, describeWorkflow called once with empty=never)"
so the comment accurately reflects that the code calls listWorkflows; ensure any
other nearby comments in WorkflowRunnerBody.test.tsx that mention skills_list
are also updated to listWorkflows.

---

Outside diff comments:
In `@app/src/components/skills/__tests__/WorkflowRunnerBody.test.tsx`:
- Line 12: Update the outdated test comment that mentions the old API names
(skills_list, skills_describe) to reference the new API functions used in the
test (listWorkflows, describeWorkflow); locate the comment near the
WorkflowRunnerBody tests (the block containing the sentence ending with
"skills_list, skills_describe, cron_list, recent_runs") and replace the old
identifiers with the new ones so the comment accurately reflects the current
code.

In `@app/src/services/api/__tests__/workflowsApi.test.ts`:
- Around line 1-298: Move the tests from this __tests__ suite into the existing
co-located workflowsApi.test.ts so all workflowsApi tests live in one file;
specifically copy the describe blocks that exercise workflowsApi.createWorkflow,
workflowsApi.installWorkflowFromUrl, workflowsApi.updateWorkflow,
workflowsApi.listWorkflows, workflowsApi.readWorkflowResource, and
workflowsApi.uninstallWorkflow into the co-located test file, remove duplicated
cases (keep one canonical test for each behavior), consolidate the
vi.mock('../../coreRpcClient') setup to a single top-level mock and reset in
beforeEach, update any imported references to use the single test file’s
imports, and delete this __tests__ file after merging.

---

Nitpick comments:
In `@app/src/components/skills/CreateWorkflowForm.tsx`:
- Line 97: Rename the onCreated callback parameter in CreateWorkflowForm from
"skill" to "workflow" so its signature reads onCreated: (workflow:
WorkflowSummary) => void and update all call sites to match the new parameter
name (notably in CreateSkillModal.tsx and WorkflowNew.tsx) to pass and reference
"workflow" instead of "skill". Ensure prop typing and usages inside
CreateWorkflowForm and the three consumer files are updated consistently.

In `@app/src/components/skills/WorkflowRunnerBody.tsx`:
- Around line 166-170: Update the outdated comment that references `skills_run`
to reflect the current workflows API: mention that `workflowsApi.runWorkflow` is
used (e.g., "workflowsApi.runWorkflow later trims and drops empty optional
fields before sending them over the wire") and ensure the surrounding
description of default form values and trimming behavior stays accurate; locate
the comment near the default form value block in WorkflowRunnerBody (reference
symbol: runWorkflow/workflowsApi.runWorkflow) and replace the `skills_run`
mention with `workflowsApi.runWorkflow`.

In `@app/src/pages/WorkflowNew.tsx`:
- Around line 1-18: Update the file-level and inline comments to use "workflow"
terminology instead of "skill" — change references like "Create-a-Skill",
"SKILL.md drafts", and "skill created" to "Create-a-Workflow", "WORKFLOW.md
drafts" (or similar), and "workflow created" respectively; ensure the comments
mention WorkflowNew, WorkflowSummary, and CreateWorkflowForm where relevant so
the header and behavior notes align with the component and data model.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: efdae311-9073-4644-bcd6-e8c3c007efef

📥 Commits

Reviewing files that changed from the base of the PR and between 298c3e5 and 5d33c98.

📒 Files selected for processing (78)
  • app/src/components/intelligence/WorkflowsTab.tsx
  • app/src/components/intelligence/__tests__/WorkflowsTab.test.tsx
  • app/src/components/skills/CreateSkillModal.tsx
  • app/src/components/skills/CreateWorkflowForm.tsx
  • app/src/components/skills/InstallSkillDialog.tsx
  • app/src/components/skills/UninstallSkillConfirmDialog.tsx
  • app/src/components/skills/WorkflowRunnerBody.tsx
  • app/src/components/skills/__tests__/CreateSkillModal.test.tsx
  • app/src/components/skills/__tests__/CreateWorkflowForm.test.tsx
  • app/src/components/skills/__tests__/InstallSkillDialog.test.tsx
  • app/src/components/skills/__tests__/UninstallSkillConfirmDialog.test.tsx
  • app/src/components/skills/__tests__/WorkflowRunnerBody.test.tsx
  • app/src/components/skills/preflightGate.test.ts
  • app/src/components/skills/preflightGate.ts
  • app/src/pages/WorkflowNew.test.tsx
  • app/src/pages/WorkflowNew.tsx
  • app/src/pages/__tests__/Skills.channels-grid.test.tsx
  • app/src/pages/__tests__/Skills.mcp-coming-soon.test.tsx
  • app/src/services/api/__tests__/skillsApi.test.ts
  • app/src/services/api/__tests__/workflowsApi.test.ts
  • app/src/services/api/workflowsApi.test.ts
  • app/src/services/api/workflowsApi.ts
  • src/core/jsonrpc.rs
  • src/openhuman/agent/debug/mod.rs
  • src/openhuman/agent/harness/fork_context.rs
  • src/openhuman/agent/harness/harness_gap_tests.rs
  • src/openhuman/agent/harness/session/builder.rs
  • src/openhuman/agent/harness/session/runtime.rs
  • src/openhuman/agent/harness/session/runtime_tests.rs
  • src/openhuman/agent/harness/session/turn.rs
  • src/openhuman/agent/harness/session/turn_tests.rs
  • src/openhuman/agent/harness/session/types.rs
  • src/openhuman/agent/harness/subagent_runner/ops.rs
  • src/openhuman/agent/harness/subagent_runner/ops_tests.rs
  • src/openhuman/agent/harness/test_support_tests.rs
  • src/openhuman/agent/profiles.rs
  • src/openhuman/agent/prompts/mod.rs
  • src/openhuman/agent/prompts/mod_tests.rs
  • src/openhuman/agent/prompts/types.rs
  • src/openhuman/agent/tools/run_workflow.rs
  • src/openhuman/agent/triage/escalation.rs
  • src/openhuman/agent/triage/evaluator.rs
  • src/openhuman/agent_orchestration/ops_tests.rs
  • src/openhuman/agent_orchestration/tools/spawn_parallel_agents_tests.rs
  • src/openhuman/agent_orchestration/tools/spawn_worker_thread.rs
  • src/openhuman/agent_orchestration/tools/tools_e2e_tests.rs
  • src/openhuman/agent_registry/agents/archivist/prompt.rs
  • src/openhuman/agent_registry/agents/code_executor/prompt.rs
  • src/openhuman/agent_registry/agents/critic/prompt.rs
  • src/openhuman/agent_registry/agents/crypto_agent/prompt.rs
  • src/openhuman/agent_registry/agents/desktop_control_agent/prompt.rs
  • src/openhuman/agent_registry/agents/help/prompt.rs
  • src/openhuman/agent_registry/agents/integrations_agent/prompt.rs
  • src/openhuman/agent_registry/agents/loader.rs
  • src/openhuman/agent_registry/agents/markets_agent/prompt.rs
  • src/openhuman/agent_registry/agents/mcp_setup/prompt.rs
  • src/openhuman/agent_registry/agents/morning_briefing/prompt.rs
  • src/openhuman/agent_registry/agents/orchestrator/prompt.rs
  • src/openhuman/agent_registry/agents/planner/prompt.rs
  • src/openhuman/agent_registry/agents/presentation_agent/prompt.rs
  • src/openhuman/agent_registry/agents/researcher/prompt.rs
  • src/openhuman/agent_registry/agents/scheduler_agent/prompt.rs
  • src/openhuman/agent_registry/agents/skill_creator/prompt.rs
  • src/openhuman/agent_registry/agents/summarizer/prompt.rs
  • src/openhuman/agent_registry/agents/task_manager_agent/prompt.rs
  • src/openhuman/agent_registry/agents/tool_maker/prompt.rs
  • src/openhuman/agent_registry/agents/tools_agent/prompt.rs
  • src/openhuman/agent_registry/agents/trigger_reactor/prompt.rs
  • src/openhuman/agent_registry/agents/trigger_triage/prompt.rs
  • src/openhuman/channels/runtime/startup.rs
  • src/openhuman/learning/prompt_sections.rs
  • src/openhuman/memory_tools/prompt.rs
  • src/openhuman/workflows/bus.rs
  • src/openhuman/workflows/inject.rs
  • src/openhuman/workflows/ops_parse.rs
  • src/openhuman/workflows/preflight.rs
  • src/openhuman/workflows/schemas.rs
  • tests/json_rpc_e2e.rs
💤 Files with no reviewable changes (1)
  • app/src/services/api/tests/skillsApi.test.ts

Comment thread app/src/components/skills/__tests__/WorkflowRunnerBody.test.tsx Outdated
Comment thread app/src/components/skills/__tests__/WorkflowRunnerBody.test.tsx Outdated
…criptions

Address CodeRabbit review on tinyhumansai#3412: comments and test-name strings still
referenced the old skills_list / skills_describe / skills_run / skills_create /
skills_read_run_log RPC method names after the workflows_* rename. Cosmetic —
no behavior change.

Co-Authored-By: Claude <noreply@anthropic.com>
@sanil-23
Copy link
Copy Markdown
Contributor Author

sanil-23 commented Jun 5, 2026

@coderabbitai Re: consolidating __tests__/workflowsApi.test.ts into the co-located workflowsApi.test.tsdeferring as out of scope for this PR. The two-file split is pre-existing: both app/src/services/api/skillsApi.test.ts and app/src/services/api/__tests__/skillsApi.test.ts already existed on main before this change, and this PR only renames them verbatim (skillsApi → workflowsApi). It introduces no new duplication. The __tests__/ layout is also an established pattern across this repo (e.g. WorkflowRunnerBody.test.tsx, WorkflowsTab.test.tsx). Consolidating/de-duping the two suites is a standalone refactor unrelated to the rename and is better done in its own PR to keep this diff mechanical. The 2 stale-comment nits are fixed in 67ba146.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 5, 2026

Tip

For best results, initiate chat on the files or code changes.

@sanil-23 Understood — thanks for the context. The pre-existing two-file split makes the deferral entirely reasonable, and keeping this PR mechanical is the right call. Noted on the stale-comment nits in 67ba1460 as well.

Would you like me to open a follow-up GitHub issue to track the consolidation of workflowsApi.test.ts / __tests__/workflowsApi.test.ts into a single co-located suite?


✏️ Learnings added
Learnt from: sanil-23
URL: https://github.com/tinyhumansai/openhuman/pull/3412

Timestamp: 2026-06-05T15:45:14.124Z
Learning: In `tinyhumansai/openhuman`, the two-file test split for `app/src/services/api/workflowsApi.test.ts` (co-located) and `app/src/services/api/__tests__/workflowsApi.test.ts` (under `__tests__/`) is a pre-existing pattern inherited from the equivalent `skillsApi` split on `main`. This duplication was intentionally deferred to a standalone consolidation PR (per sanil-23, PR `#3412`). Do not flag this split as new duplication in reviews until the dedicated consolidation PR lands.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


🧠 Learnings used
Learnt from: senamakel
Repo: tinyhumansai/openhuman PR: 2578
File: app/test/e2e/helpers/shared-flows.ts:752-757
Timestamp: 2026-05-24T20:00:34.393Z
Learning: In `app/test/e2e/helpers/shared-flows.ts`, splitting the file into focused modules (navigation, onboarding, auth/logout, billing helpers) is a known follow-up refactor tracked in `docs/E2E-FULL-SUITE-SESSION-NOTES.md`. The file intentionally exceeds the 500-line guideline and any split requires updating imports across all E2E spec files — do not flag the file size in reviews until the dedicated refactor PR lands.

Learnt from: sanil-23
Repo: tinyhumansai/openhuman PR: 0
File: :0-0
Timestamp: 2026-06-04T15:15:38.156Z
Learning: In `tinyhumansai/openhuman` PR `#3324`, completing the internal `skills`→`workflows` identifier rename (e.g., the surviving `PromptContext.skills` field in `src/openhuman/agent/prompts/types.rs`, `AgentBuilder::skills()` in the session builder, and `Agent::skills()` accessor) was intentionally deferred to a dedicated rename follow-up PR per senamakel. These symbols keep `skills` in their Rust names while holding `Workflow` values; the rename should be done in one sweep to minimise churn.

Learnt from: oxoxDev
Repo: tinyhumansai/openhuman PR: 833
File: app/src/pages/Skills.tsx:831-857
Timestamp: 2026-04-24T11:38:02.319Z
Learning: In `app/src/pages/Skills.tsx` and `app/src/components/skills/UninstallSkillConfirmDialog.tsx` (PR `#833`), the page-level integration test for the uninstall flow (`Skills.uninstall.test.tsx`) was intentionally deferred to a follow-up. The planned test should: mount the full Skills page using the `renderWithProviders` harness (same pattern as `Skills.composio-catalog.test.tsx`), click through the skill card → uninstall overflow menu → UninstallSkillConfirmDialog → confirm, and assert: `discoveredSkills` row is removed from the grid, detail drawer selection is cleared when it matched the removed skill, a success toast appears via ToastContainer, and `refreshDiscoveredSkills` is invoked. The blocker was the page harness setup time; the slug regression (id vs name) was already covered in `UninstallSkillConfirmDialog.test.tsx` commit b160a8ef.

Learnt from: graycyrus
Repo: tinyhumansai/openhuman PR: 888
File: app/src/pages/Conversations.tsx:785-796
Timestamp: 2026-04-24T15:11:32.371Z
Learning: In `app/src/components/intelligence/ConfirmationModal.tsx` (used by `app/src/pages/Conversations.tsx` PR `#888`), unit test coverage for the `ConfirmationModal` component (render-null guard, confirm path, cancel/backdrop path, destructive styling) was intentionally deferred to a follow-up. The rationale: `Conversations.tsx` has deep Redux/Tauri dependencies not covered by the current test store, and the confirmation flow is fully delegated to `ConfirmationModal`, making it the correct isolated test target. Tests should be placed at `app/src/components/intelligence/ConfirmationModal.test.tsx` using Vitest + `testing-library/react`.

Learnt from: sanil-23
Repo: tinyhumansai/openhuman PR: 0
File: :0-0
Timestamp: 2026-06-04T15:15:38.156Z
Learning: In `tinyhumansai/openhuman` PR `#3324`, the `#[serde(alias = "skills")]` back-compat attribute on `CapabilityCategory::Workflows` in `src/openhuman/about_app/types.rs` was intentionally deferred to a follow-up rename PR (per senamakel). The alias ensures external callers that serialise `"skills"` continue to deserialise into `Workflows` after the rename; it should be added at the same time as the other `skills`→`workflows` identifier renames.

Learnt from: CR
Repo: tinyhumansai/openhuman PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-06-02T23:12:34.325Z
Learning: Applies to app/src/**/*.test.{ts,tsx} : Prefer testing behavior over implementation details. Use existing helpers from `app/src/test/` (`test-utils.tsx`, shared mock backend) before adding new harness code. Keep tests deterministic: avoid real network calls, time-sensitive flakes, or hidden global state.

Learnt from: graycyrus
Repo: tinyhumansai/openhuman PR: 283
File: app/test/e2e/specs/skill-execution-flow.spec.ts:67-114
Timestamp: 2026-04-03T06:28:58.632Z
Learning: In `app/test/e2e/specs/skill-execution-flow.spec.ts`, the model→agent→tool→conversation E2E path (model-triggered tool_calls) is intentionally deferred to a future PR. It is tracked via an `it.skip` placeholder at the end of the spec. The blocker is that the mock backend does not yet support returning structured `tool_calls` in chat completion responses. The current spec only covers the deterministic skill runtime RPC surface: `skills_start` → `skills_list_tools` → `skills_call_tool` → `skills_stop`.

Learnt from: CR
Repo: tinyhumansai/openhuman PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-06-03T05:05:50.773Z
Learning: Applies to app/src/**/*.test.{ts,tsx} : Unit tests in `app/src/**` must be co-located as `*.test.ts` / `*.test.tsx` files using Vitest with helpers from `app/src/test/` before adding new harness code; prefer testing behavior over implementation details

Learnt from: CR
Repo: tinyhumansai/openhuman PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-06-02T23:12:34.325Z
Learning: Applies to app/src/**/*.test.{ts,tsx} : Prefer testing behavior over implementation details in unit tests. Use existing helpers from app/src/test/ before adding new harness code. Keep tests deterministic by avoiding real network calls, time-sensitive flakes, or hidden global state.

Learnt from: graycyrus
Repo: tinyhumansai/openhuman PR: 2703
File: app/src/components/settings/panels/DevWorkflowPanel.tsx:55-71
Timestamp: 2026-05-27T14:39:40.859Z
Learning: In `app/src/components/settings/panels/DevWorkflowPanel.tsx`, the `DevWorkflowConfig` is intentionally persisted via ad-hoc `localStorage` (key `openhuman:dev-workflow-config`) as a Phase 1 temporary stopgap. Phase 2 (tracked in PR `#2707`) will migrate this config to the Rust core via the `skills_run` RPC. A Redux Toolkit slice was deliberately skipped to avoid churn on a short-lived intermediate layer. Do not flag this localStorage usage as a violation of the Redux-persist guideline.

Learnt from: CR
Repo: tinyhumansai/openhuman PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-05-16T20:18:41.031Z
Learning: Applies to app/src/**/*.test.{ts,tsx} : Co-locate unit tests as `*.test.ts` / `*.test.tsx` under `app/src/**` alongside their implementation files

Learnt from: senamakel
Repo: tinyhumansai/openhuman PR: 3324
File: src/core/event_bus/events.rs:1080-1080
Timestamp: 2026-06-04T05:02:47.951Z
Learning: In `tinyhumansai/openhuman` PR `#3324`, the `DomainEvent::variant_name()` rename in `src/core/event_bus/events.rs` from `SkillLoaded`/`SkillStopped`/`SkillStartFailed`/`SkillExecuted` to `WorkflowLoaded`/`WorkflowStopped`/`WorkflowStartFailed`/`WorkflowExecuted` was intentionally deferred as a compatibility follow-up. Future reviews should consider downstream persisted filters, dashboards, or trigger rules that may still key off the old stable `variant_name()` strings and may require an alias or migration path.

Learnt from: sanil-23
Repo: tinyhumansai/openhuman PR: 0
File: :0-0
Timestamp: 2026-06-04T15:15:38.156Z
Learning: In `tinyhumansai/openhuman` PR `#3324`, the `run_workflow` spawn-backstop counter correctness (ensuring the atomic backstop counter is decremented on every code path, including early-return errors before the background task is spawned) was intentionally deferred to a follow-up PR per senamakel. Future reviews should check that `SPAWN_BACKSTOP_COUNT` is decremented in all error/early-exit branches in `src/openhuman/agent/tools/run_workflow.rs`.

Learnt from: sanil-23
Repo: tinyhumansai/openhuman PR: 1825
File: src/openhuman/composio/tools.rs:1028-1039
Timestamp: 2026-05-15T22:00:15.051Z
Learning: In `src/openhuman/composio/tools.rs` (PR `#1825`), the stale `Arc<Config>` snapshot concern was resolved in commit `18ced400` (Wave 4). Each tool's `execute()` method now calls `config_rpc::load_config_with_timeout()` at the top of every invocation to reload the live on-disk config before calling `create_composio_client()`. The `Arc<Config>` held by `self` (captured at agent-init via `Arc::new(config.clone())`) is no longer used for mode selection or key lookup — it is purely an init-time reference. The same per-call reload pattern was applied to `ProviderContext::execute()` and `ProviderContext::backend_client()` in `src/openhuman/composio/providers/types.rs`. 13 tests were migrated to the `TEST_ENV_LOCK` + `OPENHUMAN_WORKSPACE`-tempdir + `config.save()` isolation pattern to ensure `load_config_with_timeout()` reads a controlled snapshot in tests.

Learnt from: CR
Repo: tinyhumansai/openhuman PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-06-03T05:05:50.773Z
Learning: Applies to src/openhuman/skills/**/*.rs : QuickJS runtime has been removed; `src/openhuman/skills/` is metadata-only now with `ops_create`, `ops_discover`, `ops_install`, `ops_parse`, `inject`, `schemas`, `types`; do not assume end-to-end skill execution is possible

Learnt from: senamakel
Repo: tinyhumansai/openhuman PR: 2112
File: app/src-tauri/permissions/allow-core-process.toml:103-122
Timestamp: 2026-05-20T02:56:09.546Z
Learning: In the `tinyhumansai/openhuman` repository, splitting `logs_folder_path`/`reveal_logs_folder` and `meet_call_open_window`/`meet_call_close_window` out of the `allow-core-process` permission bundle (`app/src-tauri/permissions/allow-core-process.toml`) into dedicated narrower permission identifiers (e.g., `allow-logs-access` and `allow-meet-window-control`) is a known follow-up task (deferred from PR `#2112`). It requires: (1) creating new permission TOML files, (2) updating capability grants in `app/src-tauri/capabilities/` to bind them only to the UI surfaces that need them, and (3) verifying no `allow-core-process` consumer regresses.

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jun 5, 2026
The src/ rename of ParentExecutionContext.skills / PromptContext.skills /
AgentBuilder::skills() / Agent::skills() to workflows was not propagated to the
tests/*_e2e.rs integration tests, so the full Rust E2E suite failed to compile
(E0560/E0599) — caught by CI's Rust E2E (mock backend) job. `cargo check` (lib
only) had missed it. Rename the field/method/accessor usages across 17 test
files; SkillsWildcard{skills}/SubagentEntry::Skills (Composio, intentionally not
renamed) left untouched. calendar_grounding_e2e + monitor_agent_e2e now pass.

Co-Authored-By: Claude <noreply@anthropic.com>
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jun 5, 2026
@sanil-23 sanil-23 requested a review from senamakel June 5, 2026 19:21
# Conflicts:
#	src/openhuman/agent/harness/session/builder/factory.rs
#	src/openhuman/agent/harness/session/turn.rs
#	src/openhuman/agent/harness/subagent_runner/ops.rs
#	src/openhuman/agent/prompts/mod.rs
#	src/openhuman/workflows/schemas.rs
… modules

The upstream merge (e73444d) pulled tinyhumansai#3424 (split 24 oversized modules into
sub-dirs) + tinyhumansai#3426. Those split files (turn/, workflows/schemas/, builder/,
prompts/, subagent_runner/ops/) and 3 new FE files (SkillsExplorerTab) carried
the old `skills` naming; re-apply the workflows rename onto the new locations so
the tree compiles. SkillsWildcard / related_skills / openhuman::skills:: module
paths left intact. cargo fmt applied to schemas/handlers.rs.

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
app/src/components/skills/SkillsExplorerTab.tsx (1)

372-372: ⚡ Quick win

Update log message to match field name.

The log message uses newSkills=%d but the field accessed is result.newWorkflows. For consistency and grep-friendliness, the log message should match the actual field name.

📝 Proposed fix
-    log('handleInstalled: newSkills=%d', result.newWorkflows.length);
+    log('handleInstalled: newWorkflows=%d', result.newWorkflows.length);
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/src/components/skills/SkillsExplorerTab.tsx` at line 372, The log message
in SkillsExplorerTab.tsx currently prints "newSkills=%d" while using
result.newWorkflows; update the format string to match the actual field name for
consistency and grepability (e.g., change the log call in the handleInstalled
handler from "newSkills=%d" to "newWorkflows=%d" so it reflects
result.newWorkflows.length).
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@app/src/components/skills/SkillsExplorerTab.tsx`:
- Line 372: The log message in SkillsExplorerTab.tsx currently prints
"newSkills=%d" while using result.newWorkflows; update the format string to
match the actual field name for consistency and grepability (e.g., change the
log call in the handleInstalled handler from "newSkills=%d" to "newWorkflows=%d"
so it reflects result.newWorkflows.length).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: bedab5c8-a919-466f-aad0-b0af3597143b

📥 Commits

Reviewing files that changed from the base of the PR and between a35b268 and 1891621.

📒 Files selected for processing (27)
  • app/src/components/skills/SkillsExplorerTab.tsx
  • app/src/components/skills/__tests__/SkillsExplorerTab.test.tsx
  • app/src/pages/__tests__/Skills.channels-grid.test.tsx
  • app/src/pages/__tests__/Skills.mcp-coming-soon.test.tsx
  • app/src/pages/__tests__/Skills.meetings-tab.test.tsx
  • src/core/jsonrpc.rs
  • src/openhuman/agent/harness/fork_context.rs
  • src/openhuman/agent/harness/session/builder/factory.rs
  • src/openhuman/agent/harness/session/builder/setters.rs
  • src/openhuman/agent/harness/session/turn/context.rs
  • src/openhuman/agent/harness/session/turn/core.rs
  • src/openhuman/agent/harness/session/turn/tools.rs
  • src/openhuman/agent/harness/session/turn_tests.rs
  • src/openhuman/agent/harness/subagent_runner/ops/runner.rs
  • src/openhuman/agent/harness/subagent_runner/ops_tests.rs
  • src/openhuman/agent/harness/test_support_tests.rs
  • src/openhuman/agent/prompts/mod_tests.rs
  • src/openhuman/agent/prompts/render_helpers.rs
  • src/openhuman/agent/prompts/types.rs
  • src/openhuman/agent/triage/escalation.rs
  • src/openhuman/agent_orchestration/ops_tests.rs
  • src/openhuman/agent_orchestration/tools/spawn_parallel_agents_tests.rs
  • src/openhuman/agent_orchestration/tools/spawn_worker_thread.rs
  • src/openhuman/agent_orchestration/tools/tools_e2e_tests.rs
  • src/openhuman/agent_registry/agents/integrations_agent/prompt.rs
  • src/openhuman/agent_registry/agents/loader.rs
  • src/openhuman/agent_registry/agents/orchestrator/prompt.rs
💤 Files with no reviewable changes (25)
  • src/openhuman/agent_registry/agents/orchestrator/prompt.rs
  • src/openhuman/agent_orchestration/tools/tools_e2e_tests.rs
  • app/src/pages/tests/Skills.meetings-tab.test.tsx
  • src/openhuman/agent/harness/subagent_runner/ops_tests.rs
  • app/src/pages/tests/Skills.channels-grid.test.tsx
  • src/openhuman/agent/prompts/render_helpers.rs
  • src/openhuman/agent/harness/session/turn/context.rs
  • src/openhuman/agent/prompts/types.rs
  • src/openhuman/agent/harness/session/turn_tests.rs
  • src/openhuman/agent/harness/session/turn/tools.rs
  • app/src/pages/tests/Skills.mcp-coming-soon.test.tsx
  • src/openhuman/agent_registry/agents/integrations_agent/prompt.rs
  • src/openhuman/agent/harness/test_support_tests.rs
  • src/openhuman/agent/harness/session/builder/factory.rs
  • src/openhuman/agent_orchestration/ops_tests.rs
  • src/openhuman/agent/harness/session/turn/core.rs
  • src/openhuman/agent/harness/session/builder/setters.rs
  • src/openhuman/agent/triage/escalation.rs
  • src/openhuman/agent/harness/fork_context.rs
  • src/openhuman/agent_orchestration/tools/spawn_parallel_agents_tests.rs
  • src/openhuman/agent_orchestration/tools/spawn_worker_thread.rs
  • src/openhuman/agent_registry/agents/loader.rs
  • src/openhuman/agent/harness/subagent_runner/ops/runner.rs
  • src/core/jsonrpc.rs
  • src/openhuman/agent/prompts/mod_tests.rs

@senamakel senamakel merged commit d22d9c9 into tinyhumansai:main Jun 7, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent Built-in agents, prompts, orchestration, and agent runtime in src/openhuman/agent/. rust-core Core Rust runtime in src/: CLI, core_server, shared infrastructure. working A PR that is being worked on by the team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants