Skip to content

MCPJVM-368: Public MCP query support for run_state #368

Description

@nimbly-dev

Description

Once SQLite-backed run-state exists, Regression Suite needs a public MCP query surface for bounded inspection of persisted suite run information. This story exposes run_state through artifact_management as a query-oriented, machine-usable state surface rather than requiring full Artifact reads by default.

This story should define the public request/response shape, filtering behavior, paging, sorting, and fail-closed behavior for run_state queries.

Scope

In scope:

  • Add run_state as a public artifact_management state surface
  • Expose query support for persisted run-state
  • Support bounded filtering by fields such as projectName, planName, runId, executionProfile, and status
  • Support deterministic paging and sorting for enterprise-scale run history
  • Keep the public surface query-oriented and read-only for runtime-owned rows

Out of scope:

  • Runtime insertion/update ownership for run-state rows
  • Correlation-specific query semantics
  • Watcher-specific query semantics
  • Storage implementation internals

Acceptance Criteria

  • artifact_management supports public query access for run_state
  • Query behavior is bounded, deterministic, and fail-closed
  • Paging and sorting are supported for large run histories
  • The public contract does not expose manual mutation of runtime-owned run-state rows
  • Response output is sufficient for agents/users to inspect bounded run-state without loading full Artifact history by default

Implementation Notes

  • Prefer a single strong query action rather than separate read/list semantics.
  • Keep the request/response model summary-oriented and avoid mirroring entire Artifact payloads.

Testing

  • UT for run_state query input validation and filter normalization
  • UT for paging/sorting behavior
  • IT for bounded run_state query results over seeded persisted run history
  • IT for fail-closed behavior on invalid query inputs

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions