Files
cgalo5758 e97e57cc05 Archive first-run readiness specs
Publish completed OpenSpec requirements and update M12 status to mark
first-run friction done while keeping the screenshot work in 12a.
2026-07-01 22:53:15 -05:00

2.1 KiB

temporal-connection Specification

Purpose

TBD - created by archiving change temporal-first-boot-retry. Update Purpose after archive.

Requirements

Requirement: Resilient Temporal startup connection

When temporal-host is configured, member-console start SHALL establish its Temporal client by retrying a failed initial connection with bounded exponential backoff before failing, rather than aborting on the first error. The retry budget SHALL be configurable via temporal-connect-timeout (default 90 seconds) and SHALL exceed the identity provider's key-refresh window, so that a cold-start authorization failure — where Temporal is reachable but has not yet loaded the identity provider's signing keys — resolves without operator intervention. Each retry SHALL be logged, and on exhausting the budget the command SHALL exit non-zero with an error naming the attempt count and budget. A connection attempt SHALL respect context cancellation.

Scenario: First boot after a cold start succeeds without a re-run

  • WHEN member-console start connects to a Temporal server that is reachable but transiently rejects authentication because its signing-key cache has not yet loaded
  • THEN start SHALL retry the connection with backoff within the configured budget
  • AND once the server's key cache refreshes, the connection SHALL succeed and startup SHALL proceed — without the operator re-running start

Scenario: Unreachable Temporal fails with a clear, bounded error

  • WHEN Temporal remains unavailable for the entire temporal-connect-timeout budget
  • THEN start SHALL exit non-zero with an error naming the number of attempts and the budget

Scenario: Healthy Temporal connects immediately

  • WHEN Temporal is reachable and authenticating normally
  • THEN the initial connection SHALL succeed on the first attempt with no added delay

Scenario: Connect budget is configurable

  • WHEN temporal-connect-timeout is set to a non-default value
  • THEN start SHALL use that value as the maximum time to retry the initial Temporal connection