Skip to content

docs(guide): match 0.4.20 and main: Letta chat and its limits, Sign in again, tap to dictate - #2371

Merged
devswha merged 3 commits into
mainfrom
docs/guide-refresh-0420
Oct 29, 2026
Merged

devswha merged 3 commits into
mainfrom
docs/guide-refresh-0420

Conversation

@devswha

@devswha devswha commented Oct 29, 2026

Copy link
Copy Markdown
Owner

Change

Docs only: docs/guide.md now matches what 0.4.20 and current main do. I checked each claim against the code that decides it (file:line in the table below) and changed only docs/guide.md.

  • Letta Code. The Supported agents cell is short now: it says what Letta needs (herdr integration install letta) and that a turn shows once it ends, with Working… in the meantime. The binding rules moved to a new Letta Code subsection at the end of the section, which also says what a running turn looks like and lists the three known wrong-conversation cases of Letta Chat: bind a pane from a fact Letta or herdr reports, not from per-folder state #2314.
  • Subscription usage. Expired Claude and Codex accounts get Sign in again. Hub accounts do not.
  • Chat. The faded bubble a sent message shows until its turn is written: the clock after 5 s, the bubble gone after a minute, no bubble for /… and !… commands. Also the Claude Code bash-mode (!) card, with stderr in red.
  • Terminal. xterm.js 6 draws only whole frames, and Alt speeds the wheel in a program that reads the mouse.
  • Voice input. On a touch screen with the browser's own recognition, you tap to start and tap to finish. An iPhone home-screen app asks for the mic on the first tap, not when Voice input is turned on. When Siri & Dictation is off, the mic says so. A mouse, or an API key, still allows hold-to-talk.
  • Quick start. On a slow link, the boot spinner shows while the app downloads.
  • Manage sessions. The Ultracode switch in New workspace and New tab, linked to agent-commands.md.

The OpenCode drag text (#2368) was already accurate, so it is unchanged. The agent install flow (changelog.d/agent-install-run.md) is left out: AgentSetupCard is not mounted anywhere yet, so users have no surface for it.

Claim Code
Letta writes a turn only at its end; cancelled turns are never written server/letta.ts:1-12
Letta binding: herdr report + project record + start folder server/letta-store.ts:1-19, lettaRecordOwned :247-258
Working… while a turn runs, no live terminal box src/components/ChatView.tsx:2265-2277; #2338
Sign in again: expired, Claude/Codex, not hub src/lib/usage.ts:83; UsageMeters.tsx:55-66; UsageSettings.tsx:40
Faded bubble 5 s clock / 60 s / no bubble for commands src/lib/sentWaiting.ts (WAITING_HINT_MS, WAITING_SEND_MS, becomesTurn)
xterm.js 6; Alt-only fast wheel package.json @xterm/xterm 6.0.0; patch per #2357
Touch + browser engine = tap; hold otherwise src/components/VoiceInput.tsx:258-300
Siri & Dictation off is named src/lib/voice.ts:302-303; VoiceInput.tsx:22
Boot spinner index.html:40
! card, stderr in red server/claude-transcript.ts:94-95; ChatView.tsx:1079-1088
Ultracode switch, Claude Code 2.1.284+ src/components/NewSessionDialog.tsx:398-402

No changelog fragment: each behaviour described here already has its own changelog entry, in 0.4.20 or in changelog.d/, and this PR only brings the guide up to date with them.

Verification

  • bun run check fast: green on b16eabc (typecheck, build, generated files, 8666 unit tests pass, 0 fail). Also green on 0d8db7e and d2527fe.
  • No test: this is a prose-only change (repo rule: doc text is never pinned by a test).

Reviews

  • omo-native-code-reviewer on 0d8db7e: APPROVE, no CRITICAL/HIGH/MEDIUM. Its 5 LOW points were checked against the code and applied in d2527fe: Alt speeds a trackpad wheel; Ultracode's prerequisites; the faded bubble only in a native-session chat; the first Letta Chat: bind a pane from a fact Letta or herdr reports, not from per-folder state #2314 case needs Ovis not to have looked first; the iPhone home-screen mic rule is its own bullet.
  • Codex Sol 6.1 fast xhigh, round 1 on 0d8db7e: REQUEST CHANGES with 5 MEDIUM. All five were checked against the code and fixed in d2527fe:
    • Letta: a second pane, or a turn not yet written, clears by itself, without restarting letta (letta-store.ts:195,288).
    • The bubble's clock means the turn is not written yet, not that the agent has not taken it (sentWaiting.ts).
    • xterm.js 6 waits for a synchronized frame for up to a second.
    • The Ultracode switch only asks Claude Code, which ignores it without xhigh and dynamic workflows (agentLaunchMode.ts).
    • Silence is trimmed only where the recorder can pause; otherwise the whole recording is sent (voice.ts:613-620). This was a stale sentence next to the touched text.
      LOWs applied: start letta once before herdr integration install letta (agent-catalog.ts:875); the 2 s record margin; 401/403 also read as expired (usage.ts:1052); the voice level shows only when the server transcribes (voice.ts:491).
  • Codex round 2 on d2527fe only: one MEDIUM. A Letta pane in the home folder never binds (letta-store.ts:255), so "until letta starts again" was wrong there. Fixed in b16eabc with Codex's own wording. Under the review cap, there is no further round.
  • Left as written (LOW): Codex noted that "rare" for the Letta Chat: bind a pane from a fact Letta or herdr reports, not from per-folder state #2314 cases is a judgment, not something the code shows. Each case needs a Letta folder move plus a conversation switch Ovis did not see, which is why the guide calls them rare.

Docs only, so no CodeRabbit review is requested (AGENTS.md: a docs commit gets none).

…n again, tap to dictate

- Letta Code: the table cell says what it needs and that a turn shows when it ends (Working…
  meanwhile); the binding rules move to their own subsection, with the three known
  wrong-conversation cases of #2314.
- Subscription usage: Sign in again for an expired Claude or Codex account.
- Chat: the faded bubble a sent message shows until its turn is written, and the Claude Code
  bash-mode (!) card.
- Terminal: xterm.js 6 draws only whole frames; Alt speeds the wheel in a program that reads the
  mouse.
- Voice input: a touch screen with the browser's recognition taps to start and finish; the
  iPhone home-screen app asks for the mic on the first tap; Siri & Dictation off is named.
- Quick start: the loading spinner on a slow link. Manage sessions: the Ultracode switch.
- Letta: start letta once before installing herdr's integration; the record must predate the
  process by more than two seconds; a second pane or a turn not written yet clears by itself,
  without restarting letta. The first #2314 case needs Ovis not to have looked first.
- Faded bubble: only in a chat read from the agent's session; the clock means the turn is not
  written yet, not that the agent has not taken it.
- xterm.js 6 waits for a synchronized frame for up to a second; Alt speeds a trackpad wheel.
- Ultracode: the switch asks Claude Code, which ignores it without xhigh and dynamic workflows.
- Voice: the iPhone home-screen rule holds with or without a key; the level shows only when the
  server transcribes; silence is trimmed only where the recorder can pause.
- Usage: a refused sign-in reads as expired too, and using the tool may not renew it.
…l's text

letta-store.ts refuses the home folder whatever happens, so restarting letta there does not bring
Chat back.
@coderabbitai

coderabbitai Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Caution

Review failed

The pull request is closed.

Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@devswha

devswha commented Oct 29, 2026

Copy link
Copy Markdown
Owner Author

Merging b16eabc. Docs-only (docs/guide.md): the guide now matches 0.4.20 and current main: Letta chat and its limits, Sign in again, the waiting bubble, xterm 6 and the Alt-only wheel speed-up, iPhone tap dictation, the OpenCode drag, the boot spinner, the ! command card and Ultracode. The lane checked each claim against the code; the merge pass read the diff and found no feature still held in an open PR documented. Docs-only, so the Native Windows install job is skipped and no CodeRabbit review was needed.

@devswha
devswha merged commit b6f555f into main Oct 29, 2026
10 of 11 checks passed
@devswha
devswha deleted the docs/guide-refresh-0420 branch October 29, 2026 19:41
@devswha devswha mentioned this pull request Oct 30, 2026
devswha added a commit that referenced this pull request Oct 30, 2026
## Release 0.4.21

The release PR, prepared by step 1 of
[docs/development.md#releasing](https://github.com/devswha/ovis/blob/main/docs/development.md#releasing),
now re-folded on main `1ef6ea329108a0985b823e8235b03daddcd0a5f4` after
the owner held 0.4.21 for more work. The merge pass reported the 0.4.21
queue empty.

**Do not merge yet:** the owner judges the final build before release.
No tag and no Release run from this PR's author.

- **Version:** `version` is 0.4.21 in `package.json` and
`herdr-plugin.toml`.
- **Changelog:** `bun scripts/changelog-fold.ts 0.4.21 2026-10-30`
folded 63 fragments into the 2026-10-30 section of `CHANGELOG.md` (71
entries), linked their PRs and deleted the fragments; `changelog.d`
holds only `README.md`.
- `by @login` on every outside contributor's PR link: #2361 @eddieparc,
#2333 @IdrisGit, #2355 @imurfutur3, #2341 @sulthonzh, #2359 @YuuuXie,
#2377 @IdrisGit, #2269 @CharleoYang, #2405 @jpcarranza94, #2414
@homebodify, #2417 @cheol-95, #2418 @eddieparc, #2435 @cheol-95.
- Two outside PRs had no fragment and got an entry by hand: #2341
(OpenCode background commands, Added) and #2359 (installer test timing,
Maintenance).
- Issue reporters are credited in their entries: @blaker3115-Agri
(#1488), @Hyd3-14 (#2026), @osamahbeig (#2343), @Shunamxiao (#2329),
@matiemer (#2362), @kilhyeonjun (#2344), @eddieparc (#2360), @Ploppy3
(#2236), @sulthonzh (#2340), @WOULDU-pres (#2056), @odfalik (#2038),
@aNNdii (#511), @Noobear (#2281, fixed by #2424); #2435 fixes
@cheol-95's own #2434.
- Two fragments ran past the changelog's width (#2418, #2269); their
entries are re-wrapped, words unchanged. #2382's entry reads "OpenCode's
installer puts its folder first" (reviewed earlier on this PR).
- Maintainer PRs without a fragment and without a user-facing change
have no entry: #2353 (check tool), #2371 (guide docs), #2396 and #2397
(tests), #2403 and #2433 (server and client transport seams, no
behaviour change), #2437 (test-only fix for #2435's check). #2438's own
entry (the sidebar selection marked by its fill again) is dropped: the
stroke #2352 added never shipped, so users see no change; #2352's entry
keeps only the Windows high-contrast Highlight bar.
- **Release summaries:** en, ko, ja and zh each have 5 new, 5 improved
and 5 fixed lines. Since the first review: New lists the in-browser
Claude Code / Codex sign-in (#2428) in place of the tab/workspace
shortcut line; Improved lists Settings → Agents (#2427) in place of the
sidebar fold line; Fixed lists the Codex wrong-session fix (#2426,
#2430) in place of the phone screenshot paste line. The Artifacts and
Claude status-line lines keep their reviewed wording (turned on in
Settings). Not in 0.4.21: #2420 (Codex chat behind Kiro), #2065 (Portal
sign-in) and #2436 (relay foundations) stay open for a later release.
- **Remote bundle:** `REMOTE_BUNDLE_VERSION` rises from 39 to 40 because
the bundle inputs (`server/`, `shared/`, `patches/`) changed since
remote-v39. After merge: push `remote-v40` on the merged commit and wait
for the Remote PC bundles workflow before running Release.
- **iOS:** `CURRENT_PROJECT_VERSION` stays 3 (#2370 changed
`Info.plist`; build 3 is not known to be uploaded yet).

## Validation

- `bun scripts/release-guards.ts --base v0.4.20`: "Release 0.4.21:
remote bundle, telemetry Worker and release metadata are in order."
- `dori heavy … bun run check fast` on this branch: workflow syntax,
generated types and themes, typecheck, build, unit tests all ok. Unit:
9166 pass, 0 fail, 36 skip in 591 files.
- Every PR in `v0.4.20..main` was pre-run for the owner's hands-on guide
on isolated copies (own herdr session, fresh state, never the owner's
live session). Items that need a real device (iPhone tap dictation
#2370, dictation keyboards #2386, the installed desktop app's title-bar
overlay #2381) are left for the owner's final check.

This is a release-metadata PR: it changes no code path. Per the release
steps, merge it after CI and the owner's go, then push `remote-v40`,
wait for its bundles, and run Release with `0.4.21`.
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