-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
easyenhancementNew feature or requestNew feature or requestnostr-frostNostr FROST coordination protocolNostr FROST coordination protocolp3Lowest PriorityLowest Priority
Description
Descriptor sessions currently have a single 10-minute timeout (DESCRIPTOR_SESSION_TIMEOUT_SECS = 600). This makes it hard to distinguish between a stuck contribution phase vs a stuck finalize phase.
Add per-phase timeouts so each phase has an appropriate deadline:
- Contribution phase: 5 minutes from proposal (waiting for xpubs)
- Finalize phase: 2 minutes from all contributions received (waiting for initiator to assemble)
- ACK phase: 2 minutes from finalize sent (waiting for peer verification)
This enables:
- More precise timeout events (
DescriptorFailedwith phase-specific reason) - Faster retry on contribution stalls without waiting the full 10 minutes
- Better UX — the desktop/mobile UI can show which phase is stuck
Changes needed:
- Add phase timestamps to
DescriptorSession(e.g.contributions_complete_at: Option<Instant>,finalized_at: Option<Instant>) - Add per-phase timeout constants to
protocol.rs - Check phase-specific timeouts in
is_expired()based on currentstate - Emit phase-specific timeout reasons in cleanup
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
easyenhancementNew feature or requestNew feature or requestnostr-frostNostr FROST coordination protocolNostr FROST coordination protocolp3Lowest PriorityLowest Priority