Skip to content

AIMEAT 1.17.0 — Tasks triage, Quality tab & per-agent concurrency

Choose a tag to compare

@miikkij miikkij released this 01 Jun 19:53
· 303 commits to main since this release

Everything since v1.15.0 (1.15.1 → 1.17.0). Companion: aimeat-crewai 0.3.8 on PyPI (separate tag).

[1.17.0] - 2026-06-01

Agent Tasks tab triage — long task lists are split into three buckets so the
working set stays small without pagination, plus on-demand search and a per-task
view of the memory entries a task produced. Full design:
docs/plans/agent-tasks-triage-plan.md.

Added

  • Triage buckets — the Tasks tab now has Recent (non-terminal + recently
    finished), Keep (manually pinned), and Archive (manually archived +
    auto-archived old terminal tasks), each with a live count. Per-task Keep /
    Archive / Restore
    actions. One field triage ('kept'|'archived'|null) on
    AgentTaskRecord (SQLite + MongoDB); PATCH /v1/agents/{name}/tasks/{id}/triage.
  • On-demand search — a 🔍 toggle reveals a search box (title + description)
    plus time chips (Today / 7d / 30d / All). GET /v1/agents/{name}/tasks gained
    bucket, q, updated_after, updated_before params and returns per-bucket
    counts for the tab badges. No pagination — buckets + search handle length.
  • Auto-archive node config (admin Config tab) — tasks.auto_archive
    (default on) and tasks.archive_after_hours (default 24): un-triaged terminal
    tasks fall to Archive once older than the window. AIMEAT derives buckets from
    these; off = tasks stay in Recent until archived manually.
  • Per-task memory entries — the expanded task lists the memory entries that
    belong to it: entries tagged task:<id>, the task's deliverableKey, and the
    live-status key prefix (agents.<name>.tasks.<id>.), deduped by key. Each entry
    is collapsible, and JSON values render as a structured key/value tree
    (indented nested blocks, type-coloured values) rather than raw text. (A
    tagging-aware runner populates the task:<id> entries; until then the
    deliverableKey + live key show.)

Changed

  • Blur-title eye is hover-only in the Tasks list — the per-task "hide title"
    toggle now appears on row hover/focus instead of always being visible,
    de-cluttering long lists; rows whose title is already hidden keep their eye.

Fixed

  • No more empty flash on live updates — tabs that refetch on the live-update
    signal no longer blank-then-repaint; they swap fresh data in place (first mount
    still shows the loading state, via a showSpinner option on the loaders).
    Applied across the agent Quality, Activity, Agent Config, Services tabs, the
    profile Knowledge, Packages, Notifications tabs, and the admin Memory,
    Stats, Packages, Cortex, Sharing Groups, Agent Tasks
    tabs.

Companion

  • aimeat-crewai 0.3.8 (PyPI, versioned independently via the
    aimeat-crewai-v* tag) implements the worker pool that consumes the
    max_concurrent_tasks config from 1.16.2: run_crew_daemon runs EXECUTE tasks
    on a bounded thread pool, each with its own liaison/MCP, reading the value from
    the integration kit. Default 1 = serial (unchanged).

[1.16.2] - 2026-06-01

Follow-on to the Quality tab (1.16.0): an owner-facing way to rate from the UI,
richer rating metadata, and a new per-agent runner-concurrency config.

Added

  • max_concurrent_tasks per-agent runner configPATCH /v1/agents/{name}/max-concurrent-tasks (1–20, default 1) and an editable
    number field at the top of the agent Tasks tab. Default 1 = serial (safe
    for any engine, backward-compatible); higher values require a runner that can
    process tasks in parallel (e.g. a CrewAI daemon with a per-task liaison/worker
    pool). AIMEAT only stores and exposes the number — it does not enforce
    concurrency server-side. The runner reads it from the integration kit's
    watchdog_spec.max_concurrent_tasks; the field is also on the agents list
    (max_concurrent_tasks). Persisted on AgentRecord (SQLite + MongoDB).
  • Owner "Rate deliverable" control — completed (done) tasks now show a
    Rate / Re-rate button in the Tasks tab (next to the deliverable) and in a
    new "Rate deliverables" list on the Quality tab (unrated first). Opens a
    shared modal (1–5 stars, context, source-grounded flag, comment) that calls
    POST /v1/agents/{name}/tasks/{id}/rate; the per-context rollups refresh on
    submit.
  • Optional metadata on a rating — free-form evaluation context
    (temperature, top_p, max_tokens, tokens, cost, …) stored on the rating for
    later slicing (size-capped at 4 KB serialized).

Fixed

  • Quality tab custom metrics are now read from the agent's GAII namespace
    (where an agent's own memory writes land) instead of the owner GHII, so
    agent-published agents.<name>.statistics.custom.* entries actually surface.

[1.16.0] - 2026-05-31

Agent Quality tab — per-context peer/owner reviews of task deliverables,
turned into a quality picture alongside recomputed performance statistics.
Reviews attach to tasks (not the work/actions system) and carry a quality
context dimension, so an agent's strengths and weaknesses surface per area
(e.g. creative: 4.5★ / factual: 2.1★). Full design and rationale:
docs/plans/agent-quality-tab-plan.md.

Added

  • POST /v1/agents/{name}/tasks/{id}/rate — review a completed (done)
    task's deliverable with a 1–5 star rating and a context
    (factual/creative/code/planning/summarization/research/communication/other).
    Authorization: the task's owner, or a same-owner agent (e.g. a parent
    orchestrator that delegated the work) — an agent cannot rate its own
    deliverable. Logged as a rating task event.
  • Source-grounding hard gate — for the factual family
    (factual/research/code/summarization) an agent rater must set
    source_grounded: true (the rating was checked against the inputs/sources),
    otherwise the request is rejected with 422 GROUNDING_REQUIRED. Human owners
    are exempt; creative accepts an output-alone craft rating. Stops stars from
    rewarding confabulation over faithfulness.
  • GET /v1/agents/{name}/statistics — recomputes a performance rollup (task
    counts, success rate, completion durations by context) and a per-context
    review rollup (stars, distribution, variance, low-confidence flag below n=10,
    rater mix, per-model slice) from the agent's tasks — anyone can recompute,
    so the result is not forgeable. Written to the owner's public cache keys
    agents.<name>.statistics.performance / .reviews, and surfaces any custom
    metrics published under agents.<name>.statistics.custom.*.
  • Quality tab in the expanded agent view (profile → Agents → agent →
    Quality) — performance cards + durations by context, per-context star bars
    with sample size and a low-confidence flag, and a custom-metrics list. Quality
    reads statistics + reviews; the existing Activity tab (event log / pulse)
    is unchanged.
  • Optional metadata on a rating — free-form evaluation context
    (temperature, top_p, max_tokens, tokens, cost, …) stored on the rating for
    later slicing (size-capped at 4 KB serialized). evaluated_model is a
    first-class field so stars are not compared blindly across model changes.
  • AgentTaskRating on the task record (SQLite + MongoDB), surfaced on the
    AgentTask API schema.

Notes

  • New E2E suite test/e2e-agent-quality.ts (15 checks: happy paths, grounding
    hard gate, self-rating + non-done + validation rejections, rollup, public
    cache) — green on SQLite and MongoDB.

[1.15.1] - 2026-05-31

Added

  • Cooperative task cancellation — owners can Cancel an active/stalled
    task from the Tasks tab. It writes an owner-scoped agents.cancel.task.<id>
    marker (a same-owner runner self-skips before its next kickoff) and natively
    pauses an active task for immediate effect — a circuit breaker for abandoned or
    over-delegated subtasks. (The aimeat-crewai daemon honours the marker as of
    its 0.3.7 release.)
  • aimeat-agents.js browser library — commission and observe AIMEAT agents
    from a web page (new served lib-agents.js helper + demo HTML).

Fixed

  • Integration tab no longer flashes on live updates — a showSpinner option
    on its loader stops the tab from re-rendering its loading state every time
    server-side data changes (first mount still shows it). (Extended to the rest of
    the tabs in 1.17.0.)