Skip to content

fix(desktop): keep conversations and thread sidebar opaque - #50

Merged
ckafrouni merged 1 commit into
mainfrom
fix/chat-transparency
Oct 21, 2026
Merged

ckafrouni merged 1 commit into
mainfrom
fix/chat-transparency

Conversation

@ckafrouni

@ckafrouni ckafrouni commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Full-window glass makes opaque HTML replies stand out from the conversation and lets transcript text show through the composer.

Keep the empty draft's glass and animation, then use the theme's opaque canvas and composer surfaces after the first prompt. Keep the thread-list sidebar solid while preserving glass in the navigation rail and header. Rename the optional sidebar-only setting to Rail only and update appearance guidance.

Validation: web typecheck, targeted lint and formatting, 56 focused chat/settings tests, and an integrated pass in the isolated macOS desktop app covering HTML replies, first-prompt transitions, reopening conversations, and Rail only mode.

Desktop evidence from the isolated development instance:

Before After
Before After

First-prompt transition:

transition.mp4

Model: GPT-6.1-Sol. Harness: Codex in T3 Code.

@ckafrouni
ckafrouni merged commit c9c19ff into main Oct 21, 2026
19 checks passed
@ckafrouni
ckafrouni deleted the fix/chat-transparency branch October 21, 2026 14:36
Laurin-Notemann added a commit that referenced this pull request Oct 22, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Oct 23, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Oct 23, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Oct 24, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Oct 25, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Oct 26, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Oct 28, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Oct 30, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Oct 31, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Nov 2, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Nov 3, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Nov 4, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Nov 5, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Nov 7, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Nov 8, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Nov 9, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Nov 10, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Nov 11, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Laurin-Notemann added a commit that referenced this pull request Nov 12, 2026
* fix(otter): repair release checks after the 2026-10-21 sync (#49)

* fix(otter): repair release checks after the 2026-10-21 sync

The upstream sync left four files unformatted, rebranded test inputs
without their expectations, missed Otter names in upstream's new code,
and referenced a renamed Linux metainfo file that was never renamed.

- format the four files flagged by `vp check`
- restore upstream test inputs for prompt links and MCP tool prefixes
- install icons and boot-service fixtures under the fork's real names
- recognise `otter-code.service` in the update cgroup check
- brand the pair error and Codex agent name hint as Otter Code
- ship `dev.otterware.code.metainfo.xml` with Otter's IDs for the deb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): keep the WebSocket handler types under TypeScript's limit

CI's two-checker typecheck hit "type instantiation is excessively deep" in
ws.ts once upstream's handler object grew: the fork's five methods pushed it
over, and the resulting `any` failed every layer that includes it. Their
handlers now live in `otterWsRpc.ts` as a separate group, the way Otterware
adds the suite's, and ws.ts matches upstream apart from that wiring.

Also restore upstream's responsive draft project heading lost in the sync,
drop helpers whose only caller was the removed LegacySidebar, re-hide
helpers upstream made private, and expect Otter Connect wording in the
connection error test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(otter): follow upstream's newer lint rules in fork code

Upstream now requires Effect.fn for reusable Effect functions and forbids
per-test timeouts. Convert the account IPC handlers, the Linear projection
query and the relay's Linear functions, and drop the timeouts on the
env-gated language server tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(mobile): mock Otter's release feed in environment maintenance tests

The fork checks otterware-app/otter-code for releases; the test still
mocked upstream's URLs, so requests fell through to the real API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* style(mobile): format environment maintenance test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): keep conversations and thread sidebar opaque (#50)

* ci(otter): keep the hosted web guard safe under set -u

Upstream's workflow tests run the hosted web steps without GITHUB_REPOSITORY.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant