Skip to content

Split vector retrieval and multi-agent runtime into reusable plugins - #5

Merged
shirohasuki merged 3 commits into
RuyiAI-Stack:mainfrom
ada-cl25:triton-plugin-decoupling
Oct 27, 2026
Merged

shirohasuki merged 3 commits into
RuyiAI-Stack:mainfrom
ada-cl25:triton-plugin-decoupling

Conversation

@ada-cl25

@ada-cl25 ada-cl25 commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Reworks the implementation proposed in #4 to separate reusable infrastructure from Triton-specific application logic, as requested in review.

  • dsh-vector-retrieval: independently installable Cordis service and Python package for embedding providers and workspace/version-scoped Qdrant operations. It has no Triton imports, operator prompts, source database, or business ranking rules.
  • dsh-multi-agent: independently installable Cordis service and Python package for typed, isolated Harness SDK calls, result validation, observed usage, cancellation, and process cleanup. It does not replace Harness's native subagent scheduler.
  • dsh-triton-riscv: consumes the shared Python packages; retains operator contracts, role prompts, workflow decisions, approval gates, MySQL evidence hydration, three-layer context expansion, remote validation, and the workbench.

The generic Cordis services are opt-in for other host plugins. Triton's existing Python workers use the same extracted implementations directly; no cross-process service round trip is added to their current path. Existing index payloads, point IDs, retrieval defaults and evidence checks are preserved. No production data migration or reindex is required by the extraction.

This branch also includes the previously local workbench account isolation and role-usage/preparation improvements so the split does not discard the current application. Authentication is an optional trusted-team workbench gateway, not native Harness SSO or a public hostile-code sandbox. The existing collaboration plugin and upstream Harness subagent implementation are unchanged.

Related Issue

Follow-up to the decoupling review on #4; this new PR supersedes that combined implementation. The old PR has not been automatically closed.

Validation

  • GitHub CI passed for e1435e5: both pre-commit and the repository Vitest job are successful.

  • Repository pre-commit checks passed.

  • Both new plugins passed frozen-lockfile installation and build checks.

  • Three Python wheels installed successfully with declared dependencies in a clean virtual environment; installed imports, policy resources, frontend assets and MCP imports passed without source-path injection.

  • Vitest: 37 vector-plugin tests; 47 multi-agent-plugin tests; 100 Triton unit tests; 107 Triton integration tests; 50 frontend tests.

  • The existing Python suite remains driven by Vitest: 66 modules, 800 cases and 185 subtests passed. No second test entry point was introduced for the new plugins.

  • Real pinned-Harness integration exercised policy/tool guards, approval/rejection, stdio MCP, and both legacy/vector evidence reaching model context. Loopback model fixtures are not presented as model-quality evaluation.

  • Browser acceptance covered concurrent accounts, login/logout, stale tabs, revoked cookies, private sessions and responsive workbench access.

  • Three backend checks were conditional skips (Redis Bloom, externally controlled Redis process and broker restart); five historical prompt-comparison cases require an unavailable frozen baseline. These are not counted as passes.

  • Authorized live acceptance passed against the configured model API and RISC-V host: account-bound operator discovery, environment checks, approval, Outbox/RabbitMQ dispatch, and remote relu_and_mul validation produced a verified source-bound passing receipt.

  • All four domain roles completed five real model invocations and produced a new operator proposal awaiting approval. No new operator files were applied or tested; this was deliberately a proposal-only check. Cross-account access to sessions, jobs, approvals, usage and artifacts was rejected.

  • Live role usage was 18,281 input plus 3,729 output tokens (22,010 total); pricing was not configured, so no monetary-cost claim is made. Private local test services were stopped afterward. No shared operator source or production database was changed.

Checklist

  • Reusable modules are independent of operator-specific code.
  • Installation and concise consumer documentation are included.
  • New assertions and CI discovery use Vitest.
  • Existing application, account and approval boundaries are retained and tested.
  • No credentials, runtime databases, test reports, or model conversations are included in the PR.
  • Known limitations and conditional skips are described above.

@shirohasuki

Copy link
Copy Markdown
Collaborator

LGTM!

@shirohasuki
shirohasuki merged commit 69a78d4 into RuyiAI-Stack:main Oct 27, 2026
2 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.

2 participants