An assigner ask that ends at the channel without an answer is asked again under a new asking (issue 1966) #198

Merged
mesh-tools merged 3 commits from fix/1966-ask-ended into main 2026-11-10 00:44:43 +00:00
3 Commits
Author SHA1 Message Date
jschoubben 77f5ec7d4f Subtask C: tellerevents' own test goes, its rows are the assigner's ended-ask rows and the teller's decode of every event said, to stay within the test budget (issue 1966)
mesh/delivery merged: source.main moved to novox/mesh-delivery@1fad9c8855a8
mesh/check checking 77f5ec7d4f0a on 8d9683d844ec
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 01:10:41 +01:00
jschoubben 46badf078e Subtask A: the assigner hears the teller's ask-ended and writes the ask again under a new asking (issue 1966)
An ask that ended at the operator channel without an answer while its key stood was never
written again, so nothing asked it (note 151: the nats yes on novox, three backup asks). The
assigner now consumes mesh-delivery-teller.ask-ended on its durable consumer and writes the key
again by compare-and-set under AskingSeconds (above the old asking), an id of its own and a new
expiry (AskLasts), one row per kind: hold, restore, backup and a record ask of the rules are
written again; the authorising ask of a proposal is not (ADR 0567 §5, §11: its lapse ends the
proposal, again asks it again), nor a record ask a put asked (ADR 0546: its lapse refuses the
put), nor an asking the key no longer holds.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 01:10:35 +01:00
jschoubben b39b0771a0 Subtask T: the teller says an assigner ask that ended at the channel without an answer as its event ask-ended (issue 1966)
An assigner ask that lapsed or was cancelled at the operator channel while its key still stands
was never asked again: the router drops a second ask under an id it keeps, and the assigner
only writes a new asking when the key is absent (note 151: the nats yes on novox and three
backup asks). The teller now says ask-ended (its module event, emits; body in its own package
tellerevents, ADR 0634 §1) when the router records such an end, and when a watch hands it a key
standing under an asking that ended so, which covers its start and the asks standing now. A
refusal, a replacement, an answer and an end by hand (teller_end_ask, kept in its own record)
are not said.

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
2026-11-10 01:07:05 +01:00