Repository navigation
Split vector retrieval and multi-agent runtime into reusable plugins - #5
Merged
shirohasuki merged 3 commits intoOct 27, 2026
Merged
Conversation
Collaborator
|
LGTM! |
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.
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
collaborationplugin 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_mulvalidation 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