Skip to content

fix(grok): four Grok Build 1.0.52 screens the phone read wrong, and its folder trust prompt as a card - #447

Open
GGGODLIN wants to merge 4 commits into
AltanS:mainfrom
GGGODLIN:fix/grok-build-1.0.52
Open

GGGODLIN wants to merge 4 commits into
AltanS:mainfrom
GGGODLIN:fix/grok-build-1.0.52

Conversation

@GGGODLIN

Copy link
Copy Markdown
Contributor

Four Grok Build 1.0.52 screens the phone read wrong, one commit each. A fresh pane under the welcome card and a typed slash command under the / completion popup now accept a reply; the folder trust prompt lifts as a trust card; a slash command's grey argument hint is no longer read as typed text, which Take over would have sent.

Commit What went wrong The fix
fix(grok) welcome card Grok 1.0.52 puts its changelog welcome card directly on the composer with no Tip: row between, and signed in with an API key prints Logged in with API key │ [stable] under the box. The first failed the "unknown rounded widget above the box" fail-closed, the second the literal chip check, so a fresh pane refused every send The card is named by its startup menu (New worktree, Resume session, Quit), and only that literal API-key chip form is added. Not fixed: at 50 columns the row reads Logged in with API key │ Grok Build 1.0.52 [s, cut off, which no literal check can bless; it stays refused
fix(grok) slash popup Grok paints its / completion between two rules directly on the composer, which the same fail-closed read as owning the keyboard; a send went through only when the guard's read came before the popup A rule-bounded run holding a ❯ / row is the popup, and the draft folds in the highlighted command when it is not the typed one, since Enter runs the highlighted row: a partial /stat whose highlighted row is another command does not verify
feat(harness) trust prompt In an untrusted folder that holds something for Grok to load, it asks Do you trust the contents of this directory? under its logo, with Yes, proceed y and No, quit n; the composer stayed open over it grok/trust.ts lifts the two options as a trust-family prompt-select, each key sent alone; the card starts at the first option so the directory and the warning stay in the mirror
fix(grok) argument hint After /model, Grok keeps /model in its box over the model list with <model> [window] [effort] painted in grey rgb(108,108,108); extractInputDraft read it as typed text The hint is dropped only in that shape, in that grey, as the row's last text after a slash command; the same words in the typed-text colour stay

Change outline

web/src/lib/harness/grok/
  chrome.ts     the welcome card (named by its startup menu), the / popup and the grey hint in the box read
  markers.ts    the `[stable]` chip row also matches its API-key form
  trust.ts      new: the folder trust prompt as a trust card
  index.ts      lifts the trust card

Reviewer guide

  • Start: web/src/lib/harness/grok/chrome.ts, the popup run and the hint drop.
  • Then: grok/trust.ts and its wiring in grok/index.ts.
  • Validate: grok.test.ts over the five captures below.
  • Focus: the draft that verifies a send is the command Enter would run; a popup whose highlighted row is not the typed command, and a box the reader does not recognise, keep the send refused.

Validation beyond the suites

On the fork build that carries these commits along with the fork's other changes, not on this branch over main alone: Grok Build 1.0.52 in a throwaway Herdr session with a moved GROK_HOME, on 2026-10-15. The harness canary, through drivers that are not part of this PR: idle passes, drafts 15/15, start-exit 4/4. The popup read back /statusline, /new, /model and /statusline x as verified, and /stat and /resume-c as not. The trust prompt lifted twice; n quit to the shell and y went on to the composer and wrote the folder into the throwaway trusted_folders.toml.

Captures. Five, each with its fixtures README row: grok--welcome-card.txt, grok--slash-popup-exact.txt and a hand-built grok--slash-popup-partial.txt, grok--trust-prompt.txt, grok--model-arg-hint.txt. The working folder became /tmp/collie-grok-sandbox and the status row's short form /t/collie-grok-sandbox/trustprobe, each at the same width; the model label was renamed mini; in the popup and hint captures a local hook notice was blanked, and in the hint capture the status row's MCP count was set to 2/2.

Before and after for the trust prompt, the one new card, from the playground's PaneRouter in a PhoneFrame at 390 px with its sample pane, main on the left. No bridge is running there, so the card's keys are inert and it says "Reconnect to answer".

Before: Grok's trust prompt with the composer open under it and no card After: Grok's trust prompt lifts as a trust card with Yes, proceed (y) and No, quit (n)

Base branch — see CONTRIBUTING.md:

  • Opened against main — there is one line of development, and main is it

Checks

  • On this branch (macOS): bun run typecheck at the root and in web/ exited 0; bun run lint exited 0; bun test ./bridge ./cli ./scripts 8539 pass, 70 skip, 0 fail; cd web && bun run test 416 of 416 files, 26280 tests pass. With each commit's fix taken out and only its tests left, on main 8629ecb: 2 failures for the welcome card, 4 for the popup, 3 for the trust prompt, 1 for the argument hint (the popup's tests need the welcome card commit under them). Not run: cd web && bun run e2e, the Windows suites, and a live agent run on this branch over main alone.
  • CHANGELOG: fork PR, so no entry. If lines help:
    • - **A fresh Grok Build pane accepts a reply under its welcome card.** The changelog card and the API-key chip under the box made the pane refuse every send.
    • - **A slash command typed into Grok Build verifies under its completion popup.** The popup read as a dialog owning the keyboard; a partial command whose highlighted row differs does not verify.
    • - **Grok Build's folder trust prompt gets phone buttons.** Yes, proceed and No, quit, each key sent alone.
    • - **Grok Build's grey argument hint is not read as a draft.** After `/model`, the phone showed the hint as typed text, and Take over would have sent it.

GGGODLIN and others added 4 commits October 15, 2026 22:19
…and the API-key chip

Grok Build 1.0.52 puts its changelog welcome card directly on the composer, with no Tip row between, and signed in with an API key prints 'Logged in with API key  |  [stable]' under the box. The first failed the 'unknown rounded widget above the box' fail-closed, the second the literal chip check. The card is now named by its startup menu (New worktree, Resume session, Quit), and only that literal API-key chip form is added. One live capture (2026-10-15, cwd swapped). Canary on grok 1.0.52: idle now passes, drafts 15/15, start-exit 4/4, bar 2/2. Not fixed: narrow at 50 columns, where the row reads 'Logged in with API key | Grok Build 1.0.52 [s' cut off, which no literal check can bless.

Co-Authored-By: Claude <noreply@anthropic.com>
…rtial command does not verify

Grok 1.0.52 paints its / completion between two rules directly on the composer, which the 'unknown widget above the box' fail-closed read as owning the keyboard; a bar or palette send went through only when the guard's read beat the popup. A rule-bounded run holding a '❯ /' row is now the popup, and the draft folds in the highlighted command when it is not the typed one, since Enter runs the highlighted row. One live capture and one hand-built partial (README). Live readback on Grok 1.0.52: /statusline, /new, /model, '/statusline x' verify; /stat (another command highlighted) and /resume-c (box completed to a longer command) do not. Canary grok: idle, drafts 15/15, start-exit 2/2, bar 2/2.

Co-Authored-By: Claude <noreply@anthropic.com>
Grok 1.0.52 asks 'Do you trust the contents of this directory?' under its logo in an untrusted folder that holds something for it to load (a project skill did; an empty repository did not). The two options print their keys at the right: 'Yes, proceed  y' and 'No, quit  n'. grok/trust.ts lifts them as a trust-family prompt-select, each key sent alone; the card starts at the first option so the directory and the warning stay in the mirror, and the signature runs from the question to the tail.

Live check 2026-10-15 in a throwaway Herdr session with a moved GROK_HOME: the prompt lifted twice, n quit to the shell, and y went on to the composer and wrote the folder into the throwaway trusted_folders.toml.

Co-Authored-By: Claude <noreply@anthropic.com>
After the harness bar's Model button, Grok Build 1.0.52 keeps '/model' in its box over the model list with the argument hint '<model> [window] [effort]' painted in grey rgb(108,108,108). extractInputDraft read the hint as typed text, so the phone showed '/model <model> [window] [effort]' as a terminal draft and Take over would have sent it. Found in a PWA e2e on the dev lane against a throwaway Herdr session (2026-10-15); the canary's bar scenario cannot see it, since it checks only that the picker opens. The hint is dropped only in that shape, in that grey, as the row's last text after a slash command; the same words in the typed-text colour stay.

One capture from the canary bar scenario, with a local hook notice blanked, the cwd swapped and the model label renamed. Tests: the hint capture reads '/model' (red before the fix); a recoloured copy keeps the words, and fails when the colour check is removed. The capture's box fails closed (the model list is not a slash popup), so it joins composerReady's false list.

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions github-actions Bot added area: web Phone PWA — UI, mirror, composer, service worker area: harness Per-agent adapters and send guards (claude/codex/pi/omp) labels Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: harness Per-agent adapters and send guards (claude/codex/pi/omp) area: web Phone PWA — UI, mirror, composer, service worker

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant