3.9 KiB
3.9 KiB
1. Prompt Boundaries
- 1.1 Positive prompt: replace durable run endpoint routing with a Redis-backed runtime registry so the first-party server management area can route work to authenticated Run sessions without requiring endpoint selection or server-to-endpoint database binding.
- 1.2 Directional prompt: work inside
platform/,platform_web/,plugins/, OpenSpec contracts, and local dev/test scripts; preserve platform-side distribution builds, component-token authentication, channel isolation, and existing magical-girl console styling. - 1.3 Boundary prompt: do not add cloud host sales, billing, SaaS marketplace features, a
run/source tree, host-path exposure, raw credentials, direct sockets, or any fallback that dispatches runtime work without a Redis-backed session lease.
2. Redis Registry Foundation
- 2.1 Add Redis configuration and health reporting for development, test, and production runtime registry use.
- 2.2 Add local/test Redis setup so automated tests use isolated Redis keys or databases rather than memory-only runtime registry behavior.
- 2.3 Define
RuntimeSessionRegistrywith Redis-backed register, heartbeat, lookup-by-token, lookup-by-server-component, revoke, and projection methods. - 2.4 Implement Redis key namespaces, TTL renewal, token hashing, capability/capacity snapshots, and no-startup-cleanup semantics.
3. Run Registration And Session Auth
- 3.1 Change Run hello to authenticate server/component identity and write a Redis session lease instead of creating or updating a durable
RunEndpoint. - 3.2 Change heartbeat to renew Redis leases and return unknown-session responses that cause Run to re-register.
- 3.3 Move run request signature and session-token validation to registry-derived sessions while preserving nonce and clock-skew protection.
- 3.4 Update revocation and component key reset to revoke Redis sessions for the affected server/component without relying on endpoint rows.
4. Job Targeting And Dispatch
- 4.1 Add durable job target fields for
serverInstanceId,targetComponentKind, andtargetComponentKey, with compatibility for existingrunEndpointIddata during migration. - 4.2 Update job creation and idempotency to target logical components rather than run endpoints, keeping platform builder jobs as a platform-owned target.
- 4.3 Update claim, ack, progress, result, cancel, reconcile, log ingest, artifacts, config writes, file operations, protected requests, and lifecycle dispatch to authorize through Redis session targets.
- 4.4 Remove validation that requires server jobs to match
ServerInstance.RunEndpointID, replacing it with server/component target validation and Redis session presence where dispatch requires a live Run.
5. API, UI, And Compatibility Cleanup
- 5.1 Remove first-party creation/edit/deploy flows that ask for run endpoint selection or persist server-to-run-endpoint bindings.
- 5.2 Replace run endpoint list/status UI with runtime connection health projections derived from Redis sessions and durable server/component metadata.
- 5.3 Update API DTOs, docs, plugin bridge contracts, and tests to mark
runEndpointIdas legacy compatibility where still accepted. - 5.4 Remove durable
RunEndpointrepository usage for generated Runs after compatibility tests cover legacy records.
6. Verification
- 6.1 Add backend tests for Redis registration, TTL expiry, token rotation, Redis restart/loss, cross-server claim rejection, and job lease behavior.
- 6.2 Add frontend tests for runtime connection health and absence of run endpoint selectors in first-party server workflows.
- 6.3 Run
go test ./...,npm --prefix platform_web test -- --run,scripts/check-structure.sh, and targeted Redis integration tests. - 6.4 Run
openspec validate replace-run-endpoints-with-redis-runtime-registry --strictbefore marking implementation tasks complete.