Skip to content

refactor(aiops): unify versioned runtime and dynamic capabilities - #503

Merged
singchia merged 26 commits into
mainfrom
refactor/unified-agent-runtime
Oct 17, 2026
Merged

singchia merged 26 commits into
mainfrom
refactor/unified-agent-runtime

Conversation

@singchia

@singchia singchia commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

Summary

Unify Agent execution around versioned Eino Graph runtimes while retaining chat, delegated workers, approvals, workflows, MCP, skills and built-in tools.

  • Isolate v1 (first release v0.7.158), v2 (v0.18.2) and v3 sources. Wire selectable v2/v3 runtimes and mark v1 unsupported. New sessions follow the administrator setting; existing sessions, child workers and approvals retain their runtime owner. Legacy empty versions stay on v3.
  • Remove implicit 15-second execution limits while preserving cancellation, connection probes, approval expiry and explicit dispatch budgets.
  • Add per-turn skill catalogs and v3 load_skill, retain always/keyword activation, and support on-demand skills. Pin package resources for active turns/approvals; uninstall revokes new acquisitions. v2 uses compatible skill-body injection, not v3 resource leases.
  • Refresh dynamic MCP catalogs through immediate registration wakeups, paginated discovery, change notifications and periodic polling. Reject stale publication, revoke disabled/removed tools, and bind approvals to registration, credentials and schema revisions.
  • Preserve built-in agents across registry reloads. Reconcile interrupted internal workers on single-Manager startup with transactional tool finalization and interruption evidence, without replaying external work or changing independent approval records.
  • Distinguish search success, partial results, empty results and failures. Validate provider settings and use only explicitly configured fallback providers.

Fixes #498. Refs #499. Design and evidence: RFC-008, RFC-009, PRD-010, docs/test/e2e-catalog.md and docs/test/runtime-v2v3-deploy-20261017-5.md.

Validation

  • Full isolated backend E2E with race: 31 top-level / 95 total tests passed, zero failures/skips. Real Manager/MySQL with simulated model/MCP services.
  • Affected runtime, registry, MCP, settings, approval and startup/storage race suites passed. Latest worker recovery tests cover scope, ownership, idempotence and transactional rollback; targeted go vet passed.
  • Chrome E2E: 21 passed, 1 skipped, zero failures. Kubernetes live resource validation is skipped because the test environment has no cluster. Kubernetes code acceptance passed 51 frontend tests and all four Go layers with race.
  • Test environment Manager .8 / frontend .5: six live-model scenarios passed, covering v2/v3 delegated cancellation, v2 skill fallback, legacy empty-version ownership and v2/v3 workflow worker interruption on restart. Workers close, pending tools finalize, interruption records remain unique, and external replay count is zero. Temporary fixtures are cleaned and the default restored to release/v3.
  • Earlier live validation also passed dynamic MCP discovery/calls, skill install/load/uninstall, preserved default-agent configuration, SSE disconnect/history continuation and v2 MCP approval execution across a Manager update.
  • Linux runtime build/race, frontend build, settings UI checks and git diff --check passed. Latest GitHub checks are authoritative for this PR head.
  • Earlier broad container testing recorded three failures in unchanged paths involving AutoAPM worker resources, host worktree Git metadata and inaccessible-file permissions. Global frontend lint previously reported 9 errors/43 warnings outside the changed paths. These are disclosed separately from the passing targeted and E2E suites.

Risk and rollback

Merge is authorized after verification; production deployment remains separate. The test deployment is at https://101.34.63.91/.

Runtime selection changes only new sessions. Keep both v2/v3 engines available for existing sessions and approvals; switching the default is not an old-image rollback. v1 is unsupported. Skill resource leases remain process-local, so stale approvals fail explicitly after restart. Interrupted workers terminate with evidence rather than automatically resuming. Startup reconciliation assumes a single Manager; multi-Manager ownership/leases are not implemented. Chat AgentTool does not expose background=true; background acceptance uses workflow Agent nodes.

Dynamic capability and permission drift remain the principal risks, covered by lifecycle/concurrency tests. Search fallback is opt-in. Current test rollback: python3 /opt/ongrid/test-deploy-20261017-worker-recovery-8/ongrid-deploy8.py rollback restores Manager .7, preserving recorded interruption state. No schema change in the latest deployment; retain compatible runtime ownership columns and never overwrite newer data for an application rollback.

Author confirmation

@github-actions

Copy link
Copy Markdown

Commit message policy

Please write the PR title and every commit message in English using Conventional Commits, for example fix: handle empty service names. The automated check validates the format and rejects Han characters.

See the latest PR checks and open commit-policy for the current result and details.

This reminder is posted once per PR. Later failures and fixes only update the checks; this comment is not updated.

@singchia
singchia force-pushed the refactor/unified-agent-runtime branch from 82b55cb to 2cd3bda Compare October 14, 2026 11:22
Remove the blanket 15-second deadline from chat and workflow tools. Preserve explicit operation budgets and caller cancellation, and cover execution beyond the former cutoff with race tests.

Refs #523
Align filesystem and shell deadlines across Manager and Edge, allow longer cloud commands and diagnostic skills, and preserve caller cancellation and explicit shorter deadlines. Cover long shell execution and deadline propagation with race tests.

Refs #523
Pin new conversations and v3 worker sessions to their execution version. Route persisted versions without fallback and reject conflicting contexts. Preserve unclassified historical sessions until provenance migration and old-runtime adapters are ready.

Validate additive migration, routing and worker boundaries with race tests and real Manager/MySQL chat, RCA and flow E2E. Refs #503.
Persist runtime ownership and dispatch approved actions by exact kind/version. Restore the originating context and reject mismatched or lost single-use tool capabilities without fallback. Preserve unversioned records without guessing historical provenance.

Validate migration, concurrent registration, exact routing, MCP lifecycle and approval HTTP E2E. Refs #503.
Add runtime selection, on-demand skill snapshots and MCP lifecycle refresh with approval revision checks. Validate search providers atomically and preserve explicit fallback and execution budgets.

Verify full isolated backend E2E with race and 16 browser settings scenarios. Record test deployment, rollback and known container full-suite failures.
@singchia singchia changed the title refactor(aiops): unify agent runtime and executable tool catalog refactor(aiops): unify versioned runtime and dynamic capabilities Oct 17, 2026
Integrate #524 and #525 while retaining equivalent v3 timeout handling and its longer-execution and cancellation regression tests. Preserve the v1/v2 release source snapshots instead of applying rename-detected Graph edits to v2.

Remove the remaining 15-second coordinator control-tool deadline; retain the explicit AgentTool dispatch budget. Linux runtime race checks including Flow and full isolated backend E2E pass.
…ycles

Wire v2 routing, runtime settings and version-owned approvals; mark v1 unsupported. Fix MCP discovery wakeups, preserve built-in agents during reload, and reconcile interrupted workers on restart. Add dynamic capability and dual-runtime E2E coverage with test deployment evidence.
@singchia
singchia force-pushed the refactor/unified-agent-runtime branch from 6767aaf to d9f24e4 Compare October 17, 2026 11:55
@singchia
singchia marked this pull request as ready for review October 17, 2026 11:55
@singchia
singchia merged commit 6462b7b into main Oct 17, 2026
12 of 14 checks passed
@singchia
singchia deleted the refactor/unified-agent-runtime branch October 17, 2026 11:59
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.

bug(aiops): registered skills missing from Graph chat and host-file tools missing from workflow palette

1 participant