Skip to content

chore(otter): changes before the 2026-10-06 sync - #17

Merged
Laurin-Notemann merged 3 commits into
mainfrom
otter/sync-2026-10-06
Oct 6, 2026
Merged

Laurin-Notemann merged 3 commits into
mainfrom
otter/sync-2026-10-06

Conversation

@Laurin-Notemann

Copy link
Copy Markdown

Carries the work committed to main since the 2026-10-04 sync onto the new base, upstream pingdotgg/t3code main at 8f75697 (113 new upstream commits).

The feature stack (brand, release, Linear, scoped diff review, code intelligence, generated adaptation) and the 2026-10-04 sync commit (#16) were rebased onto the new base before this PR. The old main is preserved as backup/otter-before-2026-10-06.

Commits:

  • fix(otter): connect browser extensions to native apps
  • fix(otter): start delegated Linear threads when the app token is broken
  • docs(otter): keep one squash commit per sync. OTTER.md now describes this flow: each sync keeps earlier sync commits and squashes the commits made since the last sync into a new one.

Conflicts and upstream changes resolved while rebasing the stack:

  • Effect moved to stable 4.0.1 (effect/unstable/* became effect/*, httpapi became http-api), and layers are now named layerX. Ported the Linear modules, the Linear MCP toolkit, and the relay worker to match.
  • cloud/http.ts is now a thin transport over upstream's CloudLink service. Re-added the three Linear relay routes there (linearAgentSession, linearAgentPrompt, linearIssueChanges) with the same proof checks as before.
  • MCP invocation scope: threadId became optional thread. The Linear issue tools now reject callers without a thread (OAuth clients) with a clear error.
  • git status numstat: kept upstream's lock-free diff-index -M and Otter's -z parsing.
  • Relay: added an otter_upstream_merge migration joining upstream's hold_webhooks_while_offline and tunnel_released_at chain with the Linear chain (no schema change). Kept Hyperdrive's originConnectionLimit at 20 for Otter's PS_5 database. Upstream raised it to 40 for their PS_80 cluster.
  • Kept upstream's new relay offline reasons, hook forwarding, secret requests, and worktree directory settings beside Otter's Linear settings, contracts, and JWT types.
  • Rebranded new upstream UI text ("T3 Connect" → "Otter Connect", "T3 home" → "Otter Code home").

Verified with typechecks for contracts, shared, client-runtime, server, web, desktop, mobile, and relay, plus focused tests: server Linear/cloud/MCP/VCS/settings/settlement (441), relay Linear, web diffs/Linear/files/settings/cloud, desktop preview/native messaging/IPC, client-runtime, mobile cloud, and shared. All pass.

Claude Opus 5.5 via Claude Code (T3 Code)

🤖 Generated with Claude Code

ckafrouni and others added 3 commits October 6, 2026 05:55
Delegating an issue to Otter did nothing: Linear stopped accepting the
workspace's app token, its refresh was refused, and the relay's queue
consumer aborted on that before launching the thread, leaving only a log
line. Since 2026-09-25 every Linear write from the agent had failed
silently too.

The relay now starts the thread without a usable app token (Linear just
stays unaware of it), and marks the installation revoked once Linear
rejects the token, so Settings asks a workspace admin to install the agent
again instead of the agent going quiet.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@Laurin-Notemann
Laurin-Notemann merged commit 3770832 into main Oct 6, 2026
33 of 35 checks passed
@Laurin-Notemann
Laurin-Notemann deleted the otter/sync-2026-10-06 branch October 6, 2026 06:12
Laurin-Notemann added a commit that referenced this pull request Oct 7, 2026
* fix(otter): connect browser extensions to native apps

* fix(otter): start delegated Linear threads when the app token is broken

Delegating an issue to Otter did nothing: Linear stopped accepting the
workspace's app token, its refresh was refused, and the relay's queue
consumer aborted on that before launching the thread, leaving only a log
line. Since 2026-09-25 every Linear write from the agent had failed
silently too.

The relay now starts the thread without a usable app token (Linear just
stays unaware of it), and marks the installation revoked once Linear
rejects the token, so Settings asks a workspace admin to install the agent
again instead of the agent going quiet.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* docs(otter): keep one squash commit per sync

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Co-authored-by: Luca Schleiss <luca.schleiss@clary.so>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Laurin-Notemann added a commit that referenced this pull request Oct 8, 2026
* fix(otter): connect browser extensions to native apps

* fix(otter): start delegated Linear threads when the app token is broken

Delegating an issue to Otter did nothing: Linear stopped accepting the
workspace's app token, its refresh was refused, and the relay's queue
consumer aborted on that before launching the thread, leaving only a log
line. Since 2026-09-25 every Linear write from the agent had failed
silently too.

The relay now starts the thread without a usable app token (Linear just
stays unaware of it), and marks the installation revoked once Linear
rejects the token, so Settings asks a workspace admin to install the agent
again instead of the agent going quiet.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* docs(otter): keep one squash commit per sync

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Christophe Kafrouni <44137603+ckafrouni@users.noreply.github.com>
Co-authored-by: Luca Schleiss <luca.schleiss@clary.so>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.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.

2 participants