Skip to content

Releases: uberblick-ai/ub-agents

ub-agents 0.1.15

Choose a tag to compare

@bk-one bk-one released this 07 Oct 09:25
Immutable release. Only release title and notes can be modified.
74e6b70

Upgrading: let running agents finish, or stop the launcher, before updating an
installation: in-flight runs can no longer read, report or post a retrospective
through a replaced installation, and the removed run-context files and environment
variables have no compatibility path (#314). Commit and push the starter files on
the default branch and create required trigger and transition labels before
launching; launch checks these prerequisites and ub-agents doctor lists the fixes
(#319). Consumers of doctor --json must accept version 2: each label is one
github-label:NAME result with agent: null and a uses list containing each
consumer's agent, meaning and required (#322).

Added

  • Attached terminal views let r poll GitHub immediately, including read-only queue refreshes during assignments, with cooldown and rate-limit protection (#296).
  • Interactive init offers runtime permissions for all starter agents, and doctor groups agents missing permission arguments into one warning (#321).
  • doctor offers to create missing workflow labels after confirmation and reports each label once with all its uses (#322).

Changed

  • Pressing q stops new claims and lets running work finish reporting and cleanup; the terminal view shows shutdown progress (#311).
  • In-run read, report and retrospectives validate a shared pinned context before contacting GitHub, preserving the launcher's trusted-input policy (#314).
  • launch checks committed and pushed starter files and required labels, explains idle queues, and points missing configuration to init (#319).
  • Starter setup adapts to existing project guidance, uses project-neutral review priorities and decision authority, and lists the remaining setup steps (#324).
  • CLI help groups operator and in-run commands, shows compact command usage and errors, and provides -v as a version alias (#327).

Fixed

  • Continuous runs reuse cached GitHub inputs to reduce reads, while repository comment caches retain only the configured lookback window (#312, #313).
  • Terminal view refreshes stop during screen teardown, preventing widget errors when closing attached or standalone views (#319).

ub-agents 0.1.14

Choose a tag to compare

@bk-one bk-one released this 06 Oct 21:20
Immutable release. Only release title and notes can be modified.
4ec5bb1

Upgrading: stop all of this repository's launchers and restart them together
on the new build before adopting shared-instructions. Other projects need no
configuration changes, and loop text in their AGENTS.md can be removed after
upgrading (#306). --option needs no coordinated restart, but submitting it
requires the updated report command and guidance (#288).

Added

  • Projects can share loop policy across roles with optional shared-instructions, reloaded before work is claimed (#306).
  • Stop reports accept numbered --option alternatives, and action-needed notices show resume instructions above folded reasoning and evidence (#288).

Changed

  • init preserves project guidance files; launchers supply loop rules, and starter roles follow project guidance for changelog entries (#276, #306).
  • Starter integrators return fixable check failures to implementers; starter implementers and reviewers reject checks that pass only after changing the environment (#268).
  • Run scratch and TMPDIR now live at $XDG_STATE_HOME/ub-agents/<owner>/<repo>/runs/<run>/scratch, defaulting to ~/.local/state, outside the target checkout (#255).
  • Continuous launch keeps planning during assignments; Eligible shows the next ten items in claim order with counts and colored priority words (#248).
  • Recent activity colors success and failure icons and status labels green and red, preserving row dimming and cursor highlighting (#257).
  • Runs tab rows stay on one line with denial counts; successful reports show a spinner until accepted or a failure icon after their lease ends unaccepted (#284).

Fixed

  • Blocked PR runs become eligible when their head changes after reporting, subject to the existing pickup gates, attempts and backoff (#293).
  • Work sections stay expanded, and mouse clicks and keyboard navigation select only item rows, leaving headers and the idle line unselectable (#303).
  • Completed issues and PRs leave Needs attention after released retry or blocked runs, including selected rows, while unresolved obligations remain visible (#227).
  • Formatted Codex logs keep oversized events readable and show compact notices for incomplete records and page boundaries, preserving Raw access (#259).

ub-agents 0.1.13

Choose a tag to compare

@bk-one bk-one released this 06 Oct 07:46
Immutable release. Only release title and notes can be modified.
15365d8

Upgrading: stop all project launchers and wait for them to exit. While stopped,
update custom role files and stop-report command runtimes to include --action,
then upgrade and restart launchers together (#181). Add retrospectives boards to the
configuration only once every launcher runs 0.1.13: older launchers reject the key (#207).

Added

  • Agents can post retrospectives to configured discussion boards with the launcher's retrospective --body-file PATH command, which verifies the target URL (#207).
  • Clicking the selected item's header reference opens its GitHub issue or PR in the default browser on every terminal-view tab (#260).

Changed

  • Stop reports require --action for each independent ask; human-action notices collapse full reasoning, evidence and resume instructions in GitHub and terminal views (#181, #195).

Fixed

  • The Work pane leaves one blank row before displayed Needs attention and Eligible headings in both wide and narrow layouts (#258).

ub-agents 0.1.12

Choose a tag to compare

@bk-one bk-one released this 05 Oct 13:18
Immutable release. Only release title and notes can be modified.
e4cb8df

Upgrading: the coordination record format is unchanged, so launchers can be
upgraded one at a time. Add trusted-bots to the configuration, and point role
instructions at read N, only after every launcher runs 0.1.12: older launchers
reject the key and have no read command (#190).

Added

  • Agents can read filtered issues and PRs with read N, and projects can trust configured bot feedback with trusted-bots (trusted bots, #190).
  • Needs attention items have an Unblock tab showing trusted action-needed comments from the session snapshot or an explicit GitHub load (#178).
  • Completed Claude runs record permission denials in their outcomes, with counts in status and command details in the Runs tab (#199).

Changed

  • PR pickup after outside title or body edits requires a maintainer start or approval record, including trusted-authored PRs; approving reviews no longer clear edits (#190).
  • The terminal view uses a consistent theme, rounded pane titles, colored work sections, numbered tabs, a formatted/raw indicator and a repository window title (#164).
  • The Work pane grows with terminal width at 110×32 and above, with padding inside and between panes and a blank row between two-line items (#213, #231, #234).
  • Below 110×32, the terminal view shows one full-width pane, with Enter/Esc navigation and retained selection and log position across resizes (#177).
  • Running shows only this launcher's assignment; dependency and milestone waits are hidden, with retry backoff and paused-runtime plans following ready work in Eligible (#172, #173).
  • Eligible lists each item once with all its eligible agents, and Needs attention rows show waiting time, agent, state and parking reason (#180, #233).
  • Quitting an attached terminal view with q interrupts the launcher like Ctrl-C, and a graceful stop after SIGTERM shows the finishing run and held work (#176, #182).
  • Codex JSON run logs show compact assistant messages, command and tool activity, failures and completion in the terminal view (#126).
  • doctor shows warnings and failures with area summaries by default; --verbose retains the full per-check list (#191).

Fixed

  • Formatted Claude logs skip cut-off first records, show tool progress as elapsed time and align timestamps; assistant text in Claude and Codex logs is readable without dimming (#192, #232).
  • Item comments fold every agent's superseded candidate records and withdrawn election losers, while preserving current candidates and parking explanations (#214).
  • Eligible drops stale carried rows during partial passes while preserving open Needs attention rows until replanning or pass completion (#235).
  • The Work pane spinner animates at the same rate as the Runs tab and log status line (#217).
  • The terminal view distinguishes PRs with accent-colored ⌥ markers, including Recent activity rows and their linked PR handoffs (#174).

ub-agents 0.1.11

Choose a tag to compare

@bk-one bk-one released this 04 Oct 20:42
Immutable release. Only release title and notes can be modified.
b497d06

Upgrading: stop all of a project's launchers and wait until every one has exited,
before upgrading any; upgrade and restart them together. Claims now use renewed
30-minute leases, newer builds read only v3 coordination records, and older builds
reject {report_command} configurations (#131, #132, #198). Old coordination records
stop being read, resetting blocked and exhausted state and attempt counts; before
restarting, remove the trigger label or add a stop label on every item that should
stay held (#132, #137). In Claude --allowedTools, replace Bash(ub-agents *) with
Bash({report_command} report *) (#198). Delete leftover ub-agent/… branches and
the .ub-agent/ directory (#137). Approvals now default off for private and internal
repositories; set approvals: on to retain the previous checks (#134).

Added

  • Interactive launches open a read-only terminal view of work, context, outcomes and runtime logs; --no-ui keeps plain output and q closes only the view (#114, #116).
  • Every install, including Homebrew and checkouts, includes the terminal view and its Textual dependency (#116).
  • On request, the view loads a selected item's missing description from GitHub, with cached results and rate-limit cooldowns (#115).
  • Every launcher publishes a private, bounded session snapshot under .ub-agents/sessions/ for the view, without extra GitHub reads (#113).
  • ub-agents help [COMMAND] provides a compact overview and detailed help with usage and examples, available without project configuration (#143).
  • Projects can configure outside-input approvals with approvals: on or off, defaulting from repository visibility; disabled approvals include only feedback from authors with write or higher (#134).
  • Runtime arguments accept {scratch} to grant access to each run's private scratch directory; assignment context supplies its absolute path as scratch (configuration, #124, #194).
  • Launchers show an update banner with upgrade or restart instructions when a newer release or control-checkout code is available (#183).

Changed

  • Configuration commands accept --config before or after the command; approve and retry take positional numbers, retaining deprecated --number for one release (#130).
  • retry defaults to the first configured agent whose kind applies and prints the selected agent before acting (#130).
  • Claims now last 30 minutes and renew every 10 minutes while owned, allowing pickup after a launcher dies without changing agent timeouts (#131).
  • Runtime usage pauses start only when a run reports a limit, remain in launcher memory, and appear only in launch output (#135).
  • Coordination reads only v3 records (#132).
  • The Runs tab shows each item's filing and run history across launchers, with relative times, hosts, outcomes and visible omission counts (#179).
  • Every terminal-view tab shares an item header; Log shows run status and earlier runs, with byte and retention diagnostics under raw access (#162).
  • The terminal view uses a one-line activity footer, contextual keys and optional log-state pill; ? lists keys and p shows diagnostics (#161).
  • The terminal view's Issue tab renders description bodies as Markdown with real line breaks, while keeping links and terminal controls inert (#165).
  • Claude logs use compact local timestamps, tool calls, line counts and distinct errors in the terminal view, with raw records available on demand (#163).
  • The terminal work list groups Running, Needs attention, Eligible and Waiting items with counts, above a fixed lower half listing recent outcomes (#159, #171).
  • Live terminal work rows show two compact lines with status glyphs, titles, ownership and counts; full reasons stay on the Issue tab (#160).

Removed

  • The ub-agents recover command is removed; short leases let launchers recover expired claims automatically on any host (#131).
  • Compatibility with the old ub-agent command, configuration, environment, coordination markers and artifacts is removed; only ub-agents names remain (#137).
  • The 90% runtime usage pause and shared pause state are removed, along with pause reporting in status, doctor and status --json's runtime_pauses (#135).

Fixed

  • Agents report through the launcher's own installation regardless of PATH; incompatible record formats direct agents to that command instead of a missing-lease error (#198).
  • Terminal work rows and their cached details stay visible while polling; completed passes remove omitted rows and apply the new planned order (#166).
  • The terminal view follows newly started launcher runs until a row is selected, preserves selection when rows move, and opens raw log access safely during updates (#189).

v0.1.10

Choose a tag to compare

@bk-one bk-one released this 03 Oct 19:53
5c400f1

Upgrading: stop all of a project's launchers, wait until every one has exited,
upgrade, then start them together. Never mix releases within a project: older
launchers don't read the new record markers or branch names, and launchers on
different GitHub accounts now share one queue. This release renames the tool to
ub-agents. Rename ub-agent.yaml to ub-agents.yaml, add .ub-agents/ to
.gitignore and pull it into every control checkout before starting, and update
role instructions, command allowlists and hooks that call ub-agent or read
UB_AGENT_* (now UB_AGENTS_*). After the old launchers stop, remove their
worktrees and the old .ub-agent/ directory. Claude and Codex runs now pause at
90% of a usage window until it resets; daily runtime updates are opt-in.

Added

  • ub-agents launch N [--agent NAME] runs or recovers one specific item under
    normal eligibility gates, using the first eligible configured agent or the named
    agent. It reads only the item's required inputs, skips queue ranking, and explains
    ineligible work with status reasons and a nonzero exit (#127).

  • Each run gets a private scratch directory with mode 0700, exposed as
    UB_AGENTS_SCRATCH and TMPDIR. Setup fails visibly if it cannot be created;
    confirmed process termination removes scratch while preserving run logs.
    Scratch removal failures retain remaining files and produce a diagnostic without
    blocking lease release or marking process termination unconfirmed.
    Agent guidance and runtime-access documentation cover its use (#124).

  • Opt-in daily Claude Code and Codex maintenance at unclaimed launcher boundaries,
    with installation detection, targeted updates, shared local cooldowns and locks,
    active-run protection, concurrent start reservations and health recovery
    without retrying updates. Opt-out and automatic-policy skips leave other
    projects' shared cooldowns untouched. This repository enables
    runtime-updates for both CLIs (#118).

  • Launchers pause Claude and Codex runs at 90% usage or a reported usage limit,
    until the window reset plus one minute, with a 15-minute fallback for untrusted
    resets. Limit failures retry without attempts or backoff; alternatives remain
    eligible and paused-only items wait. Local pause state in .ub-agents/runtime-usage/
    appears in status and doctor; status --json now returns assignments and
    runtime_pauses.
    Launchers remove their state on exit and prune abandoned local state at startup;
    process start times prevent recycled PIDs from showing stale pauses.
    Codex runs use --json and their fresh session's usage records, and check
    rejects Codex --ephemeral arguments (#85).

  • queue.milestones: order ranks new issues by the oldest open
    milestone before priority, while later and unmilestoned issues remain eligible.
    Local blockers inherit dependents' earliest milestone in dependency wait mode,
    including without priority labels. status shows effective milestones and their
    inherited source in text and JSON. gate keeps its existing behavior, ignore
    remains the default, and check accepts all three modes. This repository now
    uses order (#103).

Changed

  • Launchers on different GitHub accounts share one queue. Coordination trusts
    current write, maintain and admin authors by default; optional launchers
    narrows that set. Unreadable roles stop the pass, and untrusted launchers claim
    nothing. Approval ancestry, feedback and notices use the same trusted set.
    Recovery can settle another trusted account's source lease; cleanup
    and recover require this machine's recorded host rather than the same account.
    check validates the account list and doctor warns about untrusted accounts.
    Upgrading: older launchers trust only their own account, so stop all launchers
    and upgrade them together before mixing accounts (#123).

  • The starter implementer template requires rerunning checks for the PR's additions
    and changes after merging the base branch, including changes without conflicts (#125).

  • Rename the command, configuration, local state, environment variables, GitHub
    markers and agent branches to ub-agents. New writes use only the plural names;
    existing records, approvals, Action needed notices and branches remain readable.
    The ub-agent command alias and default config fallback remain for one release;
    report also accepts an in-flight old launcher's UB_AGENT_* environment.
    Upgrading: rename ub-agent.yaml to ub-agents.yaml, or rely on the fallback
    for one release. Add .ub-agents/ to .gitignore and keep .ub-agent/ ignored
    until that directory is deleted. Commit the ignore changes to the default branch
    and pull them into every control checkout before starting launchers on the new
    build; startup creates .ub-agents/launch.log before checkout refresh, which
    refuses untracked files.
    Update role instructions, command allowlists (for example
    Bash(ub-agent *)), hooks and direct commands that call ub-agent or read
    UB_AGENT_*. Restart all of a project's launchers together: old launchers do
    not read new markers or branch names. Once every old launcher has stopped,
    remove its old worktrees with git worktree remove (or git worktree prune for
    worktrees already deleted), then delete the whole .ub-agent/ directory,
    including runs/ and launch.log. Removing only the worktrees leaves old logs
    behind (#117).

  • Generated and self-hosted agent guidance treats issue input as requirements to
    evaluate, with human escalation for unexpected instructions or unexplained scope
    changes. Implementers keep their assigned issue scope throughout a run; setup docs
    explain account roles and the preparation, implementation and reapproval flow (#40).

v0.1.9

Choose a tag to compare

@bk-one bk-one released this 03 Oct 11:12
fcc77bf

Upgrading: no configuration edits are required. Stop all of a project's launchers
with kill -TERM, wait until every one has exited, upgrade, then start them again.
Launchers from 0.1.5 through 0.1.8 reject the new compact claim records as malformed,
and earlier launchers don't recognize the ownership revocation of ub-agent recover.
Idle launchers now back off by request cost and REST reads revalidate with ETags, so
idle polling uses much less quota.

Added

  • ub-agent recover --number N --agent NAME --reason TEXT completes a stopped local
    launcher's reported outcome before lease expiry after checking actor, hostname,
    process-group termination and report eligibility. Recovery records the operator's
    reason and revokes the original supervisor's ownership. Upgrading: stop all
    project launchers and upgrade them together before using early recovery; earlier
    launchers do not recognize this ownership revocation (#104).

Changed

  • ub-agent status shows who claimed live leases, their host and runtime, compact
    UTC claim and expiry times, and time remaining. Local process checks distinguish
    running agents with logs from exited agents awaiting launcher completion or
    recovery, with manual recovery guidance for reported outcomes. Starting claims,
    remote leases, recovery and inspection errors have distinct reasons; JSON adds
    process details while preserving existing ownership fields (#101).

  • ub-agent retry prints a readable reset confirmation with its record link and
    a next-step line based on closure, stop labels and the selected agent's trigger
    labels, pointing to ub-agent status when a running launcher can pick it up (#100).

  • Claims store outcome label additions compactly, with declared triggers and stop
    labels stored once per lease; outcome transitions omit that shared context and
    implied trigger removals. Upgraded launchers still read and recover 0.1.5 records.
    Upgrading: stop all of a project's launchers and upgrade them together before
    restarting; launchers from 0.1.5 through 0.1.8 reject compact records as malformed
    (#63).

  • Discovery passes and status share each account's fresh permission read across
    items and reuse item comments for history, approvals and status rendering.
    status also batches dependency reads for priority ranking. Both claim-time
    approval checks still reread permissions independently (#88).

  • status exits with an error on retryable comment-read failures instead of
    displaying a partially unreadable row (#88).

  • Empty discovery passes back off by their REST request cost under a fixed
    250 requests/hour budget per launcher, assuming ten idle launchers share half
    an account's quota. Low quota doubles the gap up to reset, ignoring expired
    quota observations, with a one-hour cap; work resumes normal pacing, and idle
    messages print only on state changes (#83).

  • GitHub REST reads revalidate in-memory responses with ETags. Unchanged reads
    confirmed by 304 Not Modified preserve fresh ownership checks without using
    REST quota or extending the idle polling budget; writes and GraphQL remain
    unconditional. Moving since cursor queries skip the ETag cache so discovery
    polls do not accumulate unused responses in memory (#86).

  • Launcher and status startup scans read repository comments from the longest
    configured lease plus seven days, then continue incrementally. PR shared-branch
    ownership reads the issue named in the branch directly; cleanup keeps its full
    scan. Re-apply a trigger or stop label to surface older unfinished outcomes (#87).

v0.1.8

Choose a tag to compare

@bk-one bk-one released this 02 Oct 23:05
b3f866f

Upgrading: no configuration edits are required. kill -TERM each launcher, upgrade,
restart. Claiming polls now cost a few requests when nothing changed instead of one
read per triggered item, and GitHub rate limits pause the launcher until the reset
instead of stopping it. poll-seconds is now the minimum gap between polls, also after
a run.

Changed

  • poll-seconds is the minimum gap between discovery-pass starts, including
    after runs. Claiming polls evaluate candidates lazily and reuse unchanged
    per-item discovery reads in memory, while claims and approval parking still
    revalidate fresh GitHub input. Cold priority ranking lists dependency links
    in pages instead of reading every issue separately (#79).

Fixed

  • Continuous launch waits out GitHub rate limits without charging poll failures or
    item attempts. Rate-limited reads from claim through release and recovery retry
    while the lease permits, with interruptible waits capped at one hour. doctor
    reports request quota and reset time from real response headers and warns below
    10% remaining or when rate limited itself (#80).

Install or upgrade: brew install uberblick-ai/tap/ub-agents or brew upgrade ub-agents.

v0.1.7

Choose a tag to compare

@bk-one bk-one released this 02 Oct 22:12
1cb5e6a

Upgrading: no configuration edits are required. kill -TERM each launcher, upgrade,
restart. Items held only by the approval gate now get the project's stop label and an
Action needed comment (#66).

Changed

  • launch parks open, triggered items whose only pickup obstacle is missing
    maintainer approval with the configured stop label and one Action needed notice
    explaining how to start or reapprove them. Repeated polls leave the same gate
    alone; the next claim minimizes its notice. Parking writes are advisory and
    status remains read-only (#66).

Fixed

  • Assignment context passes other agents' accepted outcome summaries as trusted
    feedback, so revisions receive routing corrections such as an integrator's
    changelog request without repeating outcomes already handled by the agent (#77).

Install or upgrade: brew install uberblick-ai/tap/ub-agents or brew upgrade ub-agents.

v0.1.6

Choose a tag to compare

@bk-one bk-one released this 02 Oct 15:43
43daa52

Upgrading: agents now work only on issues and PRs that a maintainer (maintain or
admin) started by applying a trigger label. After an outside edit or push, a
maintainer re-applies the label or runs ub-agent approve --number N. Give the launcher
account write only; doctor warns if it can start or approve its own work. check
now rejects Claude runtime-args that set --output-format. Upgrading from 0.1.5
needs no coordinated stop: kill -TERM each launcher, upgrade, restart.

Changed

  • The launcher enforces maintainer starts and outside-input approvals for every
    issue and PR run, including preparation. Failed pickup or post-claim checks park
    work without spending attempts; agent context includes only trusted or cleared
    feedback. Outside PRs require an approved head, with accepted agent revisions
    in the base repository inheriting eligibility; changed fork heads need explicit
    maintainer approval. ub-agent approve accepts PRs, pins their head and clears
    outside comments, reviews and review comments (#39).

Fixed

  • Agent prompts and check-running roles require a single session that is never
    resumed: finish checks in the foreground or wait for every background job,
    then end the run with ub-agent report (#70).
  • Agents with different-runtime-from use only their first configured runtime when
    the PR's current head has no accepted report from the named agent, blocking if that
    runtime's CLI isn't installed. Pending handoffs wait for acceptance and successful
    source release or recovery; identified sources retain the independence checks (#61).
  • Claude runs record tool calls, tool results and the final result, including
    permission denials, in process.log using verbose streaming JSON. check rejects
    Claude runtime-args that override --output-format (#68).

Install or upgrade: brew install uberblick-ai/tap/ub-agents or brew upgrade ub-agents.