Skip to content

History tab

The History tab (4) shows the audit log — every mutation bacio recorded — newest first. One row per mutation, with timestamp, actor, op, target, and a short details blob.

2026-05-12 14:32 AEST  agent-claude  issue.create    MINI-12          "Pin tab strip" (feature=tui-polish)
2026-05-12 14:28 AEST  Geoff         issue.state     MINI-3           in_progress → in_review
2026-05-12 14:14 AEST  agent-claude  comment.add     MINI-7           tried clearing cookie, didn't help
2026-05-12 12:01 AEST  Geoff         feature.create  auth-rewrite     "Auth rewrite"

Bindings

KeyAction
j / k (or down / up)Scroll one row.
pgdown / spaceJump down 10 rows.
pgupJump up 10 rows.
g / homeJump to the top.
G / endJump to the bottom.
rReload from the database.
qQuit.

There's no overlay — the history view is read-only and flat. For richer filtering (by actor, op, target, since), use bacio history on the CLI.

What you'll see

Common op names (canonical <entity>.<verb> form — these are CRUD-flavoured verbs, not the cobra-subcommand names):

OpWhat
repo.create / .upgrade_phantomA new repo bound, or promoted from sync-only (phantom) to having a local working tree. repo.upgrade_phantom is emitted by the auto-register flow when any mutating bacio command runs in a working tree whose remote matches a phantom previously imported via sync (bacio status is read-only and doesn't trigger this).
feature.create / .update / .deleteFeature CRUD.
issue.create / .update / .state / .assign / .claim / .deleteIssue lifecycle. issue.unassign reuses issue.assign with an empty assignee. issue.claim is the atomic claim recorded by bacio issue next.
comment.addA new comment (recorded with kind=issue).
relation.create / .deleteTyped links between issues, stored as blocks / relates_to / duplicate_of.
pr.attach / .detachPull request URLs attached / removed.
tag.add / .removeTag changes.
document.create / .update / .rename / .delete / .link / .unlinkDocument lifecycle.
agent.identity.create / agent.register / agent.end / agent.claim / agent.releaseAgent registry activity. agent.claim is intent-only — it doesn't move the issue, unlike issue.claim. bacio agent heartbeat deliberately doesn't write a row.
sync.run / .init / .clone / .import / .renumber / .rename / .deleteSync activity.
demo.seedThe hidden bacio demo command (UI stress-testing seed).

Retention

History is pruned to 60 days on every DB open. The audit log is local-only — bacio sync doesn't export it to the sync repo. For longer-lived change tracking, enable git-backed sync and lean on the git log of the YAML files (every state move, edit, and rename is a commit-level diff there).

Source of truth

This page mirrors internal/tui/history.go. If the footer disagrees, the footer wins.

bacio · v0.1 · MIT