Beyond the i18n strings rebrand (b55d103) this pass cleans up everything
that still surfaced "Claude" in the built artifact:
Theme tokens (cc-haha/desktop/src/theme/globals.css)
- light-mode text-selection-bg rgba(197,165,114,*) → rgba(123,107,227,*)
(selecting ANY text in light mode used to paint a gold highlight)
- dark + light diff-highlight-bg / -gutter switched from gold to brand
violet rgba(123,107,227,*) — keeps semantic "highlight" without leaving
the brand
Sidecar binary rename: claude-sidecar → heicode-sidecar
- desktop/sidecars/claude-sidecar.ts renamed (git mv)
- internal log prefix strings (12 occurrences) updated
- desktop/scripts/build-sidecars.ts: entrypoint / outfileBase / productName
('Heicode Sidecar') / publisher ('Heicode') — these last two are embedded
in the .exe metadata you see in File Properties
- src-tauri/capabilities/default.json: 9 binaries/claude-sidecar references
rewritten + description "Default capabilities for Heicode Desktop"
- src-tauri/src/lib.rs: 2 .sidecar("claude-sidecar") + 3 packaged sidecar
exe filename strings + 1 doc comment
- desktop/sidecars/launcherRouting{,.test}.ts
After this rebuild, Task Manager shows heicode-sidecar-*.exe child
processes (was claude-sidecar-*.exe) and right-click → Properties on
that binary shows "Heicode Sidecar" / "Heicode" instead of "Claude Code".
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
55 lines
1.4 KiB
TypeScript
55 lines
1.4 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
|
|
import { parseLauncherArgs, resolveSidecarInvocation } from './launcherRouting'
|
|
|
|
describe('resolveSidecarInvocation', () => {
|
|
it('keeps explicit sidecar modes unchanged', () => {
|
|
expect(
|
|
resolveSidecarInvocation(
|
|
['server', '--host', '127.0.0.1'],
|
|
'/tmp/heicode-sidecar',
|
|
),
|
|
).toEqual({
|
|
mode: 'server',
|
|
restArgs: ['--host', '127.0.0.1'],
|
|
defaultAppRoot: null,
|
|
})
|
|
})
|
|
|
|
it('defaults claude-haha invocations to cli mode', () => {
|
|
expect(
|
|
resolveSidecarInvocation(
|
|
['plugin', 'install', 'demo'],
|
|
'/Users/demo/.local/bin/claude-haha',
|
|
),
|
|
).toEqual({
|
|
mode: 'cli',
|
|
restArgs: ['plugin', 'install', 'demo'],
|
|
defaultAppRoot: '/Users/demo/.local/bin',
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('parseLauncherArgs', () => {
|
|
it('falls back to the provided default app root', () => {
|
|
expect(
|
|
parseLauncherArgs(['plugin', 'install', 'demo'], '/Users/demo/.local/bin'),
|
|
).toEqual({
|
|
appRoot: '/Users/demo/.local/bin',
|
|
args: ['plugin', 'install', 'demo'],
|
|
})
|
|
})
|
|
|
|
it('lets explicit app root override the default', () => {
|
|
expect(
|
|
parseLauncherArgs(
|
|
['--app-root', '/tmp/app', 'plugin', 'install', 'demo'],
|
|
'/Users/demo/.local/bin',
|
|
),
|
|
).toEqual({
|
|
appRoot: '/tmp/app',
|
|
args: ['plugin', 'install', 'demo'],
|
|
})
|
|
})
|
|
})
|