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

35 lines
1.7 KiB
Markdown

---
issue: 18
issue_title: "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.