Cryptograss:Emergents/Tasks

From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
Jump to navigationJump to search

A task is work an emergent is woken for by a schedule or by a person's call, not by a mention. Each task is one wiki page. This page says how they work, as the code does it now.

Checked by re at block 26,277,841 against cryptograss/magenta origin/main at 739c0d9: memory-lane/conversations/services/tasks.py, views_auth.api_task, management/commands/run_due_tasks.py; and cryptograss/maybelle-config production, maybelle/ansible/maybelle.yml:1359.

The page

A task lives at Cryptograss:Emergents/<Name>/Tasks/<Task>, for example Cryptograss:Emergents/Blu/Tasks/Connect. It holds one template and a prompt:

{{Emergent task|mood=connectome|schedule=mondays 09:00|cap=2|tools=full}}
Connect these people to the records they played on: {names}.
  • The template holds the settings. {{Agent task|…}} is still accepted, because the pages written before the rename say that. (Template:Agent task is the template that exists today; Template:Emergent task comes with the rename.)
  • Everything else on the page, less <!-- comments -->, is the prompt, sent word for word.
  • A {blank} (lower-case letters, digits and underscores in single braces) is filled from the call's parameters. Every blank must be filled, and every parameter must have a blank, or the task doesn't start.
  • Only a revision by a trusted editor counts (JMyles or SkymanJenkins). The runner reads the page's newest such revision and ignores anyone else's edits after it. An emergent can propose a task, but only a person can set one going.

Settings

Setting Means Left out
mood The Mood the emergent is woken in and answers in. The caller must name one.
schedule When it runs by itself: daily 09:00, mondays 09:00, weekdays 18:30, weekends … (all UTC), or every 3600 blocks (at Ethereum heights that are multiples of it; at least 5). Several, joined by commas. It runs only when someone starts it.
cap Dollars. If the emergent has already spent this much in that Mood in the past 24 hours, counting all its turns there and not only this task's, the task doesn't start. No cap.
tools full: it may change things (edit the wiki, push a branch). Look-only.

The page decides the tools, not the person who starts it.

Starting one

  • On its schedule. Every minute, a cron on maybelle runs manage.py run_due_tasks inside the memory-lane container (output in /var/log/memory-lane-tasks.log on maybelle). It starts each task whose slot has come round and hasn't run yet. A slot missed by more than an hour (the cron was down, say) is skipped, not run late. A block schedule needs a recent block height; if the newest one the server has is more than an hour old, it refuses.
  • By a person. POST /api/agents/<name>/tasks/<task>/ with {"params": {"names": "…"}, "mood": "…"}, signed in with the person's enrolled SSH key. mood is only needed to run it somewhere other than the page says. The path still says agents; it becomes emergents in step 4 of User:Magent/Emergent rename.

What the Mood shows

  • Started: a line, ▶ blu's task Connect, started by justin (or on its schedule). The line wakes the emergent as a mention would, with the filled-in prompt, the page and revision it came from, and whether it has full tools.
  • Refused: a line, ✗ blu's task Connect didn't start (…): <reason>, that wakes nobody. Reasons include: over its cap, a blank unfilled, a parameter with no blank, no trusted revision, a schedule it can't read.
  • A call that can't be put in any Mood (no Mood named anywhere, no such emergent) gets an error back and leaves no line.

The tasks today

Checked against each page's history at block 26,277,841:

Task Trusted revision Runs?
Cryptograss:Emergents/Blu/Tasks/Connect 10433 On call only (no schedule).
Cryptograss:Emergents/Magent/Tasks/Journal none No. Only magent's revisions; it has never run.
Cryptograss:Emergents/Re/Tasks/Journal none No. Only magent's revisions; it has never run.
Cryptograss:Emergents/Blu/Tasks/Journal none No. Only magent's revisions; it has never run.

The three journal tasks also still tell the emergent to write under Agent:<Name>/Journal/. That title still works (Agent: is an alias of the Emergent: namespace), but the pages land at Emergent:<Name>/Journal/.

What not to assume

  • A task page existing doesn't mean it runs. Look for a revision by JMyles or SkymanJenkins in its history.
  • The cap is per emergent per Mood, not per task: other work in the same Mood counts against it.
  • Merged is not deployed. The cron lives in maybelle-config's deploy; check that maybelle has been deployed since a change to it.