Skip to content

Support configurable WDC session timeout up to 24h #272

@kwsantiago

Description

@kwsantiago

Problem

Descriptor coordination sessions have a hardcoded 10-minute timeout. For company treasuries where participants may be in different timezones or not all online simultaneously, 10 minutes is too short. Sessions expire before all members can contribute.

Solution

Make the session timeout configurable with a 24-hour maximum:

pub const DESCRIPTOR_SESSION_TIMEOUT_SECS: u64 = 600;      // 10 min default
pub const DESCRIPTOR_SESSION_MAX_TIMEOUT_SECS: u64 = 86400; // 24h max

Changes needed

  • Add timeout field to DescriptorProposePayload (optional, defaults to 600s)
  • Validate: timeout <= DESCRIPTOR_SESSION_MAX_TIMEOUT_SECS
  • Pass through to DescriptorSessionManager when creating session
  • CLI: keep wallet propose --timeout 3600 ... (seconds)
  • Mobile: expose timeout parameter in wallet_descriptor_propose()

Relation to #240

Issue #240 covers per-phase timeouts within a session. This issue covers the overall session lifetime. Both are needed — this sets the outer bound, #240 sets phase-level deadlines within it.

Context

Async group coordination is common for distributed teams. The existing DescriptorSessionManager::with_timeout() infrastructure partially supports this but isn't exposed to the protocol layer.

Metadata

Metadata

Assignees

Labels

easyenhancementNew feature or requestnostr-frostNostr FROST coordination protocolp3Lowest Priority

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions