fix(daemon): adopt the v47 terminal daemon the 1.4.227 release runs (#29191)

* fix(daemon): adopt the v47 terminal daemon the 1.4.227 release runs

1.4.227 is built from 1.4.224 plus picks and takes daemon protocol v47 so
it can adopt the v45 daemons 1.4.225/1.4.226 left running. Main skips to
v48 and lists 46 and 47 as previous, so updating from 1.4.227 to the next
main release keeps every live terminal.

* fix(daemon): the build compatibility contract names daemon v48

* fix(daemon): the TS copy of the compatibility contract names daemon v48

* test(daemon): the macOS launchd label test expects daemon v48
This commit is contained in:
Brennan Benson
2026-10-15 18:58:45 -07:00
committed by GitHub
parent 6184d0ea28
commit 295202720a
5 changed files with 9 additions and 8 deletions
@@ -3,7 +3,7 @@ import { PREVIOUS_DAEMON_PROTOCOL_VERSIONS, PROTOCOL_VERSION } from './types'
describe('foreground-confirmation daemon protocol', () => {
it('rejects daemons from before the fresh-confirmation RPC', () => {
expect(PROTOCOL_VERSION).toBe(46)
expect(PROTOCOL_VERSION).toBe(48)
expect(PREVIOUS_DAEMON_PROTOCOL_VERSIONS).toContain(19)
expect(PREVIOUS_DAEMON_PROTOCOL_VERSIONS).toContain(22)
expect(PREVIOUS_DAEMON_PROTOCOL_VERSIONS).toContain(23)
+3 -2
View File
@@ -1,11 +1,12 @@
// Why: daemons survive app updates, so wire behavior must be version-gated.
// v48 skips v47, which the 1.4.227 release (1.4.224 plus picks) took; its daemon is adopted as previous.
// v46 starts each new Linux terminal in its own systemd scope beside the daemon's.
// v45 starts new macOS tabs in the update-safe terminal host helper beside an existing daemon.
// v44 gives every pane the `claude` function that follows the selected Claude account (v42 had it,
// v43 dropped it with the revert); v41 stages long startup commands as sourced scripts; v40 rolled
// the #25130/#24636 shell-wrapper changes and the wider agent list into a fresh daemon; older owners
// stay attachable.
export const PROTOCOL_VERSION = 46
export const PROTOCOL_VERSION = 48
export const CLAUDE_ACCOUNT_FUNCTION_DAEMON_PROTOCOL_VERSION = 42
export const CLAUDE_ACCOUNT_FUNCTION_REVERTED_DAEMON_PROTOCOL_VERSION = 43
// v39 gives plain fish panes Orca's codex function through XDG_DATA_DIRS.
@@ -39,7 +40,7 @@ export const CLEAN_DISCONNECT_PROTOCOL_VERSION = 24
export const MODE_2031_UNSUBSCRIBE_FACT_PROTOCOL_VERSION = 29
export const PREVIOUS_DAEMON_PROTOCOL_VERSIONS = [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45
28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47
] as const
export function supportsColorQueryReplyColors(protocolVersion: number): boolean {
+1 -1
View File
@@ -220,7 +220,7 @@ it('uses one launchd label per profile and protocol', () => {
expect(macDaemonJobLabel('/Users/a/Library/Application Support/orca')).not.toBe(
macDaemonJobLabel('/Users/a/Library/Application Support/orca-dev')
)
expect(macDaemonJobLabel('/p')).toMatch(/^com\.stablyai\.orca\.terminal\.[0-9a-f]{16}\.v46$/)
expect(macDaemonJobLabel('/p')).toMatch(/^com\.stablyai\.orca\.terminal\.[0-9a-f]{16}\.v48$/)
})
it.each(['13.4.1', '12.7.6'])(
@@ -3,9 +3,9 @@
"appId": "com.stablyai.orca",
"stateSchemaVersion": 1,
"readableStateSchemaVersions": [1],
"daemonProtocolVersion": 46,
"daemonProtocolVersion": 48,
"attachableDaemonProtocolVersions": [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46
27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48
]
}
@@ -3,9 +3,9 @@ export const LOCAL_BUILD_COMPATIBILITY_CONTRACT = {
appId: 'com.stablyai.orca',
stateSchemaVersion: 1,
readableStateSchemaVersions: [1],
daemonProtocolVersion: 46,
daemonProtocolVersion: 48,
attachableDaemonProtocolVersions: [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46
27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48
]
} as const