Skip to main content
history.json is the local audit log for a Buttons workspace. It records two kinds of changes:
  • command-driven changes, like buttons create, buttons install, buttons update, buttons delete, and rollback
  • file-hook changes, like editing button.json, main.sh, AGENT.md, drawer.json, buttons.json, or buttons-lock.json directly
.buttons/
  buttons.json
  buttons-lock.json
  history.json
  buttons/
  drawers/

Event shape

{
  "schema_version": 1,
  "events": [
    {
      "at": "2026-06-28T18:42:10Z",
      "action": "install",
      "target": "button:slack-sync",
      "source": "git+https://github.com/autonoco/autono-buttons@main",
      "from_version": null,
      "to_version": "1.2.4",
      "from_hash": null,
      "to_hash": "sha256:4f8c...",
      "status": "ok"
    }
  ]
}

Actions

History should record:
ActionCause
createA button or drawer is created.
editA tracked button, drawer, manifest, or lock file changes.
deleteA button or drawer is removed.
installA registry or source installs a button.
updateAn installed button resolves to a newer version/hash.
rollbackA button is restored to an earlier locked version.
resolve_failedRegistry/source resolution fails.

File-hook tracking

Commands should write explicit history events when they mutate state. File hooks should catch manual edits and agent edits that happen outside a Buttons command. The watcher should track:
.buttons/buttons.json
.buttons/buttons-lock.json
.buttons/buttons/*/button.json
.buttons/buttons/*/main.*
.buttons/buttons/*/AGENT.md
.buttons/drawers/*/drawer.json
The watcher should ignore runtime and secret-bearing files:
.buttons/history.json
.buttons/buttons/*/pressed/**
.buttons/drawers/*/pressed/**
.buttons/batteries.json
.buttons/webhook.json
.buttons/idempotency/**
.buttons/queues/**
For each file-hook event, Buttons can compute a before/after content hash and append one debounced edit event.

Commit policy

Commit:
  • .buttons/buttons.json
  • .buttons/buttons-lock.json
  • authored button and drawer files
Do not commit:
  • .buttons/history.json
  • pressed run history
  • batteries or webhook config
The lock file gives the team shared reproducibility. history.json gives each machine local auditability.