docs: record the perf commit type, pre-1.0 bump policy, and error details field

Adds perf: to the allowed commit types (release-please already maps it to
a Performance changelog section), records the pre-1.0 versioning policy so
a BREAKING footer is expected to cut a minor rather than a major, and
shows the optional error.details object in the error envelope docs.
The gitignored local AGENTS.md mirror got the same contract sync.
This commit is contained in:
Lahfir 2026-06-10 16:18:14 -07:00
parent c73beb7f6f
commit 63a1678b7e

View file

@ -48,12 +48,14 @@ Cross-platform Rust CLI + MCP server enabling AI agents to observe and control d
- `docs:` — documentation only
- `style:` — formatting, no code change
- `refactor:` — code change that neither fixes a bug nor adds a feature
- `perf:` — performance improvement with no behavior change
- `chore:` — maintenance tasks, dependencies
- `ci:` — CI/CD changes
- `test:` — adding or fixing tests
- Format: `type: concise imperative description` (lowercase type, no capital after colon)
- Focus on "why" not "what"
- Examples: `feat: add scroll-to command`, `fix: prevent stale ref on window resize`, `ci: add binary size check`
- **Pre-1.0 versioning policy** (release-please `bump-minor-pre-major` + `bump-patch-for-minor-pre-major`): while the version is 0.x, a `BREAKING CHANGE` cuts a **minor** (0.2 → 0.3) and a `feat:` cuts a **patch**. Do not expect a major release before 1.0.
## Core Principle
@ -303,6 +305,8 @@ Error responses:
}
```
The `error` object may also carry an optional `details` object (e.g. the actionability report on an actionability failure, candidate summaries on `AMBIGUOUS_TARGET`, or the last observed state on a `wait` `TIMEOUT`).
### Serialization Rules
- Omit null/None fields (`#[serde(skip_serializing_if = "Option::is_none")]`)