fluid-telegram/revisions/R-1.yaml
tegwick 6a33a6fad5 Fill the R-1 contract digest; publication stays founder-approved
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 5457@bnt-lap001
Assistant-Session: 792bf84a-3783-4f5d-a811-cded61dd2012
2026-10-08 07:34:02 +02:00

52 lines
1.6 KiB
YAML

# Revision descriptor for R-1.
#
# Digest filled 2026-10-08 from contracts/r1.openapi.yaml at 3aa8cb7; publish through the pipeline:
#
# fluid revision publish --file revisions/R-1.yaml \
# --key-file "$FLUID_SIGNING_KEY" \
# --adaptation-classes presentation \
# --approved-by "$USER" --traffic-share 1.0
#
# The digest is the sha256 of contracts/r1.openapi.yaml:
# printf 'sha256:%s' "$(sha256sum contracts/r1.openapi.yaml | cut -d' ' -f1)"
revision:
schema_version: "0.1"
id: "R-1"
interface: "helix-forge-telegram-publishing"
state: "stable"
contract:
type: "openapi"
digest: "sha256:4dbb9d9dd951f07117b43a3264bae8b2efd3cdf2ccfbe72d76cd21613c64a8f3"
source: "contracts/r1.openapi.yaml"
runtime:
upstream: "http://fluid-telegram-adapter:8080"
# Telegram rate-limits channel posts to roughly 20 per minute. A generous
# timeout is correct here: publication is not latency-sensitive, and
# failing fast would turn a rate limit into a lost entry.
timeout_ms: 30000
retry:
# Only GET is retried by the connector. POST /v1/channel-posts is
# idempotent on post_id, but the retry decision stays with the adapter,
# which knows whether Telegram accepted the message.
max_attempts: 1
circuit_breaker:
failure_threshold: 5
reset_after_ms: 60000
intent:
version: "IEI-2"
routing:
eligible_cohorts:
- "hall-publishing-jobs"
- "helix-forge-agents"
- "operators"
max_traffic_share: 1.0
policy:
compatibility: "additive"
security_check: "passed"
policy_check: "passed"
rollback_to: null