mirror of
https://github.com/stablyai/orca.git
synced 2026-11-14 01:47:24 +00:00
* fix(native-chat): report missing saved conversations once * fix(native-chat): keep failures of answered Claude sends and translate the missing-conversation row A Claude result settles its own send before the journal sees it, so a failed send with no echo yet lost its owner and its failure row. The result now carries the send it answered. Desktop and phone rows also show the missing saved conversation sentence in the reader's language. * fix(native-chat): keep failures of Claude results that name a user message A root failure result that names a user message answered accepted input, so it keeps its row even when that send's waiter was retired, in doubt or ambiguously written. Only a result with no turn, no started send and no named user message (the pre-init missing-resume capture) is left to the host's final startup row. This replaces the per-frame settlement carry, so the acquisition and sign-in tests return to main. Also ship the new missing-conversation sentence in the runtime English catalog. * fix(native-chat): leave only a starting Claude session's failure to the startup row A Claude failure result with no turn now writes no row only while its own session is still opening (initialize and resume catch-up). Once open succeeds, every failure result is reported as before, whatever send evidence it carries, so per-send ownership checks are removed. * fix(native-chat): fail a starting Claude session with the startup failure it reports A turnless failure result that names no user input or resumed turn, arriving while its own acquisition is still starting, now fails that acquisition's open (initialize and resume catch-up) with Claude's own diagnostic; only then is its provider row left to the host's final startup row. Results naming input, and every result once open succeeds, keep main's reporting. The missing-conversation classifier is shared by stderr and the result's errors, so the typed refusal ends in one attempt whichever arrives first; other reported startup failures stay retryable through the existing provider-request error. * fix(native-chat): keep a Claude startup result's row once another failure ended the start A Claude startup failure result was still taken by its acquisition's startup outcome after initialize, a transport fault or an unexpected exit had already failed that start, so its diagnostic was neither shown nor kept in the final failure. The outcome now declines once the open fails by another route or the exit is observed (synchronously, before buffered frames drain), so such a result keeps its row as on main. It still takes a repeated result it already accepted, and a result whose refusal the ending exit already carries; a Stop still owns its start. * fix(native-chat): report a Claude start's first ending cause from its open The startup outcome now records the first cause that ends a start: an accepted startup result, the raced initialize or catch-up rejecting, a transport fault or unexpected exit, or any other open failure. That cause rejects the pending race, open() refuses success after it, and the open rejects with it, so a hidden result is always the open's error and any other result keeps its row. * test(native-chat): check the startup rejection with a type guard instead of an assertion