Skip to content

AbstractObserver 0.9.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 01:15
· 91 commits to main since this release
eabe0b0

Built on @abstractframework/ui-kit ^0.9.2 and @abstractframework/panel-chat ^0.5.0 (AbstractUIC 0.7.2; this release raises the floors from ui-kit ^0.8.9 / panel-chat ^0.4.1). The features below need ui-kit 0.8.8 or later (triggerWords, the connections and mailboxes client calls, the panel's occurrenceEvents / workflowName / triggerConnections / mailboxes).

Changed

  • After the run, under each run's answer (framework ADR-0041 "No hidden effects after a flow"; AbstractGateway GET /api/gateway/runs/{run_id}/after). Each finished run of an automation shows what arrived ("4 new emails: “O” from … and 3 more"), the note its On Flow End recorded, the alert it raised and where it came from (Notify me, an older flow's notify, a failure, an approval waiting for you on one of its steps) and each delivery: channel, route (push notification, shown by the app, email, listed in the console), device and time, or why it was not delivered; when nothing rang, why ("Nothing to notify: the title was empty."). A spinner until the gateway answered, the reason and Retry only after 3 tries failed (ADR-0039); read again for a few seconds while deliveries are recorded. The page renders the kit's AutomationPanel with panel-chat's renderers and adds the section after the answer turn (ObserverAutomationPanel): no ui-kit change. Requires an AbstractGateway with the route; against an older one the section says it could not read it, with Retry. Docs: docs/automations.md → "After the run".
  • New automation uses the flow's own settings. When the chosen flow publishes automation defaults (/bundles/{id} → automation_defaults), Automate preselects Use the flow's trigger: When Release notes has a new item (the connection's name, the mailbox's address, or the schedule's sentence from the gateway's preview in the account's zone), takes Context and its budget, the title and the inputs from the defaults (what was already typed is kept), and creates with that trigger. Other trigger… keeps the schedule kinds and adds When something arrives — your mailboxes by address and your feeds and webhooks by name (GET /triggers/connections, GET /me/email/accounts), never an id — and By hand. The raw Event object {…} input is no longer shown or sent in Automate mode: the trigger fills event.
  • Triggers in words everywhere. The Automations list, the automation's panel, the Board's automation cards and (i), the state line and the agent page read a trigger as a person set it up: the schedule's sentence, By hand, When mail arrives in me@example.org, When Release notes has a new item, When CI hook is called — never feed.item@1 (the kit's triggerWords with your feeds, webhooks and mailboxes, read once signed in). An automation fed by what arrives is no longer "SCHEDULED · no next run": its card reads listening · last: today 15:13 with a listening pill, its list row runs when something new arrives · last: today 15:13, its next run when something new arrives. The mail trigger is recognised by its id (email.received), and the gateway's served schedule_rule_text is used for schedules only (it serves the source id for the others).
  • What arrived, above each run's task. For an automation fed by mail, a feed or a webhook, the Automations page reads each run's input_data.event once (GET /runs/{id}/input_data) and the run shows a card Release notes · 1 new item: “Release 0.13” · 15:13 above its task; the run's meta line reads Run #1 · something arrived · today 15:13; when the run's text is the runtime's framing of the task, the turn shows the task alone and the raw text — the [Trigger …] header, the framed events, their JSON — sits behind What the agent received. Schedules and by-hand runs are never read.
  • No jargon in the person's view. The empty list says No automations yet. Make one in Flow, or press New automation.; the empty detail Select an automation to read its runs, change it, or talk about a result. The automation's header names the flow (Flow: Release digest, from the gateway's list) instead of Release-digest@0.0.0:4dee0431, offers Browse its files instead of the folder path, and drops the revision; all three are under Details. The cards no longer print the workspace policy; the open automation folds it under Workspaces. run #1 replaces "occurrence #1" (Board, agent page, run chips, "next run at"); conversation replaces "session" (Context help, the discussion's intro and notice — which no longer prints paths); flow replaces "workflow" in Launch (Choose a flow, Choose a flow above to set its inputs., the mode help).
  • New automation lists flows that run by themselves. A flow made in AbstractFlow with its own trigger declares no interface; the picker now lists it from its automation settings on /bundles as Python digest · When Python news has a new item, and picking it preselects Use the flow's trigger. The Edit form's picker names flows the same way.
  • Edit and Board without ids: the Edit form's Flow shows the flow's name, the workspace chooser is folded under Workspaces while editing too, a run of a titled automation reads run #1 on the Board (no Python-digest 0.0.0), Details carries no revision on its title, and the Edit hint no longer says "never fires past ticks".
  • Run card: no empty Trigger bubble, the answer's time reads like the run's ("today 17:29"), a console test reads Test event (ui-kit 0.8.8); the list's title Automations is never cut (the status filter gives way).
  • New automation form in plain words: no "Incomplete email trigger." before anything is typed (the gateway's sentence shows once there is one); no "fetch_url, browser_probe", "(UTC; empty = now)", "Stop at (UTC)", "Use Context input" or "Workflow bundles" — First run / Stop on are typed in the browser's clock (stored as UTC, as before), the mail hint says "Tools that open links always ask for your approval first", and the .flow upload/reload stays in Run once (Flow files); a feed or webhook whose last read failed is flagged "— not working" and, once chosen, says why (as AbstractFlow does).
  • The gateway's words first: the list, the panel, the Board and the agent page read the summary's served trigger_text when the gateway sends it (our own words are the fallback); the picker also lists entrypoints the gateway marks triggerable ("Runs by itself" when the row carries no trigger).