* feat(schedule): unify task creation and editing
* refactor(schedule): remove obsolete editor helper exports
* fix(schedule): address unified editor review
* fix(schedule): avoid a conflict notice during save refresh
* test(schedule): use unified editor in zoom picker checks
* fix(schedule): preserve drafts through conflict recovery
* docs(schedule): match the linked-session control labels
* fix(schedule): restore the latest linked session after conflicts
* docs(schedule): clarify unsaved draft lifetime
* fix(schedule): align conflict feedback with the detail layout
* fix(schedule): fit editors to pane width and guide empty fields
* fix(schedule): preserve task list and complete field examples
* fix(schedule): keep required-field feedback in the editor
* fix(schedule): align editor content and action gutters
* fix(schedule): wrap localized actions in narrow editors
* perf(session): send one projection frame per committed event
* fix(session): deliver keys changed before a drive failure; address review
* perf(session): carry projection frame changes as key and val entries
Add imageOffloadCountQuantum (default 10) so a saturated route rewrites its
request prefix once per ten new images, cite the Azure OpenAI 50-image limit
for the default, report the overflow without naming both bounds, split the
adapter count test, and add an upgrade guide.
Refs #7605
Add a per-route maxRequestImages bound (default 50) to the pi-ai request-image
budget. A history with more retained images now fails with
IMAGE_OFFLOAD_REQUIRED so dsh-compaction-image-offload offloads the oldest
images, instead of the provider rejecting every later request.
Refs #7605
A new Agent Note owns the shipped defaults and the original apply_patch note
keeps its opt-in decision with a supersession link; the policy README, the
tool-catalog note, the filesystem page, and the fs group README state the
current defaults without evaluation figures. The PTC overlay sets
`applyPatch: false` so the SDK and Desktop PTC tool sets match without a
parity exception; the fixed-budget compaction scenarios pin the tool set in
their live patches too; the apply-patch composition drops its no-op override.
The upgrade guide scopes the change to base-backed profiles, the README
refusal example is one every composition can produce, the integration suite
names its deployments by guard, and the keyless SDK smoke edits a file the
model never read through the shipped profile.
Takes master's re-recorded plan-review, creation-recommendations, and
plugin-recommendations scenarios from the base and refreshes their headers
and schema sidecar for the enabled apply_patch tool.