Repository navigation
Let the candidate mark unclear interviewer lines - #433
Merged
Merged
Conversation
jserv
reviewed
Oct 22, 2026
jserv
reviewed
Oct 22, 2026
jserv
reviewed
Oct 22, 2026
April-ying
force-pushed
the
mark-unclear-lines
branch
from
October 22, 2026 13:46
2346a2d to
4f27374
Compare
jserv
reviewed
Oct 22, 2026
jserv
reviewed
Oct 22, 2026
April-ying
force-pushed
the
mark-unclear-lines
branch
from
October 22, 2026 14:59
4f27374 to
070d623
Compare
jserv
reviewed
Oct 23, 2026
jserv
reviewed
Oct 23, 2026
jserv
reviewed
Oct 23, 2026
jserv
reviewed
Oct 23, 2026
jserv
reviewed
Oct 23, 2026
April-ying
force-pushed
the
mark-unclear-lines
branch
from
October 23, 2026 09:03
070d623 to
7387d2f
Compare
jserv
reviewed
Oct 23, 2026
jserv
requested changes
Oct 23, 2026
jserv
left a comment
Contributor
There was a problem hiding this comment.
Rebase latest main branch to apply security updates.
Non-native candidates often miss a word or two of what Jim says and answer anyway, and nothing let them note the line to review later. An Unclear button beside the live caption marks the Jim turn on screen. Marks never reach Jim or the report request: they are resolved to transcript text when the report is saved and stored as unclearLines in the history entry, since saved history keeps no transcript, while the live export tags turns by id so a repeated line is not tagged twice. The cap of 10 keeps a marked interview within one average report of the 164 KB local history budget, and marks are dropped before they would push the 64 KB report body past the server limit, so they never cost the report. Past attempts and replay accept the field only as an array of strings, so older or hand-edited entries render as before.
April-ying
force-pushed
the
mark-unclear-lines
branch
from
October 23, 2026 14:20
7387d2f to
dad7b6e
Compare
Contributor
|
Thank @April-ying for contributing! |
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.
What
During the interview, an "Unclear" button beside the "Live CC:" label marks the Jim turn on screen; pressing it again unmarks it. The button shows only while a Jim turn is on screen, and it is disabled on unmarked turns once 10 are marked. Jim is not told about a mark.
When the report is saved, the marked turns are resolved to their transcript text and stored as
unclearLinesin the history entry, after the report returns, so they are never part of the report request. The report shows a "Lines you marked as unclear" section after "Practice next", in the web card and the Markdown export, and the export also tags the marked turns in its transcript as "Jim (marked unclear)". A report reopened from Past attempts shows the section too; its export has no transcript to tag, as before.One difference from the issue body: the web report card has no transcript, so tagging inside the transcript happens only in the Markdown export downloaded at the end of the interview.
Measurements
Local history in this browser held 21 reports: 594 to 12,109 bytes each, 6,933 on average, 145,600 bytes in total against the 167,936-byte budget, so the budget fits about 24 average reports, not 500.
Interviewer lines from three downloaded reports (93 lines): median 172 bytes, 90th percentile 333 bytes, longest 548 bytes.
Each line is clipped to 600 UTF-8 bytes, above the 548-byte longest turn, so 10 marks add about 1.8 KB at the median line length and at most about 6 KB in any script, about 25% and 87% of an average report. An interview at the cap therefore pushes out at most one older report, so the cap is 10. A cap of 20 could cost more than one.
Tests
tests/browser/progress.test.js: an entry at the cap keeps all 10 lines, an entry past the cap or with an oversized line is bounded on read, andunclearLinesthat is missing, null, a string, a number, an object, or an array holding a non-string is read as no marks.tests/browser/captions.test.js: the button marks and unmarks the current turn, hides during candidate speech, starts unmarked on a new Jim turn, and stops marking at the cap; hiding or disabling the focused button, or hiding the bar through the idle timeout or a code edit, moves focus to the editor.tests/browser/render.test.js: the Markdown export lists and tags marked lines, and a report without marks has no section in either view.saveHistorynow passunclearLines, and the replay vocabulary test lists the new section's words../scripts/test.shpasses locally after rebasing onto the latest main, including the Playwright browser tests.Contract version
No version bump: no prompt, rubric, or report schema changed, and
unclearLineslives in the history entry outside the report.Screenshots
Before: the caption bar.

After: the Unclear button, unmarked and marked.

After: the report section.

Closes #391
Summary by cubic
Lets the candidate mark Jim's lines as unclear during the interview so they can review them later; pressing the new Unclear button again unmarks the line. Jim never sees the marks.
unclearLinesin the history entry, outside the report and its request, so no prompt, rubric, or report schema changes; marks that would push the report body past the server's size limit are dropped rather than costing the report.Written for commit 7387d2f. Summary will update on new commits.