Repository navigation
fix(e2e): hold the t-flaky turn while the smoke test reads its opening line - #93
Merged
Merged
Conversation
…g line The running turn folds its finished steps into one row as soon as the next words start, about half a second after the opening line at the mock's 0.25x speed. smoke.spec.ts is the first spec of its CI shard, so it and its retry open t-flaky in a cold browser, and Playwright's 1 s expect polls often stepped over that window. Hold the script at its existing flaky-read gate, assert the line, then release it.
ANT1OFF
added a commit
that referenced
this pull request
Nov 2, 2026
Desktop release metadata proposal only. Merging this PR does not publish or tag Gram; follow docs/RELEASING.md to release. --- ## [1.4.0](v1.3.1...v1.4.0) (2026-11-02) ### Features * **agents:** identify Gram's Claude processes as the gram entrypoint ([#91](#91)) ([f7dd703](f7dd703)) * **desktop:** run on Linux ([#82](#82)) ([1d37deb](1d37deb)) * **desktop:** turn voice input off on Linux with one check ([#79](#79)) ([470ff8b](470ff8b)) * **orchestration:** a person's PR comment wakes the worker that owns it ([#86](#86)) ([19bdc1c](19bdc1c)) * **orchestration:** a wrap-up turn when a worker stops without reporting ([#88](#88)) ([36a07fb](36a07fb)) * **orchestration:** workers say what they ruled out and check before repeating ([#90](#90)) ([8bdce01](8bdce01)) * **release:** publish and update Linux AppImage and .deb ([#95](#95)) ([c33c464](c33c464)) * **voice:** an accurate mode with a Parakeet pass on each pause ([#83](#83)) ([2b04a52](2b04a52)) * **voice:** hold one key to talk, with a tone at each end ([#87](#87)) ([1a9b3ef](1a9b3ef)) * **voice:** start capture at the press, and an opt-in ready microphone ([#81](#81)) ([505d240](505d240)) * **web:** a Done section that keeps the last 7 days ([#65](#65)) ([8c7bd49](8c7bd49)) * **web:** Done lists every finished chat ([#67](#67)) ([c91d9ac](c91d9ac)) * **web:** one attention count, quieter rows, a sidebar and board that agree ([#92](#92)) ([f193da4](f193da4)) * **web:** orchestrator → workers in the sidebar, a board that matches ([#80](#80)) ([686e737](686e737)) ### Bug Fixes * **desktop:** harden the Linux key vault and autostart entry ([#85](#85)) ([4b35eac](4b35eac)) * **e2e:** hold the t-flaky turn while the smoke test reads its opening line ([#93](#93)) ([2edc4ac](2edc4ac)) * **e2e:** release the dictation tap as soon as a word is heard ([#94](#94)) ([7781194](7781194)) * prepare only approved local-check sources ([#32](#32)) ([af3fab7](af3fab7)) * repair main after [#32](#32) ([#68](#68)) ([ce352e6](ce352e6)) * **voice:** keep the last word after release ([#78](#78)) ([cc40a47](cc40a47)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: gram-release-please[bot] <351321620+gram-release-please[bot]@users.noreply.github.com> Co-authored-by: Johan <32440065+ANT1OFF@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cause
smoke.spec.ts:4asserted a transient state. While the scriptedt-flakyturn runs, everything before its latest words folds into the running row (foldTurnintool-group-model.ts). The opening line, "I'll start by reading the test…", folds as soon as the "Confirmed: 3 of 20…" words start. At the mock's 0.25× speed that is about 0.5 s later: the Read call plus the 900 ms Bash call, scaled. Playwright pollsexpectat 100/250/500/1000 ms, so once the page takes about a second to boot, a poll can land after the line has already folded.It looked order-dependent, but it isn't caused by leftover state.
smoke.spec.tsis the first spec of shard 7/8, and a retry runs in a new worker, so both the first attempt and the retry open the thread in a cold browser. The CI trace from run 41372675092 shows this at the failure: the transcript readsWorking for 4s · 4 toolsand "The test passes 20/20 now…", with the opening line folded inside the row.Fix
The test now holds the script at its existing
flaky-readgate, which sits right after the opening line, usinggramMockHoldGates, the same patternqueue.spec.tsuses. It asserts the line, then releases the gate. The rest of the test is unchanged. No assertion, timeout, retry or skip changed.Reproduction (local, dev server,
--workers=1)smoke.spec.ts:4 --repeat-each/t/t-flakyand asserts the line, as the shard's first test does)bun run check:scaffoldpasses, andoxlintandfmt --checkare clean on the file.Limits
I ran these repeats locally on the dev server only, not on the CI preview build or the arm64 runner. The repro spec was temporary and is not committed.