Files
my-pi/pi-permission-system/docs/retro/0018-drop-tool-call-limit.md

1.7 KiB

issue, issue_title
issue issue_title
18 Drop unread special.tool_call_limit from permissions schema

Retro: #18 — Drop unread special.tool_call_limit from permissions schema

Final Retrospective (2026-05-03T01:50:00Z)

Session summary

Removed the unread special.tool_call_limit field from the permissions schema and README. Added a tolerant-loader deprecation path: normalizeRawPermission() now returns { permissions, configIssues }, and PermissionManager.getConfigIssues() surfaces deprecation messages at session start via the existing notifyWarning channel. Released as v1.1.0.

Observations

What went well

  • Unambiguous issue, clean execution. The issue body was precise (remove field, add deprecation warning, clean docs), AGENTS.md rules were clear (tolerant loader pattern), and the plan mapped directly to 5 TDD steps that executed without deviation.
  • Plan-to-code fidelity. All 5 TDD steps landed exactly as planned with no rework, scope changes, or unexpected test failures.

What caused friction (agent side)

  • instruction-violation (self-identified) — The plan commit failed markdownlint because a table cell in the plan contained unescaped pipe characters inside backtick-quoted JSON ("tool_call_limit": "allow" was fine, but a separate cell had tool_call_limit | _(schema only)_ with a bare pipe) and used underscore emphasis instead of asterisks. Fixed in one iteration before the commit landed. Impact: one failed pre-commit hook, ~30 seconds of rework.

What caused friction (user side)

  • No friction observed. The user ran /plan-issue, /tdd-plan, /ship-issue in sequence with no corrections or redirections needed.