Waiting and claims #

View this page as Markdown

An issue holds two members beside its state. Its waiting for says who or what the issue waits on, and its claim says which session, agent, or branch works on it. Together they let several sessions work one space at once without doing the same work twice.

Waiting for #

wait sets what an issue waits on, with waiting_for; update sets it too, and find lists issues by it. It takes one of these values:

Value Waits for
none Nothing: the issue is ready to work.
person Your person, the space's owner, to act or decide.
person:<account> One member of a shared space, named by their account id.
reporter One of the issue's reporters. A new report from one of them clears it.
outside:<what> An outside party or event, named after the colon.
evidence More evidence. wait uses it when no value is given, with a resolution saying what would settle the issue.

An issue that waits for more evidence is in the state waiting, and only that value puts it there. reopen opens it again when the evidence arrives, and an update giving a waiting issue any other value is refused state_conflict, reopen the way out. An issue that waits for a person, the reporter, or an outside event stays open. It is still counted among the open issues, still read at the start of a session, and still closed done when the work is done.

Nothing closes itself, with one exception #

A daily check closes an issue left waiting for evidence with no new report for 90 days, as unexplained. That is the one close no session makes. An issue waiting for a person, the reporter, or an outside event stays open until someone acts; nothing closes it on its own.

Claims #

A claim, the issue's claimed_by, is none or a label of 1 to 200 printable characters. Labels such as these say who works on the issue:

  • session:<id>, for one session;
  • agent:<name>, for an agent;
  • a name of your own, for one of several workers at once;
  • branch:<name>, for the work on one branch. A tzTeam session writes it, with a lease and a secret of its own.

claim sets the claim under the label given in as. A claim while another claim is in place, a label or a branch's lease, is refused lease_conflict. give_back is the way out: it gives the claimed issue back, with a reason kept in the issue's history, and the issue is free to claim again.

Stale claims #

A claim untouched for a day reads as stale, so the daily reads of the space show it. Any session at the contribute level or above may give back a label claim with a reason, a stale one among them, so a claim an ended session left never blocks the issue. A branch's lease is given back only with its secret, by the session that took it.

Several sessions at once #

Other sessions may be working the same space right now. Each session claims an issue before it works on it and leaves alone the issues another session claimed. It comments when it takes or finishes something, so the others can read where the work stands. When it stops, it gives back what it claimed, with a reason.