Files
browser/openspec/changes/implement-run-job-channel/tasks.md
T
2026-07-11 14:56:10 +08:00

2.1 KiB

1. Job Contracts

  • 1.1 Add typed run job protocol payloads in run/protocol for claim, ack, progress, result, cancel polling, and reconcile.
  • 1.2 Add matching platform DTO/domain contracts and conversion helpers for job-channel requests and responses.
  • 1.3 Add validation rules for bounded job payloads, lifecycle states, progress, session, lease, and terminal result metadata.

2. Platform Job Channel

  • 2.1 Extend platform service behavior for job claim leasing, session checks, ack, progress, terminal results, cancellation, reconcile, and idempotency.
  • 2.2 Implement platform job-channel HTTP routes using named DTOs and service methods.
  • 2.3 Add platform service/API tests for lifecycle success, no-job claim, invalid session/lease, invalid progress, cancellation, duplicate results, conflicting results, and reconcile.

3. Run Job Client

  • 3.1 Extend run/api.PlatformClient with typed job claim, ack, progress, result, cancel polling, and reconcile methods.
  • 3.2 Add run client tests for request paths, JSON payloads, response decoding, and platform error handling.
  • 3.3 Add an integration-style client test that claims a job, acknowledges it, reports progress, submits a result, and reconciles against a test platform job endpoint.

4. Documentation

  • 4.1 Update run and platform protocol/route documentation to mark job-channel endpoints implemented and keep log/artifact/game-client channels separate.

5. Verification

  • 5.1 Run go test ./... from platform/ and record evidence.
  • 5.2 Run go test ./... from run/ and record evidence.
  • 5.3 Run scripts/check-structure.sh and record evidence.
  • 5.4 Run openspec validate implement-run-job-channel --strict and record evidence.

Evidence

  • 2026-07-03: go test ./... from platform/ passed.
  • 2026-07-03: go test ./... from run/ passed.
  • 2026-07-03: scripts/check-structure.sh passed with structure check passed.
  • 2026-07-03: openspec validate implement-run-job-channel --strict passed with Change 'implement-run-job-channel' is valid.