Docs/Desktop app

Desktop app

Commit standing

Policy → Commit standing shows what each agent session's commits have cost it. A session earns a point for every commit whose staged files are all in their formatter's form (rustfmt's for Rust, the one the repository declares in .tama/formatters.json for any other extension) and loses one for every commit with a file out of that form; the commit is made either way. A session whose standing falls below zero is shown as blocked: block-negative-commit-standing refuses every tool call it makes until a charge is taken back.

Policy → Commit standing shows what each agent session's commits have cost it. A session earns a point for every commit whose staged files are all in their formatter's form (rustfmt's for Rust, the one the repository declares in .tama/formatters.json for any other extension) and loses one for every commit with a file out of that form; the commit is made either way. A session whose standing falls below zero is shown as blocked: block-negative-commit-standing refuses every tool call it makes until a charge is taken back.

#What the screen shows

  • Every scored session, blocked ones first, with its points and the rule it stands by.
  • Each charge under its session: the charge id, the repository, when it was recorded and the files that were out of their formatter's form.
  • Take back beside each charge, with the reason it was recorded in error. The product refuses an empty reason; the charge stays in the register under withdrawn and counts toward nothing.
  • Score commits made before they were scored: a repository path and a revision range as Git reads it. Each commit goes to the session whose commit call was running when Git recorded it, read from the OMP session transcripts; a commit no call or several calls cover is listed with that cause and not scored, and a commit already in the register is not scored twice.

Every action runs tama standing through tama request standing/list, standing/score and standing/withdraw, and a refusal is shown in the command's own words. The screen needs control access, as the Session screen does.