# Changelog

## 0.4.0 — 2026-09-05

### Changed

- `issue`, `pull`, and `build` `list` actions with an explicit `project` now work even when the current repository has no OneDev remote: the query runs against a temporary scratch remote that is created and removed for the call.
- Refreshed development dependencies (pi packages 0.85.1, typebox 1.3.27).


## 0.3.0 — 2026-09-05

### Changed

- `issue`, `pull`, and `build` `list` actions now return a one-line-per-item digest instead of raw JSON (raw list items embed full Markdown descriptions); pass `full: true` for the raw payload. Digests fetch internally up to 512 KB; larger or non-JSON payloads fall back to the normal bounded raw output.
- Query parameter descriptions now include common OneDev query examples (`open`, `submitted by "user"`, `Assignees is "user"`, `order by`), so most queries no longer need the 8–11 KB grammar dump from `query_description`.
- `onedev_context` gains `list_projects` to discover accessible projects without activating a domain tool; it works from any repository once TOD is configured.

### Fixed

- One-shot watch notifications can no longer be lost when the emission consumer throws.
- Watch polls record `lastError` (visible in `onedev_watch list`) instead of failing silently, and clear it on recovery.
- Pull-attention watches read state only from top-level fields, so a nested build status can no longer masquerade as the PR state and cause spurious or missed wakes.
- Watch snapshot calls are bounded to 10 seconds so one slow TOD call cannot stall other watches.

## 0.2.2 — 2026-09-04

### Changed

- Compressed model-visible tool schemas and bundled workflow prompts without changing tool names, actions, validations, or approval gates; tests now enforce schema and skill byte budgets.
- Model-visible output now defaults to 16 KB for normal results and 32 KB for PR patches, build logs, and build-spec schemas. `max_bytes` can request up to 128 KB; internal watch polling remains independent.

## 0.2.1 — 2026-09-03

### Fixed

- "Always allow" now saves one project-wide approval (`[server, project, "*"]`) instead of a single operation, so new operations no longer re-prompt after approving. Legacy per-operation entries are still honored.
- "Allow for this session" also covers every operation in the project for the session.
- Concurrent identical mutations share one approval dialog instead of opening several.
- Safer dialog default (session-wide allow) and explicit "ALL OneDev mutations" labels; Enter no longer silently picks "Allow once".

## 0.2.0 — 2026-08-26

### Security and correctness

- Remove attachment download until TOD can enforce same-origin credentials, redirect safety, bounded downloads, and non-destructive destinations.
- Treat killed TOD processes as aborts or timeouts instead of successful calls.
- Reject unknown tool parameters and standardize all multiword parameters on `snake_case`.
- Fix Cobra boolean arguments for issue confidentiality and PR auto-merge, including explicit `false`, and require a branch in branch build mode.
- Isolate local build runs with a temporary Git index and disclose/approve build-spec upgrades.

### Agent and user experience

- Split the always-active readiness/setup tool (`onedev_context`) from the domain activator (`onedev_tools`), and remove prompt metadata from deferred domain schemas.
- Add explicit readiness states, lazy authenticated health checks, coalesced context probes, and caller-isolated cancellation.
- Replace agent-supplied confirmation booleans with real Pi UI approvals scoped once, per session, or persistently by server/project/operation.
- Add code-comment reply/resolve/unresolve actions and unit-test report support with TOD capability detection.
- Add bounded, session-scoped one-shot watches for build completion and pull-request attention.

### Quality

- Add execution-level, lifecycle, approval-storage, local-index, context, and watch regression tests.
- Add Bun checks, Node 22.19/24 import smoke tests, and an opt-in read-only live OneDev smoke workflow.

## 0.1.1

- Add `/od-settings` to enable or disable the OneDev project status in the TUI footer.
- Persist the footer preference in the current session branch.

## 0.1.0

- Initial release.
- `onedev_tools` domain activator with context, login, and attachment-download actions (download removed under Unreleased for credential safety).
- `onedev_issue`, `onedev_pull`, `onedev_build` tools wrapping the TOD CLI.
- `/od-context` and `/od-health` commands; session status line with the inferred project.
- `onedev-issue-to-pr` and `onedev-pr-review` skills.
