Track full dispatch completion separately for error handling and shutdown drain while allowing same-session follow-ups to steer active runs. Fixes#113180.
Co-authored-by: Taksh <takshkothari09@gmail.com>
Accept only the official OpenAI Responses SDK plain-text format and preserve strict rejection of unsupported structured outputs and verbosity.
Reported-by: @logicbridgedev
Refs: #80418
* fix(signal): escape real newlines in inbound verbose-log preview
The inbound preview regex matched the literal two-character sequence
backslash-n instead of the actual LF control character, so multi-line
message bodies kept real newlines and split the single-line log record.
Align Signal with the six sibling channels that use replace(/\n/g, "\\n").
Adds a focused test that mocks shouldLogVerbose and asserts the logged
preview stays single-line for an LF-separated body.
* chore: retrigger CI to clear stale checks
* fix(signal): escape all inbound log line breaks
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
Use the existing surrogate-safe helpers at the dreaming lead and heading boundaries. Preserve contributor investigations in #107882 and #107910.
Co-authored-by: Peter Steinberger <steipete@gmail.com>
* feat(chat): show live run telemetry across clients
* fix(chat): satisfy native validation gates
* fix(chat): settle advertised terminal runs
* fix(android): clear stale run usage on gaps
* chore(i18n): align native source inventory
* fix(chat): reconcile telemetry with current projections
* refactor(chat): keep run state in owner extensions
* chore(i18n): refresh native source inventory
* test(ui): expect persistent working telemetry through streaming
Reject ambiguous duplicate IDs in ID-merged patches. Compare shared auth against current authored ownership so runtime-only fields and stale secret snapshots cannot skew disconnect decisions.
Recognize standard prompt/completion token fields in JSON, complete JSONL, and incremental streaming without changing existing CLI-token precedence or cached-token accounting.
Inspired-by: @Beandon13 (#78085)
Refs: #77992
* fix(mac): drop stale native identity claim when key material matches
* fix(mac): acquire stale identity claim before deletion
* fix(mac): park stale identity claim instead of deleting it
Rescue path now contains no destructive unlink: the acquired claim is parked as .stale-<uuid> and validated before any continue path, closing both replacement races review found.
* fix(mac): restore parked claim when the rescue source vanishes
Review round 4: accepted the vanished-source regression (restore before continue so claim-without-source stays importable); rejected serializing the source acquisition - rescue imports nothing and post-rescue source writes follow the standard atomic claim-then-import path (invariant documented inline).
* style(apple): satisfy device identity SwiftFormat